国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > Nginx > 正文

ubuntu14.04LTS安裝nginx+mariaDB+php7+YAF的方法

2024-08-30 12:28:08
字體:
供稿:網(wǎng)友

本文講述了ubuntu14.04LTS安裝nginx+mariaDB+php7+YAF的方法。分享給大家供大家參考,具體如下:

ubuntu apt-get方式安裝nginx

參考:

http://nginx.org/en/linux_packages.html

首先

in order to authenticate the nginx repository signature and to eliminate warnings about missing PGP key during installation of the nginx package, it is necessary to add the key used to sign the nginx packages and repository to the apt program keyring.

下載密鑰

wget http://nginx.org/keys/nginx_signing.key

然后添加

sudo apt-key add nginx_signing.key

加入nginx的repository

cd /etc/apt/sources.list.d/sudo vim nginx.list

若安裝穩(wěn)定版本,則輸入以下內(nèi)容

deb http://nginx.org/packages/ubuntu/ trusty nginxdeb-src http://nginx.org/packages/ubuntu/ trusty nginx

若最新版本,則輸入以下內(nèi)容:

deb http://nginx.org/packages/mainline/ubuntu/ trusty nginxdeb-src http://nginx.org/packages/mainline/ubuntu/ trusty nginx

然后安裝

apt-get updateapt-get install nginx

安裝完成

nginx -vnginx version: nginx/1.8.0

MariaDB數(shù)據(jù)庫(kù)安裝

MariaDB是一個(gè)開源數(shù)據(jù)庫(kù)且100%與MySQL兼容,目標(biāo)是替代MySQL數(shù)據(jù)庫(kù)。

MariaDB的背景 :

2008年,MySQL被后來被Oracle在2010年收購(gòu)的Sun Microsystems收購(gòu)了。 最初被Sun公司的收購(gòu)由于符合項(xiàng)目的需要而受到MySQL社區(qū)的歡呼,但是這種情緒并沒有持續(xù)太久,接下來被Oracle的收購(gòu),不幸期望遠(yuǎn)遠(yuǎn)低于預(yù) 期。許多MySql的開發(fā)者離開了Sun和Oracle公司開始新的項(xiàng)目。在他們中間就有MySQL的創(chuàng)建者以及項(xiàng)目長(zhǎng)期技術(shù)帶頭人之一的Michael 'Monty' Widenius。Monty和他的團(tuán)隊(duì)創(chuàng)建了MySQL的一個(gè)fork版本并且命名它為MariaDB。

默認(rèn)上MariaDB的包并沒有在Ubuntu倉(cāng)庫(kù)中。要安裝MariaDB,我們首先要設(shè)置MariaDB倉(cāng)庫(kù)。

設(shè)置 MariaDB 倉(cāng)庫(kù)

sudo apt-get install software-properties-commonsudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943dbExecuting: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.3GolFM9PZ5 --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943dbgpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.comgpg: key 1BB943DB: public key "MariaDB Package Signing Key <package-signing-key@mariadb.org>" importedgpg: Total number processed: 1gpg:        imported: 1sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'

安裝 MariaDB :

sudo apt-get updatesudo apt-get install mariadb-server

在安裝中,你會(huì)被要求設(shè)置MariaDB的root密碼。

從命令行連接到MariaDB :

keyun@ubuntu-server:~$ mysql -u root -pEnter password:Welcome to the MariaDB monitor. Commands end with ; or /g.Your MariaDB connection id is 43Server version: 10.0.23-MariaDB-1~trusty-log mariadb.org binary distributionCopyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.Type 'help;' or '/h' for help. Type '/c' to clear the current input statement.MariaDB [(none)]>

MariaDB 服務(wù)

sudo /etc/init.d/mysql stopsudo /etc/init.d/mysql start

以上只是在Ubuntu上裝完MariaDB,下面要設(shè)置MariaDB允許遠(yuǎn)程訪問

1、如果Ubuntu有設(shè)置防火墻或者iptables規(guī)則的話,請(qǐng)自行打開

2、3306端口是不是沒有打開?

使用nestat命令查看3306端口狀態(tài):

~# netstat -an | grep 3306tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN

從結(jié)果可以看出3306端口只是在IP 127.0.0.1上監(jiān)聽,所以拒絕了其他IP的訪問。

解決方法:修改/etc/mysql/my.cnf文件。打開文件,找到下面內(nèi)容:

# Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.bind-address = 127.0.0.1

把上面這一行注釋掉或者把127.0.0.1換成合適的IP,建議注釋掉。

重新啟動(dòng)后,重新使用netstat檢測(cè):

~# netstat -an | grep 3306tcp    0   0 0.0.0.0:3306      0.0.0.0:*        LISTEN

1. 把用戶權(quán)限分配各遠(yuǎn)程用戶。

登錄到mysql服務(wù)器,使用grant命令分配權(quán)限

復(fù)制代碼 代碼如下:
mysql> grant all on . to 你的用戶名如root@'%' identified by '你的密碼';

 

完成后使用mysql命令連接,提示成功,為了確保正確可以再遠(yuǎn)程登陸測(cè)試一下。

安裝PHP7

因?yàn)槭亲钚』惭b的ubuntu,先安裝make

sudo apt-get install make

下載源碼

sudo wget https://downloads.php.net/~ab/php-7.0.2RC1.tar.gzsudo tar -zvxf php-7.0.2RC1.tar.gzcd php-7.0.2RC1

根據(jù)鳥哥指示,安裝gcc4.8

使用新一點(diǎn)的編譯器, 推薦GCC 4.8以上, 因?yàn)橹挥蠫CC 4.8以上PHP才會(huì)開啟Global Register for opline and execute_data支持, 這個(gè)會(huì)帶來5%左右的性能提升(Wordpres的QPS角度衡量) 其實(shí)GCC 4.8以前的版本也支持, 但是我們發(fā)現(xiàn)它支持的有Bug, 所以必須是4.8以上的版本才會(huì)開啟這個(gè)特性.

sudo apt-get install python-software-propertiessudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get updatesudo apt-get install gcc-4.8 g++-4.8sudo update-alternatives --remove-all gcc sudo update-alternatives --remove-all g++sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 20sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 20sudo update-alternatives --config gccsudo update-alternatives --config g++sudo apt-get updatesudo apt-get upgrade -ysudo apt-get dist-upgrade

查看版本

gcc --versiongcc (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5Copyright (C) 2015 Free Software Foundation, Inc.This is free software; see the source for copying conditions. There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

先安裝依賴

sudo apt-get install libxml2 sudo apt-get install libxml2-dev sudo apt-get install openssl sudo apt-get install libssl-dev sudo apt-get install curl sudo apt-get install libcurl4-openssl-dev sudo apt-get install libgd-dev sudo apt-get install libxslt-dev

因本機(jī)lib目錄在/usr/lib/x86_64-linux-gnu

./configure –prefix=/usr/local/php –with-curl –with-freetype-dir –with-gd –with-gettext –with-iconv-dir –with-kerberos –with-libdir=lib/x86_64-linux-gnu –with-libxml-dir –with-mysqli –with-openssl –with-pcre-regex –with-pdo-mysql –with-pdo-sqlite –with-pear –with-png-dir –with-xmlrpc –with-xsl –with-zlib –enable-fpm –enable-bcmath –enable-libxml –enable-inline-optimization –enable-gd-native-ttf –enable-mbregex –enable-mbstring –enable-opcache –enable-pcntl –enable-shmop –enable-soap –enable-sockets –enable-sysvsem –enable-xml –enable-zipsudo makesudo make installsudo cp php.ini-development /usr/local/php/lib/php.inisudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.confsudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.confsudo cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

最后一條命令,作用是php-fpm隨系統(tǒng)自啟動(dòng)。

利用php自帶的php-fpm管理工具,可以很方便的start,stop,restart
把管理工具從源碼包里放到php/sbin文件夾里,方便使用

sudo cp ./sapi/fpm/init.d.php-fpm /usr/local/php/sbin/sudo cd /usr/local/php/sbin/sudo chmod 755 init.d.php-fpm

配置nginx與php-fpm后,通過phpinfo(),看到如下

 ubuntu14.04LTS,安裝,nginx,mariaDB,php7,YAF

至此,php7安裝成功。

安裝apache ab壓測(cè)工具

sudo apt-get install apache2-utils

壓測(cè)一下

echo "hello world"
ab -n 1000 -c 20 http://10.81.36.158:9528/

QPS 7000左右

接下來開啟opcache

sudo vi /usr/local/php/lib/php.ini

找到opcache設(shè)置

添加以下內(nèi)容

zend_extension=opcache.soopcache.enable=1opcache.enable_cli=1

重啟php-fpm

sudo kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid

或者

sudo /usr/local/php/sbin/init.d.php-fpm restart

再次測(cè)試,QPS上升到8000以上

開啟HugePages

參考:http://www.survivalescaperooms.com/article/85491.htm

再次測(cè)試,QPS偶爾能彪上10000

安裝YAF

sudo wget http://pecl.php.net/get/yaf-3.0.2.tgzsudo tar -zvxf yaf-3.0.2.tgz

解壓縮以后, 進(jìn)入Yaf的源碼目錄, 依次執(zhí)行(其中PHP_BIN是PHP的bin目錄):

sudo /usr/local/php/bin/phpize

報(bào)錯(cuò):

Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.

解決辦法:

sudo apt-get install m4sudo apt-get install autoconfsudo apt-get install libpcre3 libpcre3-dev 

phpize執(zhí)行后:

sudo ./configure --with-php-config=/usr/local/php/bin/php-configsudo makesudo make installInstalling shared extensions:   /usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/

安裝成功,修改php.ini,加入yaf擴(kuò)展

extension=yaf.so

重啟php-fpm,查看phpinfo()

 ubuntu14.04LTS,安裝,nginx,mariaDB,php7,YAF

安裝yaf成功

PS:使用PDO過程中,出現(xiàn) SQLSTATE[HY000] [2002] No such file or directory 錯(cuò)誤

經(jīng)查,是mysql.sock找不到

在phpinfo()中,看到pdo_mysql.default_socket的值是/tmp/mysql.sock

 ubuntu14.04LTS,安裝,nginx,mariaDB,php7,YAF

但是在服務(wù)器上并沒有這個(gè)文件

通過sudo service mysql status 命令

* /usr/bin/mysqladmin Ver 9.1 Distrib 10.0.23-MariaDB, for debian-linux-gnu on x86_64Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.Server version     10.0.23-MariaDB-1~trusty-logProtocol version    10Connection       Localhost via UNIX socketUNIX socket       /var/run/mysqld/mysqld.sockUptime:         3 min 28 sec

找到sock文件的位置在/var/run/mysqld/mysqld.sock

于是在/tmp下 做個(gè)軟鏈接

sudo ln -s /var/run/mysqld/mysqld.sock mysql.sock

問題解決

通過localhost無法訪問到數(shù)據(jù)庫(kù),但是通過IP可以

分析:這是典型的socket沒有正確設(shè)置的情況。

連接MySQL數(shù)據(jù)庫(kù)有兩種方式:TCP/IP(一般理解的端口的那種)和Unix套接字(一般叫socket或者sock)。大部分情況下,可以用localhost代表本機(jī)127.0.0.1,但是在MySQL連接時(shí),二者不可混用,而且MySQL中權(quán)限設(shè)置中l(wèi)ocalhost與127.0.0.1也是分開設(shè)置的。當(dāng)設(shè)置為127.0.0.1時(shí),系統(tǒng)通過TCP/IP方式連接數(shù)據(jù)庫(kù);當(dāng)設(shè)置為localhost時(shí),系統(tǒng)通過socket方式連接數(shù)據(jù)庫(kù)。

根據(jù)上面的sudo service mysql status命令

得到sock文件的位置在/var/run/mysqld/mysqld.sock

于是,修改php.ini

pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock

重啟php-fpm

問題解決

希望本文所述對(duì)大家ubuntu服務(wù)器配置有所幫助。


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 霍林郭勒市| 龙井市| 沛县| 和平区| 靖安县| 南城县| 莲花县| 论坛| 上栗县| 云阳县| 南阳市| 浮梁县| 曲麻莱县| 石门县| 兰州市| 和林格尔县| 治多县| 清水河县| 永胜县| 韩城市| 巴马| 喀喇沁旗| 大石桥市| 嘉兴市| 苏州市| 舟山市| 尖扎县| 吉隆县| 扬州市| 伊宁市| 双桥区| 皮山县| 澄迈县| 无为县| 平凉市| 武乡县| 元氏县| 彩票| 长治县| 广西| 贞丰县|