solaris10上安装php,通过nginx+fastcgi连接

来源:互联网 发布:2015东北十大网络神曲 编辑:程序博客网 时间:2024/05/19 19:15

php在solairs的安装:
1. 相关库:
gtar zxvf libiconv-1.11.tar.gz
cd libiconv-1.11/
./configure --prefix=/usr/local
gmake
gmake install
cd ../

gtar zxvf freetype-2.3.5.tar.gz
cd freetype-2.3.5/
./configure
gmake
gmake install
cd ../

gtar zxvf libpng-1.2.23.tar.gz
cd libpng-1.2.23/
./configure
gmake
gmake install
cd ../

gtar zxvf jpegsrc.v6b.tar.gz
cd jpeg-6b/
./configure --enable-static --enable-shared
gmake
gmake install
gmake install-lib
cd ../

----If your system was install libxml2, you do not need to install it.----
gtar zxvf libxml2-2.6.30.tar.gz
cd libxml2-2.6.30/
./configure
gmake
gmake install
cd ../

gtar zxvf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8/
./configure
gmake
gmake install
#/sbin/ldconfig
cd libltdl/
./configure --enable-ltdl-install
gmake
gmake install
cd ../../

gtar zxvf mhash-0.9.9.tar.gz
cd mhash-0.9.9/
./configure
gmake
gmake install
cd ../

cp /usr/local/lib/libmcrypt.* /usr/lib
ln -s /usr/local/lib/libmhash.so.2 /usr/lib/libmhash.so.2
cp /usr/local/lib/libxml* /usr/lib

gtar zxvf mcrypt-2.6.6.tar.gz
cd mcrypt-2.6.6/
./configure
gmake
gmake install
cd ../

2. 安装PHP

ln -s /usr/local/mysql/lib/libmysqlclient.so.15 /usr/lib/libmysqlclient.so.15

gtar zxvf php-5.2.5.tar.gz
cd php-5.2.5

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc /
 --with-mysql=/usr/local/mysql --with-iconv-dir=/usr/local --with-freetype-dir /
 --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-xml /
 --disable-debug --disable-rpath --enable-discard-path --enable-safe-mode /
 --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization /
 --enable-mbregex --enable-fastcgi /
 --enable-force-cgi-redirect --enable-mbstring --with-mcrypt

gmake
gmake install

cp php.ini-dist /usr/local/php/etc/php.ini
cd ../

3. 安装lighttpd中附带的spawn-fcgi,用来启动php-cgi
编译后在src目录下。
拷贝到/usr/local/php/bin中

gtar zxvf lighttpd-1.4.18.tar.gz
cd lighttpd-1.4.18
./configure
gmake
cp ./src/spawn-fcgi /usr/local/php/bin
cd ..


4. 建立www组和www用户
并指定工作路径,分配权限
groupadd www
useradd -g www  -d /data/www -m www

mkdir -p /data/www/htdocs
mkdir -p /data/www/bin
mkdir -p /data/www/conf
mkdir -p /data/www/run
mkdir -p /data/www/logs

chown -R www:www /data/www/

5. 启动php的指令,做成脚本执行
/usr/local/php/bin/spawn-fcgi -a 127.0.0.1 -p 10080 -C 30 -u www -f /usr/local/php/bin/php-cgi

#!/bin/sh
SPAWN_FCGI=/usr/local/php/bin/spawn-fcgi
PHP_CGI=/usr/local/php/bin/php-cgi
SERVER=127.0.0.1
PORT=10080
PHP_USER=www
PRO_NUM=30
${SPAWN_FCGI} -a ${SERVER} -p ${PORT} -C ${PRO_NUM} -u ${PHP_USER} -f ${PHP_CGI}


6. nginx.conf的内容:
user  www;
worker_processes  1;

error_log  /data/www/logs/error.log;

pid        /data/www/run/nginx.pid;

events {
    worker_connections  65535;
                use /dev/poll;
}


http {
    include       conf/mime.types;
    default_type  application/octet-stream;


    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8000;
        access_log  /data/www/logs/access.log ;
        index index.html index.htm index.php;
        root  /data/www/htdocs;

        if (-d $request_filename)
        {
             rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
        }
                           
        location ~ .*/.php?$
        {
             include /data/www/conf/fcgi.conf;    
             fastcgi_pass  127.0.0.1:10080;
             fastcgi_index index.php;
        }
    }

}

fcgi.conf的内容:
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;

fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;

fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;

# PHP only, required if PHP was built with --enable-force-cgi-redirect
#fastcgi_param  REDIRECT_STATUS    200;

info.php的内容:
<?php phpinfo()?>

7. 脚本nginx.sh的内容,放在/data/www/bin下
#!/bin/sh

LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
export LD_LIBRARY_PATH

NGINXHOME=/usr/local/nginx
CONF_FILE=/data/www/conf/nginx.conf
LOGPATH=/data/www/logs
PIDFILE=/data/www/run/nginx.pid

if [ ! -f ${CONF_FILE} ]; then
        exit 0
fi

case $1 in
        start)
                ulimit -n 65535
                ulimit -s unlimited

                ${NGINXHOME}/sbin/nginx -c ${CONF_FILE}
                ;;
        stop)
                kill `cat ${PIDFILE}` ;;
        relog)
                /bin/mv ${LOGPATH}/access.log ${LOGPATH}/access.log.`date +%d%H`
                /bin/mv ${LOGPATH}/error.log ${LOGPATH}/error.log.`date +%d%H`
                kill -USR1 `cat ${PIDFILE}`
                /usr/bin/gzip -f ${LOGPATH}/*.log.*[0-9]
                ;;
   
        *)
                echo "usage: $0 {start|stop|relog}"
                exit 1
                ;;
        esac

exit 0


  

原创粉丝点击