sudo apt-get update sudo apt-get install nginx
此時訪問你的服務器地址應該會出現這個畫面php
安裝css
sudo apt-get install mysql-server
系統將要求您提供root(管理)密碼,以便在MySQL系統中使用。html
由於ubuntu16.04只支持php7,因此安裝php7mysql
sudo apt-get install php-fpm php-mysql
咱們如今已經安裝了PHP組件,可是咱們須要進行輕微的配置更改以使咱們的設置更安全。nginx
php-fpm使用root權限打開主配置文件:git
sudo vim /etc/php/7.0/fpm/php.ini
在文件中尋找的是設置的參數cgi.fix_pathinfo。這將用分號(;)註釋掉,默認設置爲「1」。正則表達式
這是一個很是不安全的設置,由於它告訴PHP嘗試執行它找不到所請求的PHP文件時能夠找到的最接近的文件。這基本上容許用戶以容許他們執行不該該被容許執行的腳本的方式來建立PHP請求。sql
咱們將經過取消註釋該行並將其設置爲「0」來更改這兩個條件,以下所示:數據庫
在vim中可使用/後面接內容進行查找ubuntu
cgi.fix_pathinfo=0
重啓PHP處理
sudo systemctl restart php7.0-fpm
執行如下命令
sudo vim /etc/nginx/sites-available/default
Nginx默認服務器塊文件以下所示:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name _; location / { try_files $uri $uri/ =404; } }
對當前文件進行幾點更改:
更改在中標記的文本:
server {
listen 80 default_server; listen [::]:80 default_server; root /var/www/html; #這一行中添加了index.php 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; } #以上全部內容須要添加}
完成上述更改後,您能夠保存並關閉該文件。
檢查ng的語法錯誤
sudo nginx -t
若是沒有問題重啓Nginx
sudo systemctl reload nginx
測試Nginx是否能夠正確地將.php文件傳遞給咱們的PHP處理器。
咱們能夠經過在文檔根目錄中建立測試PHP文件來完成此操做。info.php在文本編輯器中打開文檔根目錄中調用的新文件:
sudo vim /var/www/html/info.php
如下爲內容
<?php
phpinfo();
完成後,保存並關閉文件。
如今,您能夠經過訪問
服務器ip/info.php:
能夠看到該網頁
若是您看到一個看起來像這樣的頁面,那麼您已成功使用Nginx設置PHP處理。
如今,用如下命令刪除文件: (固然不刪除也不會有什麼問題)
sudo rm /var/www/html/info.php
WordPress使用MySQL來管理和存儲站點和用戶信息。咱們已經安裝了MySQL,可是咱們須要爲WordPress建立一個數據庫和用戶。
MySQL登陸:
mysql -u root -p
輸入安裝mysql時候的密碼
首先,咱們能夠建立一個WordPress能夠控制的獨立數據庫。你能夠隨意調用它,但咱們將wordpress在本指南中使用它來保持簡單。您能夠經過鍵入如下命令爲WordPress建立數據庫:
#其中wordpress只是爲數據庫名稱,能夠隨意修改 CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
咱們將建立此賬戶,設置密碼並授予對咱們建立的數據庫的訪問權限。咱們能夠經過輸入如下命令來完成此操做。
#其中wordpress爲數據庫名稱,wordpressuser爲建立的用戶的名稱,password爲建立的用戶的密碼 GRANT ALL ON wordpress.* TO 'wordpressuser'@'localhost' IDENTIFIED BY 'password';
刷新權限,以便MySQL的當前實例知道咱們最近作出的更改:
FLUSH PRIVILEGES;
退出
EXIT;
使用如下sudo權限打開默認服務器塊文件:
sudo vim /etc/nginx/sites-available/default
在主server塊中,咱們須要添加幾個location塊。
經過建立要求精確匹配的位置開始塊/favicon.ico和/robots.txt,這兩個咱們不但願記錄的請求。
咱們將使用正則表達式位置來匹配任何靜態文件請求。咱們將再次關閉這些請求的日誌記錄,並將它們標記爲高度可緩存,由於這些一般是昂貴的服務資源。您能夠調整此靜態文件列表以包含您的站點可能使用的任何其餘文件擴展名:
server { . . . #如下爲須要添加的location location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { log_not_found off; access_log off; allow all; } location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ { expires max; log_not_found off; } . . . }
調整try_files列表,以便不是將404錯誤做爲默認選項返回,而是index.php使用請求參數將控制傳遞給 文件。
server { . . . location / { #try_files $uri $uri/ =404; try_files $uri $uri/ /index.php$is_args$args; } . . . }
完成後,保存並關閉文件。
檢查Nginx語法
sudo nginx -t
重啓
sudo systemctl reload nginx
在設置LEMP堆棧時,咱們只須要一組很是小的擴展,以便讓PHP與MySQL通訊。WordPress及其許多插件利用了額外的PHP擴展。
咱們能夠經過輸入如下命令下載並安裝一些最流行的PHP擴展以與WordPress一塊兒使用:
sudo apt-get update sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
重啓PHP
sudo systemctl restart php7.0-fpm
ps:如下步驟用於配置權限問題,也能夠直接將wordpress放到/var/www/html目錄下賦予權限便可
如今咱們的服務器軟件已經配置好了,咱們能夠下載並設置WordPress。出於安全緣由,咱們始終建議從其站點獲取最新版本的WordPress。
轉換爲可寫目錄,而後鍵入如下命令下載壓縮版本:
cd /tmp curl -O https://wordpress.org/latest.tar.gz
解壓
tar xzvf latest.tar.gz
咱們將暫時將這些文件移動到咱們的文檔根目錄中。在咱們這樣作以前,咱們能夠將示例配置文件複製到WordPress實際讀取的文件名:
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
咱們還能夠建立upgrade目錄,以便WordPress在更新其軟件後嘗試自行執行此操做時不會遇到權限問題:
mkdir /tmp/wordpress/wp-content/upgrade
如今,咱們能夠將目錄的所有內容複製到咱們的文檔根目錄中。咱們使用該-a標誌來確保維護咱們的權限。咱們在源目錄的末尾使用一個點來表示應該複製目錄中的全部內容,包括任何隱藏文件:
sudo cp -a /tmp/wordpress/. /var/www/html
咱們須要完成的一件大事是創建合理的文件權限和全部權。咱們須要可以以普通用戶的身份寫入這些文件,而且咱們須要Web服務器也可以訪問和調整某些文件和目錄才能正常運行。
咱們首先將文檔根目錄中的全部文件的全部權分配給用戶名。咱們將root在本指南中使用咱們的用戶名,但您應該更改此選項以匹配您的sudo用戶調用。咱們會將羣組全部權分配給www-data羣組:
sudo chown -R root:www-data /var/www/html
配置setgit位
sudo find /var/www/html -type d -exec chmod g+s {} \;
爲wp-content目錄提供組寫訪問權限,以便Web界面能夠進行主題和插件更改:
sudo chmod g+w /var/www/html/wp-content
爲Web服務器提供對這兩個目錄中全部內容的寫訪問權限:
sudo chmod -R g+w /var/www/html/wp-content/themes sudo chmod -R g+w /var/www/html/wp-content/plugins
這只是一個合理的權限設置開始,一些插件可能須要單獨配置。
如今,咱們須要對主WordPress配置文件進行一些更改。
vim /var/www/html/wp-config.php
數據庫鏈接設置下方或文件中的任何其餘位置添加此設置:
. . . /** MySQL database name */ define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wordpressuser'); /** MySQL database password */ define('DB_PASSWORD', 'password'); . . . define('FS_METHOD', 'direct');
完成後保存並關閉文件。
進入你的服務器地址進行配置。
更新的時候因爲權限問題可能沒法更新。
此時須要從新賦權:
sudo chown -R www-data /var/www/html
完成後,再次鎖定權限以確保安全性:
sudo chown -R root /var/www/html
建議僅在升級時才設置此權限。