Wordpress部署 —— 基於Ubuntu、Mysql和Nginx
簡介
WordPress是使用PHP語言開發的博客平台,用戶可以在支持PHP和MySQL數據庫的服務器上架設屬於自己的網站。也可以把 WordPress當作一個內容管理系統(CMS)來使用。
WordPress是一款個人博客系統,並逐步演化成一款內容管理系統軟件,它是使用PHP語言和MySQL數據庫開發的,用戶可以在支持 PHP 和 MySQL數據庫的服務器上使用自己的博客。
WordPress有許多第三方開發的免費模板,安裝方式簡單易用。不過要做一個自己的模板,則需要你有一定的專業知識。比如你至少要懂的標准通用標記語言下的一個應用HTML代碼、CSS、PHP等相關知識。
WordPress官方支持中文版,同時有愛好者開發的第三方中文語言包,如wopus中文語言包。
WordPress擁有成千上萬個各式插件和不計其數的主題模板樣式。
成果展示
照例先做成果展示。
示例網站地址:http://luckyee.cn
首頁
后台
安裝部署
Wordpress的官網:https://cn.wordpress.org
幾乎所有資料都能夠在官網上找到。
官網的部署教程參考這個鏈接:https://wordpress.org/support/article/how-to-install-wordpress/
以下是我使用ubuntu + nginx + php + wordpress的安裝步驟,大家也可以權當參考。
Ubuntu上安裝mysql並配置用戶
只需要一條簡單命令即可:
sudo apt-get install mysql-server
然后查看默認的用戶名和密碼:
sudo vim /etc/mysql/debian.cnf
# Automatically generated for Debian scripts. DO NOT TOUCH!
[client]
host = localhost
user = debian-sys-maint
password = XXXXXXXXXXXXXXXX
socket = /var/run/mysqld/mysqld.sock
[mysql_upgrade]
host = localhost
user = debian-sys-maint
password = XXXXXXXXXXXXXXXX
socket = /var/run/mysqld/mysqld.sock
其中的user和password就是mysql的初始用戶密碼,該用戶具有root權限。
如果對安全性有要求,則建議新建其他用戶。
注意: 該用戶必須擁有對應Schema的建表權限,建議賦權all。
如果Wordpress服務器與Mysql服務器不在同一台機器上,則還需要修改mysql配置文件,允許root用戶遠程登陸。
# 修改Mysql配置
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 將bind-address從127.0.0.1改為0.0.0.0並保存
# bind-address = 0.0.0.0
# 登陸mysql,密碼使用上面的XXXXXXXXXXXXXXXX
mysql -u debian-sys-maint -p
# 給debian-sys-maint賦權
grant all on *.* to debian-sys-maint@'%' identified by 'XXXXXXXXXXXXXXXX' with grant option;
flush privileges;
# 記得創建一個新的數據庫Schema
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
安裝nginx
也只需要一條簡單命令即可:
sudo apt-get install nginx
但是需要配置允許解析php文件
sudo vi /etc/nginx/sites-available/default
可以參考如下配置
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/html;
# 這里添加了index.php的默認解析
index index.php index.html index.htm index.nginx-debian.html;
# 注意,這里可以填寫域名或者服務器IP地址,可以根據具體情況修改
server_name _;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# 這里是7.2版本的php7.2-fpm,其他版本需要根據具體情況修改
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico { log_not_found off; access_log off; }
location = /robots.txt { log_not_found off; access_log off; allow all; }
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
}
重新加載或重啟nginx配置:
# 檢查配置的正確性
sudo nginx -t
# 重新加載nginx配置
sudo nginx -s reload
# 或者重啟nginx
sudo service nginx restart
配置完成后,可以訪問http://localhost驗證配置是否成功。
安裝php及其相關插件
# 安裝php及相關常用插件
sudo apt-get install php-fpm php-mysql
sudo apt-get install php-curl php-gd php-mbstring php-mcrypt php-xml php-xmlrpc
# 安裝pecl以及php-mcrypt
sudo apt-get install php-pecl libmcrypt-dev libreadline-dev
sudo pecl install mcrypt
# 先關閉cgi.fix_pathinfo配置,防止PHP找不到所請求的PHP文件時去查找最接近的可執行文件。
sudo vim /etc/php/7.2/fpm/php.ini
# 將cgi.fix_pathinfo的注釋放開並設置為0。
# 重啟php-fpm,我這里的版本是7.2,可以根據具體情況修改
sudo service php7.2-fpm restart
編寫一個測試文件:
sudo vim /var/www/html/info.php
在info.php中填入以下內容並保存:
<?php
phpinfo();
?>
然后訪問 http://localhost/info.php
查看是否正確解析。
安裝wordpress
下載wordpress最新版並解壓
cd /tmp/
wget https://cn.wordpress.org/latest-zh_CN.zip
# 如果沒有unzip記得安裝一下
sudo apt-get install unzip
unzip latest-zh_CN.zip
修改數據庫連接配置
cp /tmp/wordpress/wp-config-sample.php /tmp/wordpress/wp-config.php
vim /tmp/wordpress/wp-config.php
將數據庫配置成之前搞定的那些:
/** WordPress數據庫的名稱 */
define( 'DB_NAME', 'wordpress' );
/** MySQL數據庫用戶名 */
define( 'DB_USER', 'debian-sys-maint' );
/** MySQL數據庫密碼 */
define( 'DB_PASSWORD', 'XXXXXXXXXXXXXXXX' );
/** MySQL主機 */
define( 'DB_HOST', 'localhost:3306' );
/** 創建數據表時默認的文字編碼 */
define( 'DB_CHARSET', 'utf8' );
/** 數據庫整理類型。如不確定請勿更改 */
define( 'DB_COLLATE', '' );
把wordpress拷貝到nginx解析的根目錄,同時給wp-content賦權,確保nginx能夠寫入該目錄:
sudo cp /tmp/wordpress/. /var/www/html
# 如果不需要更新版本或更新主題,那么記得將該目錄的權限回收。
sudo chmod -R o+w /var/www/html/wp-content
之后訪問http://localhost/,根據頁面向導即可安裝完成。
於是就有了你們看到的我的首頁:
最后
WordPress是一個免費的開源項目,在GNU通用公共許可證下授權發布。
作為一個開源項目,其完整性、擴展性以及可維護性堪稱精美,這份工匠精神非常值得我們每個人去學習。
再次推薦wordpress的官網:https://cn.wordpress.org
上述內容如果有任何問題,歡迎指教。