CentOS6.3下nginx、php-fpm、drupal快速部署

科技小先鋒發表於2017-11-15

一切本著從簡原則來做,能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

大功告成 ?

本文轉自葉金榮51CTO部落格,原文連結:http://blog.51cto.com/imysql/1879767,如需轉載請自行聯絡原作者


相關文章