百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 网站模板(百分百源码网)>电脑软件>服务器> ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的要领
分享本文到:

ubuntu14.04LTS安装nginx+mariaDB+php7+YAF的要领

发布时间:05/16 来源:未知 浏览: 关键词:

本文讲述了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

若安装不乱版本,则输入下列内容

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

若最新版本,则输入下列内容:

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

然后安装

apt-get update
apt-get install nginx

安装完成

nginx -v
nginx version: nginx/1.8.0

MariaDB数据库安装

MariaDB是一个开源数据库且100%与MySQL兼容,指标是替换MySQL数据库。

MariaDB的背景 :

2008年,MySQL被后来被Oracle在2010年收购的Sun Microsystems收购了。 最初被Sun企业的收购因为相符项目的需要而挨到MySQL社区的欢呼,但是这种情感并没有延续太久,接下来被Oracle的收购,不幸奢望远远低于预 期。很多MySql的开发者脱离了Sun和Oracle企业开端新的项目。在他们中间就有MySQL的新建者以及项目长期技术带头人之一的Michael 'Monty' Widenius。Monty和他的团队新建了MySQL的一个fork版本并且命名它为MariaDB。

默许上MariaDB的包并没有在Ubuntu仓库中。要安装MariaDB,我们首先要设置MariaDB仓库。

设置 MariaDB 仓库

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
Executing: 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 0xcbcb082a1bb943db
gpg: requesting key 1BB943DB from hkp server keyserver.ubuntu.com
gpg: key 1BB943DB: public key "MariaDB Package Signing Key <package-signing-key@mariadb.org>" imported
gpg: Total number processed: 1
gpg:        imported: 1
sudo add-apt-repository 'deb http://sfo1.mirrors.digitalocean.com/mariadb/repo/10.0/ubuntu trusty main'

安装 MariaDB :

sudo apt-get update
sudo apt-get install mariadb-server

在安装中,你会被要求设置MariaDB的root密码。

从下令行连贯到MariaDB :

keyun@ubuntu-server:~$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 43
Server version: 10.0.23-MariaDB-1~trusty-log mariadb.org binary distribution
Copyright (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 服务

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

以上只是在Ubuntu上装完MariaDB,下面要设置MariaDB允许长途访问

1、要是Ubuntu有设置防火墙或者iptables法则的话,请自行打开

2、3306端口是不是没有打开?

运用nestat下令查看3306端口状态:

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

从效果可以看出3306端口只是在IP 127.0.0.1上监听,所以拒绝了其他IP的访问。

解决要领:修改/etc/mysql/my.cnf文件。打开文件,找到下面内容:

# 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,倡议注释掉。

从新启动后,从新运用netstat检测:

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

1. 把会员权限分配各长途会员。

登录到mysql服务器,运用grant下令分配权限

复制代码 代码如下:
mysql> grant all on . to 你的会员名如root@'%' identified by '你的密码';

完成后运用mysql下令连贯,提醒成功,为了确保准确可以再长途登陆测试一下。

安装PHP7

由于是最小化安装的ubuntu,先安装make

sudo apt-get install make

下载源码

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

依据鸟哥指挥,安装gcc4.8

运用新一点的编译器, 举荐GCC 4.8以上, 由于只要GCC 4.8以上PHP才会开启Global Register for opline and execute_data支撑, 这个会带来5%左右的机能晋升(Wordpres的QPS角度掂量) 其实GCC 4.8之前的版本也支撑, 但是我们发明它支撑的有Bug, 所以必须是4.8以上的版本才会开启这个特性.

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

查看版本

gcc --version
gcc (Ubuntu 4.8.5-2ubuntu1~14.04.1) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; 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

因本机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-zip
sudo make
sudo make install
sudo cp php.ini-development /usr/local/php/lib/php.ini
sudo cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
sudo cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
sudo cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

最后一条下令,作用是php-fpm随系统自启动。

应用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(),看到如下

 

至此,php7安装成功。

安装apache ab压测工具

sudo apt-get install apache2-utils

压测一下

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设置

增加下列内容

zend_extension=opcache.so
opcache.enable=1
opcache.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

再次测试,QPS上升到8000以上

开启HugePages

参考://www.jb51.net/article/85491.htm

再次测试,QPS偶然能彪上10000

安装YAF

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

解紧缩今后, 进入Yaf的源码目录, 顺次施行(其中PHP_BIN是PHP的bin目录):

sudo /usr/local/php/bin/phpize

报错:

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

解决办法:

sudo apt-get install m4
sudo apt-get install autoconf
sudo apt-get install libpcre3 libpcre3-dev 

phpize施行后:

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

安装成功,修改php.ini,参加yaf扩展

extension=yaf.so

重新启动php-fpm,查看phpinfo()

 

安装yaf成功

PS:运用PDO历程中,涌现 SQLSTATE[HY000] [2002] No such file or directory 差错

经查,是mysql.sock找不到

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

 

但是在服务器上并没有这个文件

通过sudo service mysql status 下令

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

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

于是在/tmp下 做个软链接

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

题目解决

通过localhost没法访问到数据库,但是通过IP可以

剖析:这是典型的socket没有准确设置的状况。

连贯MySQL数据库有两种方式:TCP/IP(个别了解的端口的那种)和Unix套接字(个别叫socket或者sock)。大局部状况下,可以用localhost代表本机127.0.0.1,但是在MySQL连贯时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。当设置为127.0.0.1时,系统通过TCP/IP方式连贯数据库;当设置为localhost时,系统通过socket方式连贯数据库。

依据上面的sudo service mysql status下令

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

于是,修改php.ini

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

重新启动php-fpm

题目解决

但愿本文所述对大家ubuntu服务器配置有所帮忙。

热门标签:dede模板 / destoon模板 / dedecms模版 / 织梦模板
责任编辑:xKHT1
打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有153人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助



订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板