Wordpress部署 —— 基於Ubuntu、Mysql和Nginx


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

首頁

http://luckyee.cn

后台

http://luckyee.cn/admin

安裝部署

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/,根據頁面向導即可安裝完成。

於是就有了你們看到的我的首頁:

http://luckyee.cn

http://luckyee.cn

最后

WordPress是一個免費的開源項目,在GNU通用公共許可證下授權發布。

作為一個開源項目,其完整性、擴展性以及可維護性堪稱精美,這份工匠精神非常值得我們每個人去學習。

再次推薦wordpress的官網:https://cn.wordpress.org

上述內容如果有任何問題,歡迎指教。


免責聲明!

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



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