標籤:本地 重新整理 grants 虛擬機器 掛載 eve port pass yum
使用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載入是否成功:
-
- 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.%‘ IDENTIFIED BY ‘password‘;
在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();?>
- 配置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;
- 查看網站, 測試網站, 建立使用者等;
- 配置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 查看是否分享成功
[[email protected] ~]# showmount -e localhostExport 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