前言
工作的緣故,需要使用這個不一樣的組合,可能有些人是第一次聽到吧XD
LEPP, 是我把:Linux + Nginx + PostgreSQL + PHP 的縮寫,並安裝在Ubuntu 16.04上面。為了把國外良好與優良的文章做整理,所以就催生出這篇文章出來。
前提作業系統環境
Ubuntu 16.04.* LTS
安裝Nginx + PHP
有了Ubuntu 16.04的作業系統之後,使用ssh方式登入,如下的畫面。
ssh user_name@your-host-name-or-ip-address
登入進去之後,開始進行下列的安裝Nginx套件指令。
sudo apt-get update sudo apt-get install nginx
強烈建議使用ufw防火牆進行允許HTTP port 80 可以連入。
sudo apt-get install ufw sudo ufw enable sudo ufw allow 'Nginx HTTP' sudo ufw status
接著拜訪下面的連結:
http://server_name_or_ip_address
看到下面的畫面之後,就會知道已經成功安裝了。
安裝PHP 7
安裝完Ngnx之後,接下來要安裝的是PHP 7,因為要讓Nginx上面跑PHP,所以我們要額外的安裝Fast CGI module。我們就依照下面的指令依序安裝php與其fast cgi模組。
以及存取PostgreSQL的模組,以及一些我覺得有必要的擴展(extensions)。
sudo apt-get update sudo apt-get install php-fpm php-pgsql
安裝好以後,可以運用下面的指令檢查看看是否PostgreSQL擴展已經安裝成功。
php -m | grep pg
接著設定與fpm有關PHP組態設定檔,別忘了,vim要安裝唷!
sudo vim /etc/php/7.0/fpm/php.ini
接著組態設定檔裡面,找到這一行:
;cgi.fix_pathinfo=1
把它改成
cgi.fix_pathinfo=0
改完之後存檔,並將服務php-fpm進行重啟
sudo service php7.0-fpm restart
接著,修改Nginx的sites-available設定檔
sudo vim /etc/nginx/sites-available/default
並按照下面的設定檔進行增加,下面是新增過後的設定檔的樣子。
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.php index.html index.htm index.nginx-debian.html; server_name server_domain_or_IP; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.0-fpm.sock; } location ~ /\.ht { deny all; } }
主要是新增:index.php, server_domain_or_IP, location ~ \.php$ 區塊以及location ~ /\.ht區塊
新增完成之後,可以使用下面的指令來幫助我們檢查Nginx語法是否正確
sudo nginx -t
都設定完成沒有錯誤之後,我們可以重新啟動Nginx的服務。
sudo service nginx restart
接著我們可以新建立一個頁面在/var/www/html下面,名叫:info.php。
<?php phpinfo();
拜訪網址,成功的話,就會看到下面的畫面了。
要記得一件事情,因為這是用來測試PHP有沒有安裝成功,所以記得測試完成沒有問題之後,把info.php給移除喔!
因為,這只是用來測試的,記得測試完成之後,要把這個檔案移除喔!
下一篇,我們來介紹:怎麼用Nginx來建立子網域。