|
1. 安装 CentOS 6.3 64bit (Basic Server)
2. YUM Packages.
* Tools
yum install telnet gcc gcc-c++
yum install libtool
*Nginx
yum install pcre-devel zlib-devel
* PHP:
yum install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel openssl-devel libicu-devel libmcrypt-devel
3. MySQL5.5.14
参照博客另外一篇文章 http://koda.iyunv.com/blog/890572
4. PHP 5.5.3
编译PHP前传
mcrypt扩展似乎yum insall安装不了,请参考http://koda.iyunv.com/blog/420991
如果libpng,libjpeg包yum安装不成功,可参考下面步骤:
I. 安装jpegsrc.v9.tar.gz
下载http://www.ijg.org/files/jpegsrc.v9.tar.gz
进入jpeg-9的源码目录,然后执行以下步骤:
./configure
make
make install
II. 安装libpng-1.2.50.tar.gz
下载http://nchc.dl.sourceforge.net/project/libpng/libpng12/1.2.50/libpng-1.2.50.tar.gz
./configure
make
make install
2). 编译PHP
./configure --prefix=/usr/local/php --with-iconv --with-pdo-mysql=mysqlnd --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-zlib --enable-mbstring --with-gd --with-curl --with-freetype-dir=/usr --with-png-dir=/usr/lib --with-jpeg-dir=/usr/lib --enable-fpm --enable-zip --enable-intl --with-mcrypt --with-mhash --with-openssl --enable-exif --enable-soap --enable-pcntl
make
make install
注:如果连接apache, configure增加参数--with-apxs2=/usr/sbin/apxs就自动配置到apache连接了
3). 配置php-fpm并运行
PHP5.3内置了fastcgi支持。
I. 生成配置文件
复制$PHP_DIR/etc/php-fpm.conf.default 到$PHP_DIR/etc/php-fpm.conf
打开一下两行注释:
pid = run/php-fpm.pid
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_children = 50
II.. 启动php-fpm
$PHP_DIR/sbin/php-fpm
III. 停止php-fpm
killall -9 php-fpm
IV. 加入到服务中去并每次开机自动启动
cp $PHP_SOURCE_DIR/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 700 /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig --level 345 php-fpm on
服务方式启动php-fpm
service php-fpm restart
5. Nginx
I. tar包安装到/usr/local/nginx
./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-pcre --with-zlib=/downloads/work/zlib-1.2.8
make
make install
注:--with-zlib虽然是可选的,但很常用,一旦加入该参数,必须指定zlib所在的源码目录,是源码目录不是安装目录!这里我从zlib官方下载1.2.8版本解压缩到/downloads/work/zlib-1.2.8
II 启动停止nginx
启动: sbin/nginx (默认使用conf/nginx.conf作为配置文件)
停止: kill `cat /usr/local/nginx/logs/nginx.pid`
更优雅的退出的命令为:nginx -s quit
III. 令开机自动启动
加入条目
/usr/local/nginx/sbin/nginx 到 /etc/rc.local
IV. 虚拟主机配置
$NGINX_DIR/conf/nginx.conf,增加如下段
server {
listen 80;
server_name *.helixway.me helixway.me;
root /var/www; #注意 root要设置在location /外面, 否则接下来访问PHP将会返回一片空白(状态码404)
location / {
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
V. 连接fastcgi服务器
这里以www.helixway.me为例,使其支持php
A). 配置文件修改
* 在conf/nginx.conf中的http{ 里加入行:
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;
* 在conf/nginx.conf中的server_name 为*.helixway.me的server { 段里加入行:
location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
* 上面配置中include指示符包含了另外一个配置文件fasctcgi.conf,该文件默认存在conf/目录下,一般不需要做任何修改。
B). 重新启动nginx.
在/var/www/目录下建立php文件测试。
VI. 虚拟目录的配置(Alias)
# Configuration for dev.terrainworld.com
rewrite ^/dev/app_dev\.php/?(.*)$ /dev/$1 permanent;
location /dev {
alias /home/www/dev/codes/web/;
index app_dev.php;
try_files $uri @rewriteapp;
}
location @rewriteapp {
rewrite ^/dev/(.*)$ /dev/app_dev.php/$1 last;
}
location ~ ^/dev/(.*)\.php(/|$) {
alias /home/www/dev/codes/web/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$1.php;
fastcgi_param HTTPS off;
}
VII. HTTP Basic认证
location /doc {
alias /home/www/doc/;
index index.html;
autoindex on;
auth_basic "TerrainWorld Documents";
auth_basic_user_file htpasswd;
}
注:如果想echo 'xxxx'来测试nginx配置等,需要安装nginx模块,比如下载echo模块 https://github.com/agentzh/echo-nginx-module , 解压缩到/downloas/echo-nginx-module目录(不要单独编译),重新编译nginx带上参数:
--add-module=/downloads/echo-nginx-module |
|