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 。