如何用nginx配置wordpress
之前,我曾自己搭建過Wordpress,只不過那時候用的是第三方的虛擬主機,一臺機器上可能有幾十個網站。那時候的虛擬機器還沒做到物理層面的隔離,一個網站佔用資源可能會導致所有網站宕機。
最近嘗試了下在阿里雲ecs上搭建了獨立的wordpress,記錄下搭建的過程。
原先我想嘗試使用apache作為wordpress的容器,用nginx作為反向代理直接代理到apache。但是在我使用了apache後,發現了一個問題,直接使用nginx作為反向代理,轉到apache後,url偽靜態貌似無法訪問,好像需要對每一個url進行nginx的location配置,感覺太過麻煩,就放棄了。
當然也有可能有其他解決方法,不過我沒嘗試,後來我查詢了下nginx是可以利用第三方外掛支援php的。直接利用nginx做容器也有優點,部署起來相對簡單,多個網站也可以直接通過nginx單個容器進行部署。
1.域名購買
這個就不多講了,去域名平臺申請域名。
2.mysql安裝
安裝mysql的方法我之前已經講過,具體可以看ofollow,noindex">這裡 。安裝完成之後,我們需要為wordpress建立一個單獨的賬戶,為什麼要建立一個單獨的賬戶呢?主要是為了安全考慮,如果wordpress被攻擊了,而你使用了root賬戶,那麼資料庫中的所有表都會被暴露。
// 建立wordpress使用者,並設定密碼,密碼建議隨機生成,並且不少於8位,採用大小寫,數字,特殊字元組合 CREATE USER 'wordpress'@'%' IDENTIFIED BY 'password'; //給予wordpress這個賬戶所有的操作許可權,包含 select delete update insert create alter 等 GRANT all ON wordpress.* TO 'wordpress'@'%';
許可權詳細資訊可以參考這裡。
3.nginx安裝
nginx採用yum方式安裝,非常簡單。
安裝:
yum -y install nginx;
啟動:
systemctl start nginx.service;
兩個步驟就完成了nginx的安裝。
4.安裝php
4.1 php安裝
yum -y install php;
php安裝非常簡單,安裝完成之後,執行以下命令檢視,顯示版本,則說明安裝正確:
php -v;
4.2 php-fpm 安裝
除了php之外,我們還需要用到兩個東西,fast-cgi和php-fpm。那麼這兩樣東西是什麼呢?如果想了解詳情的,可以看這裡 ,簡單的說fpm就是fastcgi的一個管理器。在此之前我一直不知道需要安裝fpm才能正確解析php檔案的,折騰了很長的一段時間。
yum installphp-fpm; //檢視是否安裝成功 php-fpm-v; 啟動php-fpm systemctl start php-fpm;
fpm預設佔用的是9000埠。
5.安裝wordpress
wget https://wordpress.org/latest.tar.gz; //解壓 tar -xzf latest.tar.gz -C /var/www/html;
解壓完成之後,找到:/wordpress/wp-config-sample.php檔案,修改資料庫名稱、使用者名稱、密碼,欄位如下:
// ** SQL/">MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define('DB_NAME', '你的資料庫名稱'); /** MySQL database username */ define('DB_USER', '你的使用者名稱'); /** MySQL database password */ define('DB_PASSWORD', '你的密碼'); /** MySQL hostname */ define('DB_HOST', '你的host');
修改完成之後,把wp-config-sample.php的檔名改為:wp-config.php。
6.配置nginx
以下是我的配置,可以參考:
#* Official English Documentation: http://nginx.org/en/docs/ #* Official Russian Documentation: http://nginx.org/ru/docs/ upstream php { #server unix:/tmp/php-cgi.socket; #指向到fpm的預設9000埠, server 127.0.0.1:9000; } server { listen80 ; listen[::]:80 ; server_namewww.domain.com; root/web/www.domain.com/; indexindex.php; location ~ \.php$ { #NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini include fastcgi.conf; fastcgi_intercept_errors on; fastcgi_pass php; } # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; }
7.安全設定
世界上大概有20%左右的網站用的是wordpress系統,這也導致wordpress成為了黑客的攻擊物件,安全問題不容忽視,無論對於個人還是企業。對於普通使用者有沒有簡單的方法讓我們快速提升安全防護呢?我查看了幾款安全外掛,有這麼一款外掛可以幫助我們提升安全攻略,外掛名是All In One WP Security & Firewall 。這款外掛相對普通使用者來說顯得簡單易用。
如果你也想在阿里雲ecs上搭建獨立的wordpress站點,那麼可以嘗試折騰一下,目前阿里雲正推出全民雲端計算 活動,雲伺服器拼團低至234元/年。我的站點都是搭建在阿里雲ecs上的,穩定快速。