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

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

本文大概分爲此幾部分: html

1、基礎命令更新; mysql

2、服務器加速(非必選)(10分鐘); nginx

3、LNMP安裝(30分鐘); git

4、WordPress搭建(30分鐘);github

5、開啓https\https2.0(15分鐘); sql

6、http跳轉https(10分鐘); 數據庫

7、「噢,沒有這個文件」;centos

 

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

1、基礎命令更新:

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

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

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

 

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

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

一、先更換內核:

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

二、安裝完成後,須要重啓才能生效:

shutdown -r now

三、安裝服務:

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

 

3、LNMP安裝:

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

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

一、啓動screen(必須):

screen -S lnmp  (大寫S)

若是網絡掉線,能夠從新鏈接,再執行 screen -r lnmp 就會看到你的lnmp安裝進程

二、進入我的下載目錄:

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

三、下載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。

四、安裝完成:

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

 

4、WordPress搭建 

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

一、建立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有幾個大坑。你們能夠先玩兩天,而後再回來修改幾個坑。

 

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

 

5、使用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,暫停在此。而後去你的域名管理商那裏,按照腳本提示添加記錄。最好嚴格按照這個步驟作,我第一次沒弄好,後面出了一些莫名其妙的問題,從新作多幾回會提示你申請次數過多(貌似限制五、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;
}

 

6、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;

}

 

7、「噢,沒有這個文件」

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

一、WordPress後臺--外觀--編輯,提示「噢,沒有這個文件」

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

修復方法:

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

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

二、用vi命令編輯php.ini

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

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

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

 php重啓命令:service php-fpm restart

lnmp重啓命令:lnmp restart

 

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

相關文章
相關標籤/搜索