本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
WordPress是一款免費開源的網站內容管理系統(CMS),他可以幫助您簡單、快捷地創建和管理自己的網站,包括博客、新聞網站、電子商務網站、社交網絡等。WordPress擁有豐富的主題和插件庫,可以輕松地為網站定制外觀和功能。本教程介紹如何在不同操作系統的Linux實例上,手動搭建WordPress網站的方法。
準備工作
為已創建實例搭建WordPress網站,已創建的ECS實例必須滿足以下條件:
操作步驟
不同的操作系統搭建WordPress的命令存在差異,請根據您的ECS實例操作系統選擇對應的操作,否則會安裝失敗。本文檔以Alibaba Cloud Linux 3/2、CentOS 7/8為例部署WordPress 6.4。
部署LNMP環境。具體操作,請參見手動部署LNMP環境(Alibaba Cloud Linux 3/2、CentOS 7/8)。
重要更多部署LNMP環境的方式,請參見部署LNMP環境。但WordPress對PHP、MySQL版本存在依賴關系,如果版本不匹配則會導致WordPress安裝失敗。具體依賴信息,請參見WordPress Compatibility。
本文檔Web服務器為Nginx,如果您的服務器ECS實例已安裝Apache,會出現80端口被占用的問題,導致WordPress無法訪問。
遠程連接ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
配置WordPress數據庫。
運行以下命令,進入MySQL數據庫。
說明使用
root
用戶登錄MySQL,并輸入密碼。密碼為您在搭建LNMP環境時為數據庫設置的密碼。mysql -u root -p
運行以下命令,為WordPress網站創建一個名稱為
wordpress
的數據庫。create database wordpress;
運行以下命令,創建一個新用戶
user
管理WordPress庫,新用戶密碼為PASSword123.
,以提高數據安全性。create user 'user'@'localhost' identified by 'PASSword123.';
說明您可以使用
show variables like "%password%";
命令,查詢MySQL的密碼強度規則。本示例中密碼規則要求:長度為8至30個字符,必須同時包含大小寫英文字母、數字和特殊符號,其中特殊符號包含()` ~!@#$%^&*-+=|{}[]:;‘<>,.?/
。MySQL在5.7版本后默認安裝了密碼強度驗證插件validate_password。
運行以下命令,賦予用戶對數據庫
wordpress
的全部權限。grant all privileges on wordpress.* to 'user'@'localhost';
運行以下命令,使配置生效。
flush privileges;
運行以下命令,退出MySQL。
exit;
下載WordPress,并移動至網站根目錄。
運行以下命令,進入Nginx網站根目錄,下載WordPress壓縮包。
說明本示例默認安裝的是WordPress中文版本。如果您需安裝WordPress英文版本,需運行命令
wget https://wordpress.org/wordpress-6.4.4.zip
,下載WordPress英文版本壓縮包。同時您需要注意,后續操作中壓縮包的名稱必須替換為wordpress-6.4.4.zip
。cd /usr/share/nginx/html sudo wget https://cn.wordpress.org/wordpress-6.4.4-zh_CN.zip
(可選)運行以下命令,安裝
unzip
命令。sudo yum install unzip -y
運行以下命令,解壓WordPress壓縮包。
sudo unzip wordpress-6.4.4-zh_CN.zip
運行以下命令,將WordPress安裝目錄下的
wp-config-sample.php
文件復制到wp-config.php
文件中,并將wp-config-sample.php
文件作為備份。cd /usr/share/nginx/html/wordpress sudo cp wp-config-sample.php wp-config.php
修改WordPress配置文件。
運行以下命令,編輯
wp-config.php
文件。sudo vim wp-config.php
按
i
鍵進入編輯模式。根據已配置的WordPress數據庫信息,修改MySQL相關配置信息示例如下所示。
說明配置文件中的WordPress數據庫名稱、MySQL數據庫用戶名和密碼需要和配置WordPress數據庫中保持一致。
// ** MySQL 設置 - 具體信息來自您正在使用的主機 ** // /** WordPress數據庫的名稱 */ define('DB_NAME', 'wordpress'); /** MySQL數據庫用戶名 */ define('DB_USER', 'user'); /** MySQL數據庫密碼 */ define('DB_PASSWORD', 'PASSword123.'); /** MySQL主機 */ define('DB_HOST', 'localhost');
說明WordPress網站的數據信息將通過數據庫的
user
用戶保存在名為wordpress
的數據庫中。按
Esc
鍵,輸入:wq
后按Enter
鍵,保存退出配置文件。
修改Nginx配置文件。
Alibaba Cloud Linux 3/2、CentOS 7
運行以下命令,打開Nginx配置文件。
sudo vim /etc/nginx/nginx.conf
按
i
鍵進入編輯模式。在
server
大括號內,將root
后的內容替換為WordPress根目錄。本示例中WordPress的根目錄為
/usr/share/nginx/html/wordpress
。在
location ~ .php$
大括號內,將root
后的內容替換為WordPress根目錄。
說明替換為WordPress根目錄時,需將WordPress根目錄后加分號(
;
),否則無法重啟Nginx服務。按
Esc
鍵,輸入:wq
后按Enter
鍵,保存退出配置文件。運行以下命令,重啟Nginx服務。
sudo systemctl restart nginx
CentOS 8
運行以下命令,打開Nginx配置文件。
sudo vi /etc/nginx/conf.d/default.conf
按
i
鍵進入編輯模式,替換WordPress根目錄。本示例中WordPress的根目錄為
/usr/share/nginx/html/wordpress
。在
location /
大括號內,將root
后的內容替換為WordPress根目錄。在
location ~ \.php$
大括號內,將root
后的內容替換為WordPress根目錄。
按
Esc
鍵,輸入:wq
后按Enter
鍵,保存退出配置文件。運行以下命令,重啟Nginx服務。
sudo systemctl restart nginx
安裝并登錄WordPress網站。
在本地物理機上使用瀏覽器訪問
http://ECS實例公網IP
,進入WordPress安裝頁面。填寫網站基本信息,然后單擊安裝WordPress。
填寫信息參數說明:
站點標題:WordPress網站的名稱。例如:demowp。
用戶名:登錄WordPress時所需的用戶名,請注意安全性。例如:testwp。
密碼:登錄WordPress時所需的密碼,建議您設置安全性高的密碼。例如:Wp.123456。
您的電子郵件:用于接收通知的電子郵件。例如:username@example.com。
單擊登錄。
輸入在安裝WordPress時設置的用戶名
testwp
和密碼Wp.123456
,然后單擊登錄。成功進入您個人的WordPress網站。使用WordPress的更多信息,請參見WordPress官網使用文檔。
相關操作
解析WordPress網站域名
通過實例公網IP地址直接訪問您的WordPress網站會降低服務端的安全性。如果您已有域名或者想為WordPress網站注冊一個域名,可以參考以下步驟。
注冊域名。
您可以在阿里云注冊域名。具體操作,參見通用域名注冊基本流程如何注冊阿里云域名。
備案域名。
如果您的域名指向的網站托管在阿里云中國內地節點服務器,您需要進行備案。首次備案,請參見ICP備案流程,其他情況請參見ICP備案流程。
說明備案要求ECS實例的計費方式為包年包月且至少購買3個月,如果您的服務器購買時長不滿足備案要求,需執行以下操作:
如果ECS實例計費方式為按量付費,則需轉為包年包月。具體操作,請參見按量付費轉包年包月。
如果ECS實例購買不足3個月,需續費實例。具體操作,請參見如何續費包年包月實例。
整個備案流程預計所需時長約1~22個工作日左右,具體時長以實際操作時間為準。
備案過程中的常見問題,請參見備案常見問題。
解析域名。
將域名指向實例公網IP。具體操作,請參見設置域名解析。
說明域名解析過程中的常見問題,請參見解析不生效類問題。
將實例公網IP替換為新域名。
遠程連接已搭建WordPress網站的ECS實例。
具體操作,請參見連接實例。
運行以下命令,登錄MySQL數據庫。
mysql -u root -p
運行以下命令,切換至WordPress對應的數據庫。
use wordpress;
運行以下命令,為WordPress網站設置新域名。
說明操作時需修改命令中的參數:
http://實例公網IP:替換為實際的實例公網IP。
http://www.example.com:替換為實際域名。
update wp_options set option_value = replace(option_value, 'http://實例公網IP', 'http://www.example.com') where option_name = 'home' OR option_name = 'siteurl';
運行以下命令,退出MySQL。
exit;
成功為WordPress網站設置新域名。
常見問題
Q1:無法通過公網IP訪問WordPress
可能原因及其解決方案:
安全組未放開80端口、系統防火墻開啟、80端口被占用
具體排查方法,請參見無法訪問ECS實例中的服務的排查方法。
PHP、MySQL版本與WordPress版本不匹配
WordPress對PHP、MySQL版本存在依賴關系,如果版本不匹配則會導致WordPress安裝失敗。具體依賴信息,請參見WordPress Compatibility。
Q2:WordPress中設置固定鏈接后,跳轉頁面無法訪問
網站設置為靜態網頁有利于搜索引擎收錄網站。您在對WordPress站點設置固定鏈接前,需要先在Nginx服務器中設置為靜態規則。操作步驟如下:
登錄搭建WordPress的ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
運行以下命令,打開Nginx配置文件。
sudo vim /etc/nginx/nginx.conf
按
i
鍵進入編輯模式。在
location /
大括號內,添加如下代碼。if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; } if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; } if (!-f $request_filename){ rewrite (.*) /index.php; }
按
Esc
鍵,輸入:wq
后按Enter
鍵,保存退出配置文件。運行以下命令,重啟Nginx服務。
sudo systemctl restart nginx
Q3:WordPress中更新版本、上傳主題或插件時,提示需要FTP登錄憑證或無法創建目錄
該問題可能是因為WordPress配置文件、主題或插件的權限不足,您可以參考以下步驟解決。
登錄搭建WordPress的ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
運行以下命令,打開WordPress配置文件。
sudo vim /usr/share/nginx/html/wordpress/wp-config.php
按
i
鍵進入編輯模式。在最下方,添加如下代碼。
define("FS_METHOD","direct"); define("FS_CHMOD_DIR", 0777); define("FS_CHMOD_FILE", 0777);
按
Esc
鍵,輸入:wq
后按Enter
鍵,保存退出配置文件。返回WordPress儀表盤,刷新頁面,可解決需要FTP登錄憑證的問題。
如果仍存在無法創建目錄的問題,需再次返回ECS實例,運行以下命令,將網站根目錄的權限用戶更新為Nginx對應的用戶,本示例環境中為
nginx
用戶。sudo chown -R nginx /usr/share/nginx/html/wordpress
Q4:如何修改WordPress鏡像中的MySQL 5.7數據庫的默認用戶名和密碼?
遠程連接安裝WordPress鏡像的ECS實例。
具體操作,請參見使用Workbench工具以SSH協議登錄Linux實例。
運行以下命令,登錄MySQL數據庫。
mysql -u root -p
根據回顯信息,輸入MySQL數據庫root用戶的默認密碼。
[test@izbp1cgfkqcrs8pi2li**** ~]# mysql -u root -p Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 Server version: 5.7.23 MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
運行以下命令,進入MySQL數據庫。
use mysql
說明運行
select user from mysql.user;
命令,可查看MySQL數據庫的用戶名。根據需求,修改數據庫的用戶名和密碼。
運行以下命令,修改數據庫用戶名為新用戶名。
update user set user="新用戶名" where user="用戶名";
本示例將
root
用戶名修改為admin
,命令如下:update mysql.user set user="admin" where user="root";
運行以下命令,修改數據庫用戶名的密碼。
update mysql.user set authentication_string=password("新密碼") where user="要更新密碼的用戶名";
本示例將
root
用戶密碼改為newpassword
,命令如下:update mysql.user set authentication_string=password("newpassword") where user="root";
運行以下命令,刷新權限使修改生效。
flush privileges;
運行以下命令,退出MySQL數據庫。
quit;
相關文檔
如果您想在Docker中部署WordPress。具體操作,請參見使用Docker Compose部署應用。
如果您想在寶塔面板中安裝WordPress,安裝寶塔面板的具體操作,請參見:
如果后續您需要通過FTP上傳WordPress主題或者插件,需要先搭建FTP服務器。具體操作,請參見:
如果您需要在一臺ECS實例中搭建多個Web站點,具體操作,請參見:
如果WordPress網站已綁定了域名,可以為域名配置HTTPS加密訪問。具體操作,請參見SSL證書安裝說明。