Centos7 Nginx+Mysql+Php搭建 WordPress站點

一、安裝 Nginx

1.1 安裝 Nginx 相關依賴

# 安裝gcc
yum install gcc-c++
# 安裝 pcre-devel 
yum install -y pcre pcre-devel
# 安裝zlib  
yum install -y zlib zlib-devel
# 安裝OpenSSL  
yum install -y openssl openssl-devel 

nginx 的一些模塊依賴一些 lib 庫,在安裝 nginx 之前,須先安裝這些 lib 庫,依賴庫主要有 g++gccopenssl-develpcre-develzlib-devel。nginx 編譯依賴需要 `gcc’, gzip 模塊需要 zlib 庫,rewrite 模塊需要 pcre 庫, ssl 功能需要 openssl 庫。

1.2 安裝 Nginx

# 創建 nginx.repo文件
vi /etc/yum.repos.d/nginx.repo   
# 然後寫入配置:
[nginx]  
name=nginx repo  
baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/  
gpgcheck=0  
enabled=1 

這裏手動添加 Nginx 的 配置庫源,把 baseurl=http://nginx.org/packages/OS/OSRELEASE/$basearch/ 中的 OS 換爲 centos(取決於你的系統),用 7(取決於你的版本)替換 OSRELEASE,即 baseurl=http://nginx.org/packages/centos/7/$basearch/ , 然後 :wq 保存退出。
運行:

yum install nginx

1.3 啓動 Nginx 並通過瀏覽器訪問

# 啓動 nginx
cd /usr/sbin
./nginx
# 打開防火牆 80 端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
# 重啓防火牆  
firewall-cmd --reload

瀏覽器訪問服務器IP, 顯示
在這裏插入圖片描述

1.4 Nginx 操作常用命令

# 啓動nginx
 /usr/sbin/nginx    
# 停止 nginx    
 /usr/sbin/nginx -s stop    
# 從容停止 nginx
 /usr/sbin/nginx -s quit   
# 重啓 nginx
 /usr/sbin/nginx -s reload  
# 查看nginx進程
ps aux | grep nginx

1.5 firewall 常規操作

Centos7 自帶 firewall 防火牆

systemctl start firewalld # 啓動
systemctl enable firewalld # 開機啓動
systemctl stop firewalld # 關閉
systemctl disable firewalld # 取消開機啓動

firewall 通過 firewall-cmd 管理具體規則:

$ firewall-cmd --help
1. 查看規則
# 查看運行狀態
firewall-cmd --state
# 查看已被激活的 Zone 信息
firewall-cmd --get-active-zones
# 查看指定接口的 Zone 信息
firewall-cmd --get-zone-of-interface=eth0
# 查看指定級別的接口
firewall-cmd --zone=public --list-interfaces
# 查看指定級別的所有信息,譬如 public
firewall-cmd --zone=public --list-all
# 查看所有級別被允許的信息
firewall-cmd --get-service
# 查看重啓後所有 Zones 級別中被允許的服務,即永久放行的服務
firewall-cmd --get-service --permanent
firewall-cmd --panic-on # 丟棄
firewall-cmd --panic-off # 取消丟棄
firewall-cmd --query-panic # 查看丟棄狀態
firewall-cmd --reload # 更新規則,不重啓服務
firewall-cmd --complete-reload # 更新規則,重啓服務
# 添加某接口至某信任等級,譬如添加 eth0 至 public,再永久生效
firewall-cmd --zone=public --add-interface=eth0 --permanent
# 設置 public 爲默認的信任級別
firewall-cmd --set-default-zone=public

2. 管理端口
# 列出 dmz 級別的被允許的進入端口
firewall-cmd --zome=dmz --list-ports
# 允許 tcp 端口 8080 至 dmz 級別
firewall-cmd --zone=dmz --add-port=8080/tcp
# 允許某範圍的 udp 端口至 public 級別,並永久生效
firewall-cmd --zome=public --add-port=5060-5059/udp --permanent

3. 管理服務
# 添加 smtp 服務至 work zone
firewall-cmd --zone=work --add-service=smtp
# 移除 work zone 中的 smtp 服務
firewall-cmd --zone=work --remove-service=smtp

4. 配置 ip 地址僞裝
# 查看
firewall-cmd --zone=external --query-masquerade
# 打開僞裝
firewall-cmd --zone=external --add-masquerade
# 關閉僞裝
firewall-cmd --zone=external --remove-masquerade

5. 端口轉發
# 要打開端口轉發,則需要先
# firewall-cmd --zone=external --add-masquerade
# 然後轉發 tcp 22 端口至 3753
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=3753
-----------------------------------
# 轉發 22 端口數據至另一個 ip 的相同端口上
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toaddr=192.168.1.100
# 轉發 22 端口數據至另一 ip 的 2055 端口上
firewall-cmd --zone=external --add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.168.1.100

二、MySQL 安裝與配置

2.1 安裝 Mysql

centos7 下沒有 yum install mysql-server 的安裝方法,由此,使用以下的安裝方法:

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
rpm -ivh mysql-community-release-el7-5.noarch.rpm
yum update
yum install mysql-server
# 啓動mysql
systemctl start mysqld

2.2 MySQL 初始化設置

# 運行下面命令進入初始化設置
mysql_secure_installation
2.2.1 修改 Mysq 默認密碼

首先是設置root密碼,初次登錄時默認爲空,直接點回車,然後輸入兩次root新密碼

在這裏插入圖片描述

2.2.2 刪除匿名用戶

隨後,會選擇是否刪除匿名用戶(不需要賬戶就可以登入mysql),選擇 y,如圖
在這裏插入圖片描述

2.3.4 允許遠程連接

默認情況下,root 用戶只允許連接 localhost,這可以防止其他用戶通過遠程登錄到 root,這裏依據自己的情況選擇,在項目中,需要通過遠程登錄 root 用戶,這裏選了 n,如圖:
在這裏插入圖片描述

2.3.5 刪除測試數據庫

刪除測試數據庫, 選y:

在這裏插入圖片描述

2.3.6 數據庫計時實時更新

最後,選擇數據庫計時更新,選擇 y
在這裏插入圖片描述

2.4 創建 Mysql 用戶

# root用戶登錄
mysql -u root -p
create database wordpress charset utf8;
# 列出數據庫(如下圖)
show databases;
# 退出數據庫
exit;
# 重啓數據庫
systemctl restart mysqld 

在這裏插入圖片描述

三、PHP、Vsftpd 安裝配置

3.1 配置 PHP

#  先安裝 php-mysql 和 php-fpm,如果已有,則跳過
yum –y install php-mysql
yum –y install php-fpm
# 運行
yum -y install php* --skip-broken
# 編輯 php 配置文件
vim /etc/php.ini
# 添加
extension=mysql.so
# 找到 extension_dir  並設爲
extension_dir = "/usr/lib64/php/modules"
# 重啓 php 服務
systemctl restart php-fpmmv

3.2 Vsftpd 安裝與配置

# 安裝
yum -y install vsftpd
# 啓動服務
systemctl start vsftpd 
# 新建 ftp home 目錄
mkdir  /ftpuserdata
# 爲 ftp 創建用戶 ftpuser,指定目錄 /ftpuserdata/www/
useradd ftpuser -d /ftpuserdata/www/ -s /sbin/nologin
# 設置密碼
passwd ftpuser
# 編輯 FTP 配置文件
vim /etc/vsftpd/vsftpd.conf
# 將匿名登錄禁用
anonymous_enable=NO
# 保存退出後,給 www 目錄設置讀寫權限
chmod -R 777 /ftpuserdata/www/
# 重啓
systemctl restart vsftpd

四、Wordpress 安裝及相關配置

4.1 安裝 wordpress

# 安裝
# 進入目錄
cd /ftpuserdata/www/
#下載
wget https://wordpress.org/latest.zip
# 解壓
unzip latest.zip

4.2 配置 WordPress

修改 WordPress 的配置文件

 vim /ftpuserdata/www/wordpress/wp-config-sample.php 

在這裏插入圖片描述

保存退出,重命名 WordPress 配置文件

mv /ftpuserdata/www/wordpress/wp-config-sample.php /ftpuserdata/www/wordpress/wp-config.php 

4.3 修改 wp 相關配置

根據 WordPress 目錄修改 nginx 配置,以及 php 的 cgi 設置:

vim /etc/nginx/conf.d/default.conf

在這裏插入圖片描述

修改完之後,重啓相關服務。

systemctl restart vsftpd
systemctl restart php-fpm
systemctl restrat nginx

瀏覽器打開 IP 地址,既可以到 WordPress 的初始化界面。這樣一個 WordPress 網站就搭好了。
在這裏插入圖片描述

五. 相關問題及解決

更換主題時, 出現沒有上級目錄的寫權限

WordPress create directory wp-content/uploads/2018/11.

解決

cd /ftpuserdata/www 
mkdir wordpress/wp-content/
chmod 777 wordpress/wp-content/uploads/

【相關鏈接】

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章