本文讲述了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
参考:https://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服务器配置有所帮助。
《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线
暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。
艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。
《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。
更新动态
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]