1. 程式人生 > 實用技巧 >linux系統搭建wordpress和知乎

linux系統搭建wordpress和知乎

1.安裝LNMP基礎服務

# 1.更換nginx源
vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 2.安裝nginx
[root@web01 nginx_php]# yum install -y nginx

# 3.更換php源
[root@web01 ~]# vim /etc/yum.repos.d/php.repo

[php-webtatic]
name = PHP Repository
baseurl = http://us-east.repo.webtatic.com/yum/el7/x86_64/
gpgcheck = 0

# 4.安裝php
[root@web01 ~]# yum -y install php71w php71w-cli php71w-common php71w-devel php71w-embedded php71w-gd php71w-mcrypt php71w-mbstring php71w-pdo php71w-xml php71w-fpm php71w-mysqlnd php71w-opcache php71w-pecl-memcached php71w-pecl-redis php71w-pecl-mongodb

 # 5.安裝MySQL
 [root@web01 ~]# yum install -y mariadb-server

2.統一nginx和php的使用者

# 1.建立使用者和使用者組
[root@web01 ~]# groupadd www -g 666
[root@web01 ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

# 2.修改nginx的配置檔案
[root@web01 ~]# vim /etc/nginx/nginx.conf 
user  www;

# 3.修改php的配置檔案
 [root@web01 ~]# vim /etc/php-fpm.d/www.conf 
[www]
user = www
group = www

3.啟動所有服務並加入開機自啟

# 1.啟動服務
[root@web01 ~]# systemctl start nginx php-fpm mariadb
 
# 2.加入開機自啟
[root@web01 ~]# systemctl enable nginx php-fpm mariadb

# 3.檢查埠和程序
[root@web01 ~]# netstat -lntup|grep -E '80|9000|3306'
[root@web01 ~]# ps -ef|grep -E 'nginx|mysql|php'

4.nginx和php建立連線

# 1.修改nginx配置檔案
[root@web01 conf.d]# vim /etc/nginx/conf.d/blog.zls.com.conf
server {
        listen 80;
        server_name blog.zls.com;
        root /website/wordpress;
        index index.php index.html;

        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIP_FILENAME $document_root$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
}

# 2.建立站點目錄
[root@web01 conf.d]# mkdir /website/wordpress -p

# 3.檢測nginx和PHP建立連線(這一步可做可不做)
[root@web01 wordpress]# vim /website/wordpress/info.php

<?php
        phpinfo();
?>

# 4.開啟瀏覽器訪問:http://blog.zls.com/info.php

5.資料庫操作

# 1.給資料庫的root使用者設定一個初始密碼(可做可不做)
[root@web01 wordpress]# mysqladmin -uroot password '123'

# 2.建立資料庫
MariaDB [(none)]> create database wordpress_db;

# 3.檢視資料庫是否建立成功(可看可不看)
MariaDB [(none)]> show databases;

# 4.建立使用者
MariaDB [(none)]> grant all on wordpress_db.* to wordpress_user@'localhost' identified by '123456';

# 5.檢視使用者是否建立成功(可看可不看)
MariaDB [(none)]> select user,host from mysql.user;

6.檢查php和MySQL是否可以建立連線

# 1.在站點目錄下建立一個php連線資料庫的程式碼(可做可不做)
[root@web01 ~]# vim /website/wordpress/mysql.php
<?php
    $servername = "localhost";
    $username = "wordpress_user";
    $password = "123456";

    // 建立連線
    $conn = mysqli_connect($servername, $username, $password);

    // 檢測連線
    if (!$conn) {
        die("Connection failed: " . mysqli_connect_error());
    }
    echo "小哥哥,php可以連線MySQL...";
?>

<img style='width:100%;height:100%;' src=https://blog.driverzeng.com/zenglaoshi/php_mysql.png>

7.部署WordPress程式碼

WordPress官網:TP

# 1.下載WordPress
[root@web01 wordpress]# wget https://wordpress.org/latest.tar.gz

# 2.解壓WordPress
[root@web01 wordpress]# tar xf wordpress-5.0.3-zh_CN.tar.gz 

# 3.保證程式碼就在/website/wordpress目錄下,不要多任何層級的目錄
[root@web01 wordpress]# mv wordpress/* ./

8.在web上配置WordPress

# 修改站點目錄的許可權,否則沒有辦法建立連線資料庫的php程式碼檔案
[root@web01 wordpress]# chown -R www.www /website/wordpress/

部署第二個專案-知乎(WeCenter)

1.寫nginx的配置檔案,建立知乎站點

# 1.編輯配置檔案
[root@web02 ~]# vim /etc/nginx/conf.d/zh.zls.com.conf
server {
        listen 80;
        server_name zh.zls.com;
        root /website/zh;
        index index.php index.html;

        location ~ \.php$ {
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include /etc/nginx/fastcgi_params;
        }
}
# 1.1 重新載入nginx
[root@web02 zh]# systemctl reload nginx

# 2.建立站點目錄
[root@web02 ~]# mkdir /website/zh
 
 # 3.將程式碼下載到站點目錄
 [root@web02 zh]# wget http://test.driverzeng.com/Nginx_Code/WeCenter_3-2-1.zip

 # 4.解壓程式碼
 [root@web02 zh]# unzip WeCenter_3-2-1.zip 
 
 # 5.將程式碼放在站點目錄下
 [root@web02 zh]# mv WeCenter_3-2-1/* ./
 
 # 6.授權
 [root@web02 zh]# chown -R www.www /website/zh/

2.資料庫操作

# 1.建立知乎的庫
MariaDB [(none)]> create database zh;

# 2.建立知乎的使用者
MariaDB [(none)]> grant all on zh.* to zh_user@'localhost' identified by '123';

目前來說,兩個部落格和兩個知乎都搭建出來了,但是...資料不統一,因為用的兩臺不同的資料庫

準備環境

主機名 wanIP lanIP 搭建服務
db01 10.0.0.51 172.16.1.51 MySQL
web01 10.0.0.7 172.16.1.7 網站
web02 10.0.0.8 172.16.1.8 nginx和php

1.在db01上安裝資料庫

# 1.安裝資料庫
[root@db01 ~]# yum install -y mariadb-server

# 2.啟動並新增開機自啟
[root@db01 ~]# systemctl start mariadb
[root@db01 ~]# systemctl enable mariadb

# 3.給root,密碼
 [root@db01 ~]# mysqladmin -uroot password '123'
 
# 4.連線資料庫
 [root@db01 ~]# mysql -uroot -p123

# 6.建立wordpress的使用者和知乎使用者
MariaDB [(none)]> grant all on *.* to php_user@'%' identified by '111';

# 7.匯出web02的資料
[root@web02 ~]# mysqldump -uroot -p123 -B wordpress_db > /tmp/wordpress.sql
 
# 8.傳送給新的資料庫
[root@web02 ~]# scp /tmp/wordpress.sql [email protected]:/tmp/

# 9.匯入資料(二選一)
[root@db01 ~]# cat /tmp/wordpress.sql | mysql -uroot -p123
[root@db01 ~]# mysql -uroot -p123 < /tmp/wordpress.sql 

2.修改php連線資料庫的程式碼

[root@web01 wordpress]# vim /website/wordpress/wp-config.php
/** WordPress資料庫的名稱 */
define('DB_NAME', 'wordpress_db');

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

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

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

3.共享儲存,存放圖片

# 1.安裝nfs
[root@nfs ~]# yum install -y nfs-utils

# 2.修改nfs的配置檔案
[root@nfs ~]# vim /etc/exports
/file_system 172.16.1.0/24(sync,rw,all_squash,anonuid=666,anongid=666)

# 3.建立使用者
[root@nfs ~]# groupadd www -g 666
[root@nfs ~]# useradd www -u 666 -g 666 -s /sbin/nologin -M

# 4.建立共享儲存目錄
[root@nfs ~]# mkdir /file_system
 
# 5.授權(忽略)
[root@nfs ~]# chown -R www.www /file_system/

# 6.啟動nfs並加入開機自啟
[root@nfs ~]# systemctl start nfs-server
[root@nfs ~]# systemctl enable nfs-server

# 7.拷貝資料到nfs中
[root@web02 uploads]# scp -r /website/wordpress/wp-content/uploads/2020 [email protected]:/file_system

# 8.掛載
[root@web02 ~]# mount -t nfs 172.16.1.31:/file_system /website/wordpress/wp-content/uploads/
 
# 9.授權共享儲存目錄
[root@nfs file_system]# chown -R www.www /file_system/