目標:配置一個 LNMP 伺服器,支援域名解析,支援二級域名解析,支援 PHP,支援 Node 服務,支援資料庫 Mysql…
準備
額外宣告,本教程很 low,大部分都是隻說明了怎麼用,沒有講原理,還有許多錯誤解釋,請見諒。
由於本次配置的是雲伺服器,所以你需要有一個雲伺服器,在這就不贅述了。
同時還需要一個域名,用來對映伺服器資源。
重灌伺服器,在這裡我們選擇的系統版本是 Ubuntu Server 14.04.1 LTS 64位,其他版本也類似,你喜歡就好,不過不保證下面的安裝方法有效。
連線伺服器,我用的ssh連線。
ssh ubuntu@123.206.55.207
需要注意的是ubuntu預設的使用者是 ubuntu,如果你是其他的 linux 系統,請把使用者名稱換成 root 或相應的使用者名稱。
安裝
我們使用apt-get來安裝各種軟體
nginx 1.4.6
sudo apt-get install nginx
mysql 5.5 (記住你輸的 mysql 密碼)
sudo apt-get install mysql-server mysql-client
php 7.0 (16.04以下的Ubuntu沒有7.0的源,需要先自己新增然後安裝)
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php7.0-mysql php7.0-curl php7.0-json php7.0-mbstring php7.0-zip php7.0-cgi php7.0 php7.0-fpm
複製程式碼
可能會要等好久,耐心一點吧。
git
sudo apt-get install git
複製程式碼
配置
nginx
先進入 nginx 配置檔案目錄
cd /etc/nginx
修改 nginx 配置,提供兩種方法,一種是用變數配置通配服務,另一種是為每一個服務寫一個配置檔案。現在只介紹通配方法,寫配置檔案方法在後面,你可以先跳過去看看。
在nginx配置檔案(/etc/nginx/sites-enabled/default)中插入如下 server 配置,插入即可,不用修改預設 server。記得把 yourdomain.com替換成你自己的域名。
server {
listen 80;
server_name ~^((?<subdomain>.*)\.)?yourdomain\.com$;
if ($subdomain = "") {
set $subdomain "www";
}
root html/$subdomain;
index index.html index.htm index.php;
fastcgi_intercept_errors on;
error_page 404 = /404.html;
location / {
# This is cool because no php is touched for static content.
# include the "?$args" part so non-default permalinks doesn't
# break when using query string
try_files $uri $uri/ =404;
}
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
#
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
location ~ /\.ht {
deny all;
}
}
複製程式碼
插入之後,我們重啟一下 nginx 服務
sudo service nginx restart
重啟成功後,我們需要進入 nginx 的資源目錄。
cd /usr/share/nginx/html/
由於我們用的是變數法通配的二級域名,預設的 www 或者不加 www 訪問的網址在 nginx 資源目錄的 www 目錄下,我們在www目錄下寫一個 index.php 來試試上面的配置是否生效。
sudo mkdir www && cd www
sudo touch index.php
複製程式碼
index.php 內容
<?php
phpinfo();
?>
複製程式碼
解析域名
其實上一步忘了一件事,那就是解析域名,我們需要進行域名雲解析。首先新增一條 @ 記錄
然後再加一條 www,與上面類似。
我們為了測試二級域名的配置是否生效,加上自己想要二級域名字首,我加的是 wp,因為待會想要測試一下 WordPress 能否正常搭建。
測試 好了,完成了上面的步驟,我們就基本完成了本次伺服器的配置,我們瀏覽我們的域名,檢視是否生效。 如果正常的話,應該會列印出 php 的配置資訊。
到此,我們的 LNMP 伺服器已經配置好,以後每次想要修改資原始檔,只需要在/usr/share/nginx/html/中修改對應域名名稱的資料夾下的內容即可,比如我要修改 blog.admin.com 的內容,只需修改/usr/share/nginx/html/blog 中的資源。
對於每一個二級域名,我們都需要在域名管理的雲解析中新增對應的解析即可。