1. 程式人生 > 實用技巧 >centos7+騰訊雲伺服器搭建wordpress

centos7+騰訊雲伺服器搭建wordpress


title: centos7+騰訊雲伺服器搭建wordpress
date: 2020-03-04
categories: web
tags: [wordpress]

分兩部分:1.搭建LEMP環境 2.安裝 wordpress

1.搭建LEMP環境

LEMP 是 PHP 網站應用的執行環境,如果打算在本地或者伺服器上去執行一個用 PHP 語言寫的網站應用,需要搭建 LEMP 環境。

L 表示 Linux .
這裡我購買了騰訊雲centos7.6. 學生有優惠^^

E 表示的是 Nginx ,E 取的是 Nginx 的讀音(Engine X)。
它是一種 Web 伺服器,可以為網站應用提供 Web 服務,也就是接待使用者訪問的服務,使用者請求資源,Nginx 提受使用者的請求,處理一下,再把使用者需要的資源傳送給使用者。

M 表示 MySQL/MariaDB ,是網站應用使用的資料庫管理系統。資料庫管理系統裡面建立很多的資料庫,然後分配給網站應用去使用。MySQL 跟 MariaDB 可以相互相容。

P,表示的是 PHP。它是解釋 PHP 語言用的解析器,我們可以使用 PHP-FPM 跟 Web 服務相互溝通。
也就是如果也就是如果 Web 服務遇到對 PHP 資源的請求,會把請求交給 PHP-FPM ,它會去解釋請求的 PHP,
再把結果交給 Web 服務,然後 Web 伺服器(比如:NGINX)會把最後的結果返回給使用者。

參考了一點:https://linux265.com/news/3482.html

網上一些搭建環境的教程用到apache也就是httpd,這裡我用nginx。Nginx內部沒有配置php所以需要一些操作。

下面的操作都是在伺服器的命令列進行。

1.1. 安裝 nginx

yum install -y nginx
然後
systemctl start nginx       # 啟動nginx
systemctl enable nginx.service      # 設定為開機啟動

1.2.安裝 Mariadb

yum install mariadb mariadb-server
systemctl start mariadb ==> 啟動mariadb

systemctl enable mariadb ==> 開機自啟動

mysql_secure_installation ==> 設定 root密碼等相關

測試登入:

mysql -u root -p

1.3. 安裝php

yum install php php-fpm php-bcmatch php-gd php-mbstring php-mcrypt php-mysql

sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install yum-utils
sudo yum-config-manager --enable remi-php72
sudo yum install php-fpm php-opcache php-cli php-gd php-curl php-mysql
php -v

1.4.配置php 與nginx

sudo yum install php-fpm
vim  /etc/php-fpm.d/www.conf

這裡修改了user,group,listen。如果原來有,註釋掉就好。

;user = apache
;group = apache

user = nginx
group = nginx

;listen = 127.0.0.1:9000
listen = /run/php-fpm/www.sock
listen.owner = nginx
listen.group = nginx

然後啟動服務。

sudo systemctl enable php-fpm

sudo systemctl start php-fpm

確保/var/lib/php目錄具有正確的許可權:

chown -R root:nginx /var/lib/php

儲存檔案,啟用並啟動PHP FPM服務:

sudo systemctl enable php-fpm
sudo systemctl start php-fpm

vi /etc/nginx/nginx.conf 開啟nginx主配置檔案,按i進入編輯模式,修改其中的sever的location ~ .php部分為以下內容。(註釋掉上面的location是可選的)

		# location /{
		#}
		
       location ~ /.php$ {
        try_files $uri =404;
         root         /var/www/wordpress;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
    }

重啟nginx服務

sudo systemctl restart nginx

測試php-fpm是否安裝成功.

vi /usr/share/nginx/html/index.php

<?php
    echo "<title>Test Page</title>";
    echo "Hello World!";
?>

然後訪問 ip/index.php. ip是你伺服器的IP

我這裡報錯

注意:這裡可能是上面
sudo systemctl enable php-fpm
sudo systemctl start php-fpm
沒有輸入的問題。

也可能是另一個問題參考:https://blog.csdn.net/levena/article/details/52712666
使用這個方法遇到問題時建議使用
ps -ef | grep nginx
kill -QUIT 主程序號
退出nginx,和相關程序,然後重新啟動nginx和 php-fpm

然後再登入ip/index.php。顯示helloword。說明php,nginx配置成功。

2.安裝 wordpress

2.1. 建立wordpress資料庫

給wordpress建立資料庫,然後重啟服務

mysql -u root -p     # 用上面設定的密碼登陸mysql
mysql>create database wordpress;    # 建立wordpress資料庫

CREATE USER wordpressuser@localhost IDENTIFIED BY 'XXXX(password)'   #建立一個使用者

GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost  #許可權
FLUSH PRIVILEGES //更改使用者許可權
exit //儲存並退出

systemctl restart  mariadb.service #重啟相關服務

2.2. 下載安裝wordpress

Cd ~
wget http://wordpress.org/latest.tar.gz

注意過程中任何wget的下載,可能會很慢,解決辦法是先下載好然後 rz 命令傳到伺服器。
比如 https://cn.wordpress.org/latest-zh_CN.tar.gz
官網經常429錯誤,可以去網上找一找安裝包。
Zip可以轉換成tar.gz。
Rz傳用 xshell。

# 解壓wordpress
tar zxvflatest.tar.gz

cd wordpress/   # 進入到wordpress目錄
cp wp-config-sample.php wp-config.php   # 複製wp-config-sample.php並重命名為wp-config.php
vim wp-config.php   # 開啟該檔案

找到mysql設定的配置部分,按i進入編輯模式,將配置的mysql資訊修改

/** WordPress資料庫的名稱 */
define('DB_NAME', 'database_name_here');

/** MySQL資料庫使用者名稱 */
define('DB_USER', 'username_here');

/** MySQL資料庫密碼 */
define('DB_PASSWORD', 'password_here');

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

/** 建立資料表時預設的文字編碼 */
define('DB_CHARSET', 'utf8');

/** 資料庫整理型別。如不確定請勿更改 */
define('DB_COLLATE', '');

然後參考https://www.linuxprobe.com/install-wordpress-nginx.html。
複製檔案到一個方便的資料夾下。

#建立我們將保留wordpress檔案的目錄:
sudo mkdir -p /var/www/wordpress

#將解壓縮的WordPress檔案傳輸到網站的根目錄。
#sudo cp -r ~/wordpress/* /var/www/wordpress

#修改許可權/var/www ,使未來的自動的WordPress外掛和檔案與SFTP編輯的更新。 
#如果不執行這些步驟,您可能會在嘗試任一任務時收到“要執行請求的操作,需要連線資訊”錯誤訊息。
#首先,切換到web目錄:
cd /var/www/

#將目錄的所有權授予nginx使用者,將“使用者名稱”替換為伺服器使用者的名稱。
sudo chown nginx:nginx * -R
sudo usermod -a -G nginx username

2.3修改nginx配置

先修改nginx

server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /var/www/wordpress;
        include /etc/nginx/default.d/*.conf;

        location / {
           index index.php index.html index.htm;
    try_files $uri $uri/ /index.php index.php;
        }
       location ~ \.php$ {
        try_files $uri =404;
         root         /var/www/wordpress;
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
         fastcgi_split_path_info ^(.+\.php)(/.+)$;
    }
sudo systemctl restart nginx #重啟

然後瀏覽器開啟
http://ip/wp-admin/install.php

就顯示下面的圖,可以進行設定了。(下圖來源於網路)

步驟 2.3 遇到的問題是403forbidden ,解決是 mginx 的配置檔案添加了position的內容(上面的程式碼是修改好的)。
解決403參考了https://blog.csdn.net/dreamstone_xiaoqw/article/details/78078441 。