先安装必须的依赖库(参数-y:apt-get命令参数详解 http://hi.baidu.com/usen68/item/942891e5de324f0f8d3ea885):
1 sudo apt-get -y install autoconf && \ 2 sudo apt-get -y install libxml2-dev && \ 3 sudo apt-get -y install bzip2 && \ 4 sudo apt-get -y install libcurl3-openssl-dev && \ 5 sudo apt-get -y install libcurl4-gnutls-dev && \ 6 sudo apt-get -y install libjpeg-dev && \ 7 sudo apt-get -y install libpng-dev && \ 8 sudo apt-get -y install libxpm-dev && \ 9 sudo apt-get -y install libfreetype6-dev && \ 10 sudo apt-get -y install libt1-dev && \ 11 sudo apt-get -y install libmcrypt-dev && \ 12 sudo apt-get -y install libmysql++-dev && \ 13 sudo apt-get -y install libxslt1-dev && \ 14 sudo apt-get -y install libbz2-dev
软链接库文件:
cd /usr/lib && \ ln -s /usr/lib/x86_64-linux-gnu/libXpm.so . && \ ln -s /usr/lib/x86_64-linux-gnu/libXpm.a . && \ ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4 . && \ ln -s /usr/lib/x86_64-linux-gnu/libXpm.so.4.11.0 . && \ echo 'successful!'
下载最新php源码,编译安装:
cd /opt && \ sudo mkdir src && \ cd src && \ sudo wget http://us1.php.net/distributions/php-5.4.14.tar.gz && \ sudo tar zxvf php-5.4.14.tar.gz && \ cd php-5.4.14 && \ sudo ./configure \ --prefix=/usr/local/php \ --with-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-config-file-path=/usr/local/php/etc \ --with-zlib \ --with-curl \ --with-curlwrappers \ --with-mcrypt \ --with-gd \ --with-openssl \ --with-mhash \ --with-xmlrpc \ --with-jpeg-dir \ --with-png-dir \ --with-xpm-dir \ --with-freetype-dir \ --with-zlib-dir \ --enable-shared \ --enable-fpm \ --enable-xml \ --disable-rpath \ --enable-safe-mode \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --enable-mbregex \ --enable-mbstring \ --enable-gd-native-ttf \ --enable-pcntl \ --enable-sockets \ --enable-zip \ --enable-soap
!注意
其中重点参数:
--prefix=/usr/local/php
指定 php 安装目录
--with-config-file-path=/usr/local/php/etc
指定php.ini位置
--with-MySQL=/usr/local/mysql(新版php不推荐)
mysql安装目录,对mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_config(新版php不推荐)
mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定。
关于 mysqlnd的解释:http://baike.baidu.com/view/2630684.htm?fr=aladdin
不出问题的话就执行最后一步编译安装:
sudo make && sudo make install
启动php的cgi (注意配置php-fgm.conf的启动账户和组,否则报错,详情:http://www.cnblogs.com/argb/p/3604340.html)
sudo /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
cgi的性能优化:http://hi.baidu.com/cpu686/item/84fbb7f6bcb4f8ce521c2669
添加php的memcache 支持 (编译安装)
下载最新的拓展源码 http://pecl.php.net/package/memcache
1 tar -zxvf memcache-2.2.3.tgz 2 cd memcache-2.2.3/ 3 sudo /usr/local/php526/bin/phpize 4 sudo ./configure –with-php-config=/usr/local/php/bin/php-config 5 make 6 make install 7 cd ../
再到php.ini里面,再extension_dir = “./”的后面添加一行
extension="memcache.so";
即可
sudo netstat -anp | grep "php"
kill 掉phpcgi进程从新启动cgi sudo /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf
创建文件php-fpm 文件放入 /etc/init.d/
键入以下代码
#!/bin/bash # php-fpm startup script for the php-fpm # php-fpm version:5.5.0-alpha6 # chkconfig: - 85 15 # Default-Start: 2 3 4 5 # # Default-Stop: 0 1 6 # description: php5-fpm is very good # processname: php5-fpm # pidfile: /var/run/php-fpm.pid # config: /usr/local/php5.5/etc/php-fpm.conf php_command=/usr/local/php5.5/sbin/php-fpm php_config=/usr/local/php5.5/etc/php-fpm.conf php_pid=/var/run/php-fpm.pid RETVAL=0 prog="php5-fpm" #start function php5_fpm_start() { $php_command -c /etc/php5/fpm/php.ini -y $php_config } start(){ if [ -e $php_pid ] then echo "php-fpm already start..." exit 1 fi php5_fpm_start } stop(){ if [ -e $php_pid ] then parent_pid=`cat $php_pid` all_pid=`ps -ef | grep php-fpm | awk '{if('$parent_pid' == $3){print $2}}'` for pid in $all_pid do kill $pid done kill $parent_pid fi exit 1 } restart(){ stop start } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) stop start ;; status) status $prog RETVAL=$? ;; *) echo $"Usage: $prog {start|stop|restart|status}" exit 1 esac exit $RETVAL
然后
sudo update-rc.d php5-fpm defaults 95
浙公网安备 33010602011771号