您在這裡

Drupal 7 + Clean URL 在 Ubuntu 12.04 + Nginx 安裝流程

cobenash's 的頭像
cobenash 在 2014-11-21 (週五) 14:05 發表

Nginx 已經成為了現在很多大型網站的另外一個解答,不僅輕巧,而且效能、速度、穩定度都更好

已經有不少公司已經從Apache轉到了Nginx的懷抱之中,我們也不例外。

以下將使用Ubuntu12.04搭配者Nginx Server +MySQL +  Drush ,並且安裝完成Drupal 7。

Step 1:更新系統

先做所有套件系統的更新

$ sudo apt-get update
$ sudo apt-get upgrade

 

Step2: 安裝MySQL

$ sudo apt-get install mysql-server

 

Step3:安裝Nginx

$ sudo apt-get install nginx

$ sudo service nginx start

若是都成功啟用了,這個時候進入這個IP的網頁,就可以順利看到下圖

 

Step4:安裝 PHP-FPM

sudo apt-get install php5-fpm
 
Step5:設定PHP-FPM
 
編輯”/etc/php5/fpm/php.ini“這個檔案,並且將cgi.fix_pathinfo值更改為0還有拿掉前面的「;」符號,也就是讓這行程式執行的意思。
 
Step6:設定/etc/php5/fpm/pool.d/www.conf
將裏面的一行字
listen = 127.0.0.1:9000
改成
listen = /var/run/php5-fpm.sock

設定完成之後,再將下面的三行

listen.owner = www-data

listen.group = www-data

listen.mode = 0660

前面的「;」拿掉,儲存。

重新啟動php5-fpm

sudo service php5-fpm restart

 

其實,到這裡已經算是完成了php在Nginx上面的安裝了,可以利用以下進行測試

分成以下三個步驟:

  1. 進入/etc/nginx/sites-available/
  2. 編輯default檔案
  3. 加入index.php 還有 uncomment 下面的php設定

在index的後面加入index.php,並且再往下找到location ~ \.php$的地方,uncomment php的設定

在這裡請務必注意,不要uncomment  "fastcgi_pass 127.0.0.1:9000;",因為底下已經有了

fastcgi_pass unix:/var/run/php5-fpm.sock;

再來進入/usr/share/nginx/www/ 修改我們的index.html吧

首先我們將index.html改成index.php,然後裏面加入了簡單印出phpinfo的語法

<?php

phpinfo();

?>

再重新回到網頁就可以得到以下結果

看到這個畫面,代表您已經成功的在Ubuntu上面安裝了Nginx+php的服務,並且也可以看到FPM/FASTCGI

接下來我們就繼續往下走!

 

Step7:安裝php5-mysql 還有 php5-gd

當然目標是安裝Drupal,接著將其他相關需要的套件安裝上去

$ sudo apt-get install php5-mysql
$ sudo apt-get install php5-gd

安裝完這些套件,請務必再重新啟動php5-fpm這個服務

Step8:安裝Drush

Drush是Drupal不可或缺的一個原件,有了Drush可以讓我們更方便控制Drupal。

sudo apt-get install php-pear

pear channel-discover pear.drush.org

pear install drush/drush

drush version

Step9:安裝Drupal

將Drupal的元件下載到/usr/share/nginx/www 裏面

重新進入網站首頁,應該就可以看到了Drupal的安裝畫面了

$ drush dl drupal

$ mv drupal-7.31 www

$ mysql -p

$ create database example;

$ create user test@localhost identified by 'test123';

$ grant all privileges on example.* to test@localhost;

完成資料庫安裝以及Drupal安裝。

 

Step10:設定Clean URL

安裝好Drupal之後,再來一個重點就是Clean URL的部分了

做法很簡單,就是去設定「網站設定檔」,編輯 /etc/nginx/sites-available/default

更改“location /” 以及加入 “location @drupal”

location / {

                 root   /usr/share/nginx/www/;

                 index  index.php;

                 error_page 404 = @drupal;

        }

location @drupal {

            rewrite ^(.*)$ /index.php?q=$1 last;

 }

如下圖

更改完畢,重新啟動nginx,完成。

 

Step11:設定PHP執行時間+上傳檔案大小+記憶體大小

1.設定php執行時間

針對個別的網站進行設定,例如example.com

編輯  /etc/nginx/sites-available/example.com
location ~ \.php$ {
	include /etc/nginx/fastcgi_params;
        fastcgi_pass  unix:/var/run/php5-fpm.sock;
	fastcgi_read_timeout 300; 
}

如果是針對全部網站進行設定

編輯 /etc/nginx/nginx.conf
http {
	#...
        fastcgi_read_timeout 300; 
	#...
}

2.設定上傳檔案大小

編輯 /etc/php5/fpm/php.ini

upload_max_filesize = 100M
post_max_size = 100M

再編輯/etc/nginx/nginx.conf

http {
	#...
        client_max_body_size 100m;
	#...
}

3.設定記憶體大小

編輯 /etc/php5/fpm/php.ini

memory_limit=512M

看您的選擇,要多少記憶體限制了~

 

到這裡算是全部設定完成!!!!!

 

 

 

參考資料:

  1. How To Install Linux, nginx, MySQL, PHP (LEMP) stack on Ubuntu 12.04
  2. Running Drupal on Nginx with Memcached
  3. nginx error connect to php5-fpm.sock failed (13: Permission denied)
  4. Increase PHP script execution time with Nginx
  5. How To Migrate from an Apache Web Server to Nginx on an Ubuntu VPS
  6. Linux – How to configure NGINX + PHP-FPM + Drupal 7.0
  7. Clean URLs with NGINX
  8. Increase PHP script execution time with Nginx
  9. Nginx error 413: Request entity too large Quick Fix

- See more at : http://www.hellosanta.com.tw/Drupal網站設計/drupal-7-clean-url-在-ubuntu-1204-+-nginx-安裝流程