PHP编译安装

安装

编译安装前的准备
提示:默认的php安装后gd不支持jpg,只支持gif、png、bmp。所以首先要安装gd库
wget http://www.boutell.com/gd/http/gd-2.0.33.tar.gz
tar zxvf gd-2.0.33.tar.gz
cd gd-2.0.33
./configure --prefix=/usr/local/webserver/gd2/
make && make install
正式安装

wget http://www.php.net/get/php-5.3.26.tar.gz/from/us2.php.net/mirror
tar zxvf php-5.3.26.tar.gz
cd php-5.3.26
./configure --prefix=/usr/local/webserver/php --enable-fpm --with-mysql=/usr/local/webserver/mysql \
--with-mysqli=/usr/local/webserver/mysql/bin/mysql_config --with-config-file-path=/usr/local/webserver/php  \
--with-openssl --enable-mbstring --with-zlib --enable-xml --with-gd=/usr/local/webserver/gd2/ --with-jpeg-dir  \
--enable-bcmath --with-mcrypt --with-iconv --enable-pcntl --enable-shmop --enable-simplexml
make && make install

cp php.ini-development /usr/local/webserver/php/php.ini

配置

  • php(php.ini)
将  ;date.timezone =
 改为 date.timezone = prc
  • php+nginx(nginx.conf)
user  www www;
  worker_processes  1;
  events {
      worker_connections  1024;
  }
    http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       80;
        server_name  192.168.65.144;
        location / {
            root   /data/www;
            index  index.php index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php {
            root /data/www;
            include        fastcgi_params;
            set $real_script_name $fastcgi_script_name;
            
            #设置pathinfo

            set $path_info "";
            set $real_script_name $fastcgi_script_name;
            if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
                set $real_script_name $1;
                set $path_info $2;
            }
            fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;

            fastcgi_param SCRIPT_NAME $real_script_name;
            fastcgi_param PATH_INFO $path_info;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
        }
    }


}
  • php+pathinfo(php.ini)
enable_dl = On
cgi.force_redirect = 0
cgi.fix_pathinfo=1
fastcgi.impersonate = 1
cgi.rfc2616_headers = 1
allow_url_fopen = On
  • 配置php-fpm启动脚本

编写脚本(vi /etc/init.d/php-fpm )

#! /bin/sh

### BEGIN INIT INFO
# Provides:          php-fpm
# Required-Start:    $remote_fs $network
# Required-Stop:     $remote_fs $network
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: starts php-fpm
# Description:       starts the PHP FastCGI Process Manager daemon
### END INIT INFO

prefix=/usr/local/webserver/php

php_fpm_BIN=${prefix}/sbin/php-fpm
php_fpm_CONF=${prefix}/etc/php-fpm.conf
php_fpm_PID=${prefix}/var/run/php-fpm.pid


php_opts="--fpm-config $php_fpm_CONF"
php_pid="--pid $php_fpm_PID"

wait_for_pid () {
        try=0

        while test $try -lt 35 ; do

                case "$1" in
                        'created')
                        if [ -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;

                        'removed')
                        if [ ! -f "$2" ] ; then
                                try=''
                                break
                        fi
                        ;;
                esac

                echo -n .
                try=`expr $try + 1`
                sleep 1

        done

}

case "$1" in
        start)
                echo -n "Starting php-fpm "

                $php_fpm_BIN $php_opts $php_pid

                if [ "$?" != 0 ] ; then
                        echo " failed"
                        exit 1
                fi

                wait_for_pid created $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;

        stop)
                echo -n "Gracefully shutting down php-fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi

                kill -QUIT `cat $php_fpm_PID`

                wait_for_pid removed $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed. Use force-exit"
                        exit 1
                else
                        echo " done"
                fi
                      ;;

        force-quit)
                echo -n "Terminating php-fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi

                kill -TERM `cat $php_fpm_PID`

                wait_for_pid removed $php_fpm_PID

                if [ -n "$try" ] ; then
                        echo " failed"
                        exit 1
                else
                        echo " done"
                fi
        ;;

        restart)
                $0 stop
                $0 start
        ;;

        reload)

                echo -n "Reload service php-fpm "

                if [ ! -r $php_fpm_PID ] ; then
                        echo "warning, no pid file found - php-fpm is not running ?"
                        exit 1
                fi

                kill -USR2 `cat $php_fpm_PID`

                echo " done"
        ;;

        *)
                echo "Usage: $0 {start|stop|force-quit|restart|reload}"
                exit 1
        ;;

esac

赋予脚本执行权限

cd /usr/local/webserver/php/etc && cp php-fpm.conf.default php-fpm.conf
  chmod +x /etc/init.d/php-fpm

设置开机启动

 /sbin/chkconfig php-fpm on

使用以下命令对php操作

service php-fpm start
service php-fpm stop
service php-fpm restart

检查php+nginx是否配置成功

在nginx.conf文件中我配置了我的php工作目录/www,在此目录下建立文件phpinfo.php,然后运行查看内容。

 

 

ZendGuardLoader安装

下载:ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

谷歌下载:http://easyinstall.googlecode.com/files/ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

安装

tar zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64/
cp php-5.3.x/ZendGuardLoader.so /usr/local/webserver/php/ext/

配置

打开php.ini,加入以下代码:
[Zend Guard]
;/usr/local/webserver/php/ext/ZendGuardLoader.so  这个是你当时指定的zend的目录
zend_extension=/usr/local/webserver/php/ext/ZendGuardLoader.so
zend_loader.enable=1
zend_loader.disable_licensing=0
zend_loader.obfuscation_level_support=3
zend_loader.license_path=

重启nginx 和 php-fpm,打开phpinfo查看如下图所示,证明配置成功:

posted @ 2013-08-29 10:06  ecstore  阅读(615)  评论(0编辑  收藏  举报