红猪生南国

博客园 首页 新随笔 联系 订阅 管理

先安装必须的依赖库(参数-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

 

 

 

 

 

 

 

 

 

 

posted on 2014-06-02 22:59  红猪生南国  阅读(327)  评论(0)    收藏  举报