今天是2015-02-18,距离2013-2-28购买阿里云服务器差不多2年时间,之前懒得折腾,用了一键安装包安装的lnmp,这次自己编译安装
一.环境
64位centos6.5 + nginx1.7 + php5.6 +mysql5.6
二.安装必要的工具
yum -y install gcc gcc-c++ autoconf automake
yum -y install zlib zlib-devel openssl openssl-devel pcre-devel
yum -y install autoconf libtool glibc make
yum -y install libmcrypt-devel mhash-devel libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel
三.安装PHP
phpwget http://cn2.php.net/get/php-5.6.5.tar.gz/from/this/mirror
tar -zxvf mirror
cd php-5.6.5
已经pdo....
./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt=/usr/local/libmcrypt --enable-mbstring --disable-pdo --with-curl --disable-debug --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli --enable-pdo --with-gd --with-jpeg-dir --with-openssl --with-pdo-mysql --enable-maintainer-zts --disable-fileinfo
make
make install
cp php.ini-development /usr/local/php/etc/php.ini
/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
vi /usr/local/php/etc/php-fpm.conf
把;pid = run/php-fpm.pid 前面的;去掉
nobody 改为www
master进程可以理解以下信号
INT, TERM 立刻终止
QUIT 平滑终止
USR1 重新打开日志文件
USR2 平滑重载所有worker进程并重新载入配置和二进制模块
示例:
php-fpm 关闭:
kill -INT `cat /usr/local/php/var/run/php-fpm.pid`
php-fpm 重启:
kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid`
查看php-fpm进程数:
ps aux | grep -c php-fpm
四.安装nginx
需要openssl,pcre,zlib 但不需要安装,有源码包就行
wget nginx.org/download/nginx-1.7.10.tar.gz
tar -zxvf nginx-1.7.10.tar.gz
cd nginx-1.7.10
./configure --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=/zzw_soft/pcre --with-zlib=/zzw_soft/zlib --with-openssl=/zzw_soft/openssl
make
make install
/usr/local/nginx/nginx -t -c /usr/local/nginx/nginx.conf 测试配置
/usr/local/nginx/nginx -s reload 平滑重启
另外参考一版,下次安装时就都编译进去,省得追加编译
./configure –prefix=/Data/apps/php –with-config-file-path=/Data/apps/php/etc –with-mysql=/Data/apps/mysql –with-mysqli=/Data/apps/mysql/bin/mysql_config –with-iconv-dir –with-freetype-dir=/Data/apps/libs –with-jpeg-dir=/Data/apps/libs –with-png-dir=/Data/apps/libs –with-zlib –with-libxml-dir=/usr –enable-xml –disable-rpath –enable-bcmath –enable-shmop –enable-sysvsem –enable-inline-optimization –with-curl –enable-mbregex –enable-fpm –enable-mbstring –with-mcrypt=/Data/apps/libs –with-gd –enable-gd-native-ttf –with-openssl –with-mhash –enable-pcntl –enable-sockets –with-xmlrpc –enable-zip –enable-soap –enable-opcache –with-pdo-mysql –enable-maintainer-zts
五.安装mysql
tar -zxvf mysql-5.6.21.tar.gz
cd mysql-5.6.21
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1
make
make install
groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql
cd support-files/
cd support-files/
cp my-default.cnf /etc/my.cnf
/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql
chown -R mysql /usr/local/mysql/var
chgrp -R mysql /usr/local/mysql/.
cp support-files/mysql.server /etc/init.d/mysql
chmod 755 /etc/init.d/mysql
ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
ln -s /usr/local/mysql/include/mysql /usr/include/mysql
/etc/init.d/mysql start
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
ln -s /usr/local/mysql/bin/mysqldump /usr/bin/mysqldump
ln -s /usr/local/mysql/bin/myisamchk /usr/bin/myisamchk
ln -s /usr/local/mysql/bin/mysqld_safe /usr/bin/mysqld_safe
/etc/init.d/mysql status
/etc/init.d/mysql start
cp support-files/mysql.server /etc/init.d/mysql chkconfig mysql on service mysql start --启动MySQL
六.编译安装PDO
安装pdo_mysql,需要先安装pdo
cd php5.6/ext/pdo/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/webserver/php/bin/php-config --enable-pdo=shared
make &&make install
cd php5.6/ext/pdo_mysql/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/data/mysql/bin/mysql_config
make &&make install
打开php.ini,添加以下几行
extension_dir ="/usr/local/php/lib/php/extensions/no-debug-non-zts-20100525/"
extension=pdo.so
extension=pdo_mysql.so