CentOS 6.3下nginx、php-fpm、drupal快速部署
一切本着从简原则来做,能yum/rpm的,坚决不手工编译 :)
本次部署环境基于CentOS 6.3 x86_64系统。
0. 准备工作
#更新yum [root@imysql ~]# yum -y update [root@imysql ~]# yum install libaio-devel.x86_64 #drupal 8.0需要用到curl模块 [root@imysql ~]# yum install curl-devel [root@imysql ~]# yum -y install libpng-devel libjpeg-devel freetype-devel gmp-devel libxml2-devel
1. 安装nginx
#安装nginx官方yum源包 [root@imysql ~]# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm [root@imysql ~]# yum -y install nginx [root@imysql ~]# chkconfig nginx on
2. 安装php-fpm
#安装php yum源包 [root@imysql ~]# rpm -ivh rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm [root@imysql ~]# yum -y install php54w
3. 配置nginx+php
/etc/nginx/nginx.conf 配置文件可以不用做任何修改。
编辑 /etc/nginx/conf.d/default.conf,以本站为例,配置文件如下:
server { listen 80; server_name imysql.com *.imysql.com; root /data/www/imysql.cn/; index index.php index.htm index.html index.shtml; error_page 404 /page_not_found; error_page 500 502 503 504 /page_not_found; location ~ /\.ht { deny all; } if ($fastcgi_script_name ~ \..*\/.*php) { return 403; } location / { if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?q=$1 last; } } location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } location ^~ /sites/default/files/imagecache/ { index index.php index.html; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php?q=$1 last; break; } } }
上述配置包括了nginx虚拟主机的配置,以及drupal的rewrite规则配置,简单快速。
4. 启动测试
每次修改完配置文件后,都记得执行下面的命令测试配置文件正确性:
[root@imysql ~]# /etc/init.d/nginx configtest nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
确认配置文件无误后,执行下面的命令重载nginx,使其生效:
[root@imysql ~]# /etc/init.d/nginx reload #或者restart [root@imysql ~]# /etc/init.d/nginx restart
大功告成 :)
评论
huarong (未验证)
周一, 2013/03/04 - 09:52
Permalink
貌似没有写php-fpm是如何启动且监听在127.0.0
貌似没有写php-fpm是如何启动且监听在127.0.0.1:9000的?
yejr
周一, 2013/03/04 - 11:09
Permalink
默认配置就是监听本地9000端口的
默认配置就是监听本地9000端口的
missdeer (未验证)
周四, 2013/03/07 - 18:03
Permalink
安装spawn-fcgi报找不到是怎么回事:
安装spawn-fcgi报找不到是怎么回事:
[tvu@localhost ~]$ sudo yum install spawn-fcgi
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
No package spawn-fcgi available.
Error: Nothing to do
yejr
周六, 2013/03/09 - 17:02
Permalink
PHP 5.4已自带cgi功能,即:PHP-fpm
PHP 5.4已自带cgi功能,即:PHP-fpm,就不需要spawn-cgi了
berton (未验证)
周四, 2013/05/23 - 12:54
Permalink
在error.log中出现错误
在error.log中出现错误
FastCGI sent in stderr: “Primary script unknown” while reading response header from upstream, client...
yejr
周四, 2013/05/23 - 20:30
Permalink
只能仔细检查配置了,或者google下 :)
只能仔细检查配置了,或者google下 :)
dreamour (未验证)
周四, 2013/07/18 - 16:35
Permalink
我在CentOS 6.3 64位按照本文安装Nginx
我在CentOS 6.3 64位按照本文安装Nginx、MySQL和PHP。PHP死活不运行,以为是9000端口没有开,Google很多资料,都找不到头绪。
最后发现http://blog.itnmg.net/centos-lnmp/解决了问题,原来必须指定安装php54w-fpm。
service php-fpm start
PHP可以解析了!