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