之前,我曾自己搭建過Wordpress,只不過那時(shí)候用的是第三方的虛擬主機(jī),一臺(tái)機(jī)器上可能有幾十個(gè)網(wǎng)站。那時(shí)候的虛擬機(jī)還沒做到物理層面的隔離,一個(gè)網(wǎng)站占用資源可能會(huì)導(dǎo)致所有網(wǎng)站宕機(jī)。
最近嘗試了下在阿里云ecs上搭建了獨(dú)立的wordpress,記錄下搭建的過程。
原先我想嘗試使用apache作為wordpress的容器,用nginx作為反向代理直接代理到apache。但是在我使用了apache后,發(fā)現(xiàn)了一個(gè)問題,直接使用nginx作為反向代理,轉(zhuǎn)到apache后,url偽靜態(tài)貌似無(wú)法訪問,好像需要對(duì)每一個(gè)url進(jìn)行nginx的location配置,感覺太過麻煩,就放棄了。
當(dāng)然也有可能有其他解決方法,不過我沒嘗試,后來(lái)我查詢了下nginx是可以利用第三方插件支持php的。直接利用nginx做容器也有優(yōu)點(diǎn),部署起來(lái)相對(duì)簡(jiǎn)單,多個(gè)網(wǎng)站也可以直接通過nginx單個(gè)容器進(jìn)行部署。
1.域名購(gòu)買
這個(gè)就不多講了,去域名平臺(tái)申請(qǐng)域名。
2.mysql安裝
安裝mysql的方法我之前已經(jīng)講過,具體可以看 這里 。安裝完成之后,我們需要為wordpress建立一個(gè)單獨(dú)的賬戶,為什么要建立一個(gè)單獨(dú)的賬戶呢?主要是為了安全考慮,如果wordpress被攻擊了,而你使用了root賬戶,那么數(shù)據(jù)庫(kù)中的所有表都會(huì)被暴露。
// 創(chuàng)建wordpress用戶,并設(shè)置密碼,密碼建議隨機(jī)生成,并且不少于8位,采用大小寫,數(shù)字,特殊字符組合
CREATE USER 'wordpress'@'%' IDENTIFIED BY 'password';
//給予wordpress這個(gè)賬戶所有的操作權(quán)限,包含 select delete update insert create alter 等
GRANT all ON wordpress.* TO 'wordpress'@'%';
權(quán)限詳細(xì)信息可以參考這里。
3.nginx安裝
nginx采用yum方式安裝,非常簡(jiǎn)單。
安裝:
啟動(dòng):
systemctl start nginx.service;
兩個(gè)步驟就完成了nginx的安裝。
4.安裝php
4.1 php安裝
php安裝非常簡(jiǎn)單,安裝完成之后,執(zhí)行以下命令查看,顯示版本,則說(shuō)明安裝正確:
4.2 php-fpm 安裝
除了php之外,我們還需要用到兩個(gè)東西,fast-cgi和php-fpm。那么這兩樣?xùn)|西是什么呢?如果想了解詳情的,可以看 這里 ,簡(jiǎn)單的說(shuō)fpm就是fastcgi的一個(gè)管理器。在此之前我一直不知道需要安裝fpm才能正確解析php文件的,折騰了很長(zhǎng)的一段時(shí)間。
yum install php-fpm;
//查看是否安裝成功
php-fpm -v;
啟動(dòng)php-fpm
systemctl start php-fpm;
fpm默認(rèn)占用的是9000端口。
5.安裝wordpress
wget https://wordpress.org/latest.tar.gz;
//解壓
tar -xzf latest.tar.gz -C /var/www/html;
解壓完成之后,找到:/wordpress/wp-config-sample.php文件,修改數(shù)據(jù)庫(kù)名稱、用戶名、密碼,字段如下:
// ** MySQL settings - You can get this info from your web host ** //
/** The name of the database for WordPress */
define('DB_NAME', '你的數(shù)據(jù)庫(kù)名稱');
/** 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的默認(rèn)9000端口,
server 127.0.0.1:9000;
}
server {
listen 80 ;
listen [::]:80 ;
server_name www.domain.com;
root /web/www.domain.com/;
index index.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.安全設(shè)置
世界上大概有20%左右的網(wǎng)站用的是wordpress系統(tǒng),這也導(dǎo)致wordpress成為了黑客的攻擊對(duì)象,安全問題不容忽視,無(wú)論對(duì)于個(gè)人還是企業(yè)。對(duì)于普通使用者有沒有簡(jiǎn)單的方法讓我們快速提升安全防護(hù)呢?我查看了幾款安全插件,有這么一款插件可以幫助我們提升安全攻略,插件名是All In One WP Security & Firewall 。這款插件相對(duì)普通用戶來(lái)說(shuō)顯得簡(jiǎn)單易用。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。