CentOS下搭建LNMP+WordPress+http2.0教程


此文是本人CentOS下搭建WordPress的一些筆記,環境搭建時間:201804;將看過的幾篇文章總結下來,形成一條龍長文、不用大家再找來找去。

本文大概分為此幾部分:

一、基礎命令更新;

二、服務器加速(非必選)(10分鍾);

三、LNMP安裝(30分鍾);

四、WordPress搭建(30分鍾);

五、開啟https\https2.0(15分鍾);

六、http跳轉https(10分鍾);

七、“噢,沒有這個文件”;

 

什么是lnmp?就是Linux、Nginx、MySql、PHP,裝好這些就能為你的應用(WordPress)提供部署環境。這些在lnmp.org上面都能找到官方教程。當然還有lamp、lnmpa等,a代表Apache。如果我無寫明具體路徑的,說明命令是哪里都能執行。現在開始一條龍教程。

一、基礎命令更新:

yum -y install wget lrzsz screen gcc glibc-devel iptables iptables-services

screen:這個命令新手可能比較陌生,解釋一下。screen可以在終端斷開連接的情況下,不終止服務器的服務運行。lnmp需要安裝十幾至幾十分鍾,過程中很容易斷網的。

lrzsz:針對secureCRT客戶端,實現輕便的文件上下傳功能。

 

二、服務器加速(非必選):

其實就是serverSpeeder安裝教程。如果已經安裝過,就可以跳過。沒裝過的也可以先把WordPress裝好,對網速覺得不滿意再回來搞這部分。

1、先更換內核:

centos6: kernel-2.6.32-504.3.3.el6

rpm -ivh http://xz.wn789.com/CentOSkernel/kernel-firmware-2.6.32-504.3.3.el6.noarch.rpm

rpm -ivh http://xz.wn789.com/CentOSkernel/kernel-2.6.32-504.3.3.el6.x86_64.rpm --force

centos7: kernel-3.10.0-229.1.2.el7.x86_64

rpm -ivh http://soft.91yun.org/ISO/Linux/CentOS/kernel/kernel-3.10.0-229.1.2.el7.x86_64.rpm --force

rpm -ivh https://buildlogs.centos.org/c7.1511.00/kernel/20151119220809/3.10.0-327.el7.x86_64/kernel-3.10.0-327.el7.x86_64.rpm --force

2、安裝完成后,需要重啟才能生效:

shutdown -r now

3、安裝服務:

cd  /home/down  (下載目錄,根據你習慣而定)
wget -N --no-check-certificate https://raw.githubusercontent.com/91yun/serverspeeder/master/serverspeeder-all.sh && bash
chmod +x serverspeeder-all.sh
./serverspeeder-all.sh

 

三、LNMP安裝:

完整教程請查看https://lnmp.org/install.html 

不過既然寫文章了,當然要總結一下:

1、啟動screen(必須):

screen -S lnmp  (大寫S)

如果網絡掉線,可以重新連接,再執行 screen -r lnmp 就會看到你的lnmp安裝進程

2、進入個人下載目錄:

cd  /home/down  (下載目錄,根據你習慣而定)

3、下載LNMP並啟動安裝腳本:

wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp

如果你的服務器內存有1G以上,你可以選擇MYSQL5.6或以上、PHP7或以上。 反之,如果你必須安裝MYSQL5.6或以上、PHP7或以上,你的服務器必須有1G以上內存。

如無特別要求,一直按Enter鍵,直到開始安裝即可。默認安裝對機器要求只需128M~512M。

4、安裝完成:

如果看到這個界面,表示安裝成功,按ctrl+c退出此界面。

 

四、WordPress搭建 

這個環節比較多命令,修改文件比較多,首次操作需要半小時左右。先簡單說下,這里要做的事是創建Nginx--WordPress--MySQL的整條鏈接。

1、創建mysql連接:

登錄mysql:

mysql -u root -p

>輸入密碼

輸入的時候密碼不會顯示,這個密碼就是你安裝lnmp時候設置的密碼。如果你是一路enter(回車)下來,默認就是root/root。

創建數據庫:

CREATE DATABASE wordpress_db;

創建MySQL用戶:

CREATE USER wordpress_user@localhost;

設置密碼:

SET PASSWORD FOR wordpress_user@localhost=PASSWORD("password");

配置權限:

GRANT ALL PRIVILEGES ON wordpress_db.* TO wordpress_user@localhost IDENTIFIED BY 'password';

刷新權限

FLUSH PRIVILEGES;

記下你創建的WordPress數據庫名,數據庫用戶,用戶密碼,后面用於寫入到WordPress的conf文件中。WordPress就能通過配置文件連接上mysql數據庫。(我知道你們十有八九都是寫wordpress\wordpress\wordpress,或者直接復制我的命令改也不改,不是不行,只是你們要確定mysql遠程連接是關閉,具體方法這里不展開,不然小心數據庫被黑)

 2.下載WordPress

官方地址是:https://cn.wordpress.org

進入個人下載目錄:

cd /home/down

下載WordPress壓縮包:

wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

解壓:

tar -zxvf wordpress-4.9.4-zh_CN.tar.gz

此時解壓出來的文件夾只是我們用來備份用的。原則上不改動里面的內容。

然后將WordPress復制到運行目錄,這里才是以后修改文件的地方。當然你也可以復制到別的路徑中:

cp -r ./wordpress/* /var/www/

默認配置文件只給了模板,我們要把模板復制出來:

cp /var/www/wp-config-sample.php /var/www/wp-config.php

修改目錄權限

chown -R www:www /var/www

設置wp-config.php文件(重要

vi /var/www/wp-config.php

按照如下修改: 

// ** MySQL 設置 - 具體信息來自您正在使用的主機 ** //
/** WordPress數據庫的名稱 */
define('DB_NAME', 'wordpress_db');

 

/** MySQL數據庫用戶名 */
define('DB_USER', 'wordpress_user');

 

/** MySQL數據庫密碼 */
define('DB_PASSWORD', 'password');

 

/** MySQL主機 */
define('DB_HOST', 'localhost');

 

 約在20行左右,將剛才記下的WordPress數據庫名,數據庫用戶,用戶密碼往這里填。然后記下這個/var/www,下一步需要用到。

(vi怎么用沒必要解釋了吧。。。)

3.配置Nginx

lnmp搭建的Nginx主目錄位於/usr/local/nginx中,配置文件在其下conf/文件夾中

vi /usr/local/nginx/conf/nginx.conf

按照如下修改:

server
{
#需要監聽的端口
listen 80 default_server;

#這里輸入服務器的域名或者ip
#server_name 192.168.1.100;
server_name domain.com;

index index.html index.htm index.php;

#這里輸入WordPress主目錄
root /var/www;

……

}

 

約60行左右,配置好監聽端口(80)、服務器地址(ip或域名)、WordPress主目錄(/var/www)。

重啟Nginx:

service nginx restart

幾秒后就可以通過 ip/wp-admin 或者 domain.com/wp-admin 訪問你的WordPress初始化頁面。

 

至此,WordPress搭建完成,但手工部署的WordPress有幾個大坑。大家可以先玩兩天,然后再回來修改幾個坑。

 

------從這部分開始屬於應該屬於進階技能,太基礎的命令不會說。直奔重點和踩過的坑了-----

 

五、使用Let's Encrypt開啟https\https2.0

 

Let's Encrypt 是一個免費的SSL機構,acme.sh 是一款用於簽發 Let's Encrypt 證書的腳本。

項目地址:https://github.com/nanqinlang-script/acme

具體教程:https://sometimesnaive.org/article/61

獲取腳本:

wget https://raw.githubusercontent.com/nanqinlang-script/acme/master/acme_2.0.sh

運行:

bash acme_2.0.sh

使用說明

①輸入你的域名(如yourdomain.com)

②選擇要生成證書的類型。輸入數字 0(生成 RSA 類型) 或 1(生成 ECC 類型)。若未選擇則默認生成 RSA 類型

③用 DNS 方式驗證域名所有權:添加腳本中顯示的 綠色字體的 TXT 記錄,添加完成后稍等下(等個五分鍾應該夠了),回車繼續

④SSL 證書文件生成至 /home/your-domain_rsa 或 /home/your-domain_ecc 路徑下

 

執行后會生成如下文件:

ca.cer:中間證書

yourdomain.key:證書密鑰

yourdomain.cer:站點證書

fullchain.cer:站點證書+中間證書

 

坑1:運行腳本后會生成一串txt,暫停在此。然后去你的域名管理商那里,按照腳本提示添加記錄。最好嚴格按照這個步驟做,我第一次沒弄好,后面出了一些莫名其妙的問題,重新做多幾次會提示你申請次數過多(貌似限制5、6次/3小時)。

坑2:cer、key文件我是確定拉了下來,但 /home/your-domain_rsa 這個文件夾生成失敗,解決方法:刪除 acme_2.0.sh 最后兩行 rm -rf 命令,然后自己建立 /home/your-domain_rsa,自己把cer、key文件拷進去(前提是你很確定生成的cer、key文件沒問題)。

坑3:用這個腳本生成的證書是cer文件,用其他方法可能生成crt文件。如果你在其他教程看到crt,其實用法還是一樣,兩個文件相當於一個xls、一個xlsx。

 

nginx.conf配置:(加上后面幾行ssl開頭的語句,加在access_log前后、server節點之內)

server
{
listen 443 ssl http2;

server_name yourdomain.com;

ssl on;
ssl_certificate /home/yourdomain.com_rsa/yourdomain.com.cer;
ssl_certificate_key /home/yourdomain.com_rsa/yourdomain.com.key;

access_log /home/wwwlogs/access.log;
}

 

六、http跳轉https

 這個不難,一開始沒做過會以為是在域名服務商設置跳轉的,其實還是用Nginx做內部重定向而已。

server
{
listen 80 default_server;
server_name yourdomain.com;
rewrite ^(.*)$ https://yourdomain.com permanent;
}

server
{
listen 443 ssl http2;

server_name yourdomain.com;

}

 

七、“噢,沒有這個文件”

 用這一套流程下來的WordPress默認禁止文件夾掃描權限。主要體現在兩個方面:

1、WordPress后台--外觀--編輯,提示“噢,沒有這個文件”

 2、沒有下載過的歷史主題

修復方法:

轉自:http://www.heminjie.com/wordpress/2149.html

1、用ssh登陸服務器,找到php.ini(lnmp默認的php配置文件在/usr/local/php/etc/目錄下)

2、用vi命令編輯php.ini

vi /usr/local/php/etc/php.ini

3、查找scandir,大概在385行左右,找到后刪除scandir,(注意后面的逗號也要一起刪除哦~)最后wq!保存。

4、重啟php或者整個lnmp服務使配置生效,再刷新下wp后台主題編輯頁面,已經OK了~

 php重啟命令:service php-fpm restart

lnmp重啟命令:lnmp restart

 

暫時寫完,后續有新發現再補充……

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM