LAMP 建立 Wordpress 站點 Linux Apache MariaDB PHP
使用LAMP建立Wordpress, 要求如下:
準備工作:
- VMware 14
- CentOS 7.4 最小化 安裝鏡像
- Wordpress 安裝包, 下載
預熱:
- 使用VMware新建4臺虛擬機, 並安裝 --> 可以先安裝一臺CentOS 7 最小系統, 然後使用克隆功能 復制出另外三臺, 直接安裝還快些;
- 設置yum源, 與網卡等基本應用, 使用 yum -y update
- 記錄各個主機的ip
MariaDB主機 | 192.168.142.128/24 |
nfs | 192.168.142.140/24 |
httpd1 | 192.168.142.135/24 |
httpd2 | 192.168.142.141/24 |
開始:
-
httpd1/2 共用設置 --> 配置PHP, httpd 和 mariadb 客戶端
- yum -y install httpd php php-devel php-mysql mariadb
- systemctl start httpd
- vim /var/www/html/index.php --> <?php phpinfo(); ?>
- systemctl reload httpd
- 測試php加載是否成功:
-
MariaDB服務器設置:
- yum -y install mariadb mariadb-server --> 安裝mariadb的 客戶端 和 服務端
- mysql -uroot -p --> 登陸到本地mysql服務端執行如下操作
- 新建庫 wpress --> CREATE DATABASE wpress;
- 新建Wordpress專用用戶及授權 -->
GRANT SELECT,UPDATE,ALTER,INSERT,CREATE,DELETE ON wpress.* TO ‘wpuser‘@‘192.168.142.%
-
在httpd端進行登陸測試 -->
mysql -uwpress -h192.168.142.128 -ppassword
>SHOW GRANTS; --> 登陸進mysql服務器後,使用此命令顯示授權信息;MariaDB [(none)]> show grants;
+-------------------------------------------------------------------------------------------------------------------+
| Grants for [email protected].% |
+-------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO ‘wpuser‘@‘192.168.142.%‘ IDENTIFIED BY PASSWORD ‘*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9‘ |
| GRANT SELECT, INSERT, UPDATE, CREATE, DELETE, ALTER ON `wpress`.* TO ‘wpuser‘@‘192.168.142.%‘ |
+-------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)- 進行php-mysql的連接測試:
vim /var/www/html/index.php --> ↓修改如下↓
<?php echo ‘<title> This is a PHP page </title>‘; $link=mysql_connect(‘192.168.142.128‘,‘wpuser‘,‘password‘); if ($link) echo "Mysql Connected"; --> 連接成功 else echo "Mysql Failed"; mysql_close(); phpinfo(); ?>
- 進行php-mysql的連接測試:
-
配置Wordpress到httpd 1服務器中, 準備配置好後直接拷貝到 nfs 上面去
- 下載源碼包 後使用xftp導入 httpd1 服務器中, 解壓得到:
-
- 訪問httpd服務器1 上的 wp站點: http://192.168.142.135/wordpress
- 根據提示生成 wp-config.php文件內容; 或者, 直接在wordpress/ 目錄下, cp wp-config-sample.php wp-config.php , 修改最上面幾行的 define(‘DB_NAME‘, ‘database_name_here‘); 的_here為你自己設置的數據庫即可;
- 刷新頁面, 按照提示設置
- 如果提示需要修改數據庫內容 --> 最好能夠直接刪掉wpress, 再新建一個wpress;
- 查看站點, 測試站點, 新建用戶等;
- 訪問httpd服務器1 上的 wp站點: http://192.168.142.135/wordpress
-
配置httpd2 服務端
- 配置 httpd2服務器, 安裝 httpd mariadb php php-mysql 進行測試
-
nfs服務器配置:
- yum -y install nfsd-utils --> 安裝nfs共享環境
- mkdir -pv /share/wp 我用此目錄做nfs共享目錄
- 編輯 /etc/exports 定義該共享文件系統/share/wp 192.168.142.0/24(rw,no_root_squash)
- systemctl start nfs 啟動服務
- 使用 showmount -e localhost 查看是否分享成功
[root@nfs ~]# showmount -e localhost Export list for localhost: /share/wp 192.168.142.0/24
- 在 httpd1 和 httpd2 分別安裝nfs-utils , 然後掛載 /share/wp 文件系統 mount -t nfs 192.168.142.140:/share/wp /var/www/html/ --> 這裏偷個懶, 直接掛載到httpd的默認資源路徑, 省得修改...
- 隨手創建一個 index.php <?php echo "This page is from NFS Server"; phpinfo(); ?> , 再訪問:
-
拷貝httpd1上配置好的wordpress/到nfs服務器上, 訪問查看是否正常:
-
但是這麽做有一個問題: 管理頁面都會跳轉到 httpd1 的服務器上, 那麽我們刪除這個wp站點重新做一遍試試看;
-
刪除wordpress/, 刪除數據庫新建
- 在nfs服務器上解壓安裝wordpress
- 為了實驗效果, 我們這次使用 httpd2 這臺服務器來配置wp --> 結果: 登陸後一樣會跳轉到httpd2 這臺主機上來;
-
-
上傳文件問題:
- 由於httpd服務器上的 httpd服務 都是使用apache用戶身份運行的, 我們需要為apache用戶增加對 /var/www/html 目錄的寫權限。但是!使用 chmod 766 後, wordpress 整個站點都掛了;
- 嗯,需要 x 權限 才能正確訪問;
- 仔細查看了wp對上傳時候的報錯, 發現: /wordpress/wp-content 才是需要更改 777 權限的, 更改了之後, 上傳正常;
最終測試
總結:
-
最開始的將wp站點資源分別放在httpd1和httpd2上是錯誤的; 正確做法是放在 nfs 上, 這樣所有的訪問都會從nfs 調用靜態資源;
-
nfs巨卡,性能差勁;
-
無可避免的, 無論在哪一臺 httpd 上完成wordpress的初始化, 管理權限登陸最終都會跳轉到那臺進行初始化的服務器上;還沒有搞懂為什麽;
-
對開篇的結構圖的補充內容:httpd服務器只提供httpd服務, 不放靜態資源;
- 幾個需要註意的點:
- mariadb 對wpuser的授權需要 DELETE 權限;
- nfs的搭建安裝包是 nfs-utils;
- 這種形式的站點不好用。
相關命令整理:
nfs服務器: nfsd(nfs-utils), mountd, idmapd
showmount -e HOST_IP
showmount -a HOST_IP 顯示指定NFS上所有的掛載
掛載
mount -t nfs SERVER:/path/to/shared_fs /path/to/mount_point
/etc/exports: 格式:
directory (or file system) client1(option1, option2) client2(option1, option2)
LAMP 建立 Wordpress 站點 Linux Apache MariaDB PHP