Ubuntu 系統雖好,而且是商業公司 Canonical Ltd 維護,質量是絕對有保障的,但是有一點讓我很不爽的地方,就是這系統太激進,出於個人愛好,我推薦使用 Debian 作為生產環境,畢竟 Ubuntu 也是 Debian 改的嘛。
而 Debian 由社群維護,沒商業公司那麼多雜七雜八的流程,Dotdeb 製作維護的 LEMP 倉庫,便是其中一個佼佼者,基本上官方釋出最新穩定版,這貨就會跟上。
眾所周知,Ubuntu 是基於 Debian 系的,所以使用上完全不成問題,下面我們進入安裝步驟吧。
以下安裝步驟都在 root
使用者下完成,請自行使用 su
命令切換到 root
使用者
1、增加 Backports 和 Dotdeb 源並更新系統
按照 Dotdeb 的安裝說明,從 Nginx 1.10.2 開始已經修復並完全支援 HTTP/2 ,但是其中的 OpenSSL
升級需要使用 Debian 8.x Jessie 的 Backports
倉庫
首先新建個原始檔 /etc/apt/sources.list.d/dotdeb.list
,加入這幾行
#Backports
deb http://ftp.debian.org/debian jessie-backports main
#Dotdeb
deb http://packages.dotdeb.org jessie all
deb-src http://packages.dotdeb.org jessie all
deb http://packages.dotdeb.org jessie-nginx-http2 all
deb-src http://packages.dotdeb.org jessie-nginx-http2 all
然後匯入 Dotdeb 的 GnuPG key
wget https://www.dotdeb.org/dotdeb.gpg
apt-key add dotdeb.gpg
接著更新一下系統並且安裝一些必要的軟體
apt-get update && apt-get upgrade
apt-get install vim curl sudo wget
2、升級 OpenSSL
Debian 8.x Jessie 目前的 OpenSSL 版本還是 1.0.1,不支援 ALPN 的最低要求 1.0.2,所以我們升級
apt-get -t jessie-backports install libssl1.0.0
apt-get -t jessie-backports update && apt-get -t jessie-backports upgrade
檢查一下 OpenSSL 版本是否正確
root@debian ~ # openssl version
OpenSSL 1.0.2k 26 Jan 2017
3、安裝 Nginx
apt-get install nginx-extras
4、安裝 PHP 7.0.x
apt-get install php7.0-fpm php7.0-mysql php7.0-curl php7.0-gd php7.0-mbstring php7.0-mcrypt php7.0-xml php7.0-xmlrpc php7.0-zip
修改 php.ini
sed -i `s/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/` /etc/php/7.0/fpm/php.ini
重啟 PHP
systemctl restart php7.0-fpm
Nginx 參考配置檔案
server {
listen 80;
listen [::]:80;
# 指定網站目錄,可根據自己情況更換,建議放在 /var/www 目錄下
root /var/www/example.com;
index index.php index.html index.htm;
# 預設第一個域名,替換 example.com 為您的域名
server_name example.com;
location / {
try_files $uri $uri/ =404;
}
# 開啟 PHP7.0-fpm 模式
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
5、安裝 MySQL 5.7.x
和《Ubuntu Server 16.04 安裝 LEMP / LNMP 教程》一文一樣,我們推薦使用 Percona Server 代替原生的 MySQL,這裡就簡單重複一下
匯入 Percona Server 的源
wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
記得檢查一下 /etc/apt/sources.list.d/percona-release.list
是否正確
更新系統並安裝 Percona Server 5.7
apt-get update
apt-get install percona-server-server-5.7
推薦做一次 MySQL 安全設定
mysql_secure_installation
使用 MySQL root 使用者登陸
mysql -u root -p
建立資料庫 example_database
CREATE DATABASE example_database DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
建立使用者名稱 example_user
並賦予許可權
GRANT ALL ON example_database.* TO `example_user`@`localhost` IDENTIFIED BY `這裡改成你要設定的強大的沒人能猜出來的隨機的密碼`;
重新整理 MySQL 許可權
FLUSH PRIVILEGES;
沒問題以後就可以退出了
EXIT;
好了,大功告成,其實除了增加 Dotdeb 的源,不需要對 Nginx 和 PHP 進行額外的源修改,其餘步驟是和 Ubuntu 一毛一樣的,所以很多步驟都進行了說明上的省略所見,如需更詳細的說明,請訪問《Ubuntu Server 16.04 安裝 LEMP / LNMP 教程》