Ubuntu 14.04.1 架站 Nginx, PHP, MySQL

不知道是哪根筋不對,一直想要在老舊機器安裝Windows Server 2008,然後卡在PHP裝不起來(什麼少了msvcr110.dll…我都裝了VCR 2012 U4了…)好吧我承認是銘傳雲端太方便,捨不得離開R2 Datacenter!哈哈,但是在單核Celeron實在太痛苦,只好改裝最熟悉的陌生人Ubuntu。

之前總是使用Apache來做Server,也是比較常用的Server,會知道Nginx是有一次系網站主機掛掉,出現的Default 404看到Nginx這英文單字才去Google的,原來是輕量級伺服器,但是對於小弟我這初學者實在是感覺不出來Server Loading的重要性…好吧,總是要學學新東西的,先裝起來再說,這次參考的網頁,除了安裝之外,還多了基本的安全性設定喔。

Domain : tvpsh2020.idv.tw
狀態 : 尚未付費,NTD 400/年
Domain : tvpsh2020.no-ip.org

Step0 : 前置作業,架設網路環境

首先先把Software Center的伺服器位置改成US,台灣Ubuntu超慢的,詳細的command-line設定法請參考 Ubuntu Wiki ,小弟我都用GUI設定。雖然一開始有GUI比較方便先微調基本參數,但之後有些事情還是用SSH比較好解決(我總不能一直守在主機前面XD),SSH請參考我的Hadoop架設文章

Step1 : 安裝Nginx

首先是安裝伺服器Nginx,記得用localhost測試一下,主機跟目錄會在 /usr/share/nginx/html/

1
sudo apt-get install nginx

等等首頁就會變成這樣

Nginx

Step 2 : 安裝MySQL

1
sudo apt-get install mysql-server

他會問你兩次root要設的密碼

1
2
sudo mysql_install_db
sudo mysql_secure_installation

其中”mysql_secure_installation”會問你要不要變更MySQL的root密碼,剛剛才設定可以不用更動,其他的全部Enter到底

Step 3 : 安裝PHP

是說,Nginx不支援Native PHP,這方面我也沒有特別研究,只知道FastCGI比較快,所以這邊要安裝的是PHP-FPM

1
sudo apt-get install php5-fpm php5-mysql

接下來要進行一些安全性設定

1
sudo vi /etc/php5/fpm/php.ini

找到cgi.fix_pathinfo這行,把分號(semicolon)註解去掉並將參數設成0

1
cgi.fix_pathinfo=0

然後重新啟動服務

1
sudo service php5-fpm restart

接著我們要讓Nginx使用PHP處理器

1
sudo vi /etc/nginx/sites-available/default

以下紅字是去掉註解(或新增)的地方

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index <span style="color:#ff0000;">index.php</span> index.html index.htm;

    server_name <span style="color:#ff0000;">server_domain_name_or_IP</span>;

    location / {
        try_files $uri $uri/ =404;
    }

    <span style="color:#ff0000;">error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }</span>
}

改完之後重啟服務

1
sudo service nginx restart

Extra : phpMyAdmin

MySQL實在不太熟的人,可以利用phpMyAdmin來用網頁管理MySQL,直覺的GUI讓作業方便許多

1
sudo apt-get install phpmyadmin

之後就是問你密碼,還有一些設定,直接Yes下一步。
接著要產生一個phpMyAdmin捷徑給html根目錄

1
sudo ln -s /usr/share/phpmyadmin /usr/share/nginx/html

還有一些安全性設定,之後重啟服務

1
2
sudo php5enmod mcrypt
sudo service php5-fpm restart

於是phpMyAdmin就會出現在這個網址囉~
server_domain_or_IP/phpmyadmin

—參考文獻
[1] How To Install Linux, nginx, MySQL, PHP (LEMP) stack on Ubuntu 14.04 – https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-14-04
[2] How To Install and Secure phpMyAdmin with Nginx on an Ubuntu 14.04 Server – https://www.digitalocean.com/community/tutorials/how-to-install-and-secure-phpmyadmin-with-nginx-on-an-ubuntu-14-04-server
[3] Nginx/FastCGI/PHP-FPM 相關設定 – http://blog.teatime.com.tw/1/post/383
[4] High-performance PHP on apache httpd 2.4.x using mod_proxy_fcgi and php-fpm. – https://wiki.apache.org/httpd/PHP-FPM

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料