1. 程式人生 > >LAMP 建立 Wordpress 站點 Linux Apache MariaDB PHP

LAMP 建立 Wordpress 站點 Linux Apache MariaDB PHP

sql let 結構圖 strong war body https 命令 功能

使用LAMP建立Wordpress, 要求如下:

技術分享圖片

準備工作:

  1. VMware 14
  2. CentOS 7.4 最小化 安裝鏡像
  3. Wordpress 安裝包, 下載

預熱:

  1. 使用VMware新建4臺虛擬機, 並安裝 --> 可以先安裝一臺CentOS 7 最小系統, 然後使用克隆功能 復制出另外三臺, 直接安裝還快些;
  2. 設置yum源, 與網卡等基本應用, 使用 yum -y update
  3. 記錄各個主機的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 客戶端

    1. yum -y install httpd php php-devel php-mysql mariadb
    2. systemctl start httpd
    3. vim /var/www/html/index.php --> <?php phpinfo(); ?>
    4. systemctl reload httpd
    5. 測試php加載是否成功:

技術分享圖片

  • MariaDB服務器設置:

    1. yum -y install mariadb mariadb-server --> 安裝mariadb的 客戶端 和 服務端
    2. mysql -uroot -p --> 登陸到本地mysql服務端執行如下操作
      1. 新建庫 wpress --> CREATE DATABASE wpress;
      2. 新建Wordpress專用用戶及授權 -->
        GRANT SELECT,UPDATE,ALTER,INSERT,CREATE,DELETE ON wpress.* TO wpuser@192.168.142.%
        IDENTIFIED BY password;
    3. 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 服務端

    1. 配置 httpd2服務器, 安裝 httpd mariadb php php-mysql 進行測試
    2. 技術分享圖片
  • nfs服務器配置:

    1. yum -y install nfsd-utils --> 安裝nfs共享環境
    2. mkdir -pv /share/wp 我用此目錄做nfs共享目錄
    3. 編輯 /etc/exports 定義該共享文件系統/share/wp 192.168.142.0/24(rw,no_root_squash)
    4. systemctl start nfs 啟動服務
    5. 使用 showmount -e localhost 查看是否分享成功
      [root@nfs ~]# showmount -e localhost
      Export list for localhost:
      /share/wp 192.168.142.0/24
    6. 在 httpd1 和 httpd2 分別安裝nfs-utils , 然後掛載 /share/wp 文件系統 mount -t nfs 192.168.142.140:/share/wp /var/www/html/ --> 這裏偷個懶, 直接掛載到httpd的默認資源路徑, 省得修改...
    7. 隨手創建一個 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 權限的, 更改了之後, 上傳正常;

最終測試

技術分享圖片技術分享圖片


總結:

  1. 最開始的將wp站點資源分別放在httpd1和httpd2上是錯誤的; 正確做法是放在 nfs 上, 這樣所有的訪問都會從nfs 調用靜態資源;

  2. nfs巨卡,性能差勁;

  3. 無可避免的, 無論在哪一臺 httpd 上完成wordpress的初始化, 管理權限登陸最終都會跳轉到那臺進行初始化的服務器上;還沒有搞懂為什麽;

  4. 對開篇的結構圖的補充內容:httpd服務器只提供httpd服務, 不放靜態資源;

  5. 幾個需要註意的點:
    1. mariadb 對wpuser的授權需要 DELETE 權限;
    2. nfs的搭建安裝包是 nfs-utils;
    3. 這種形式的站點不好用。


相關命令整理:

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