使用Windows IIS 架設 Wordpress
28 Jun 2018公司需要一個 CMS 平台,主管叫我評估一下要自己寫還是用現成的工具
那我當然是用現成的囉(攤手)
事前評估
主要考量的點還是公司沒幾個工程師(好啦其實就只有我一個),不太可能自己開發,所以決定用 Wordpress 頂著用,搞不好一個不小心還可以把購物系統一起架在上面
我最初的規劃其實想要用 docker 架站
但礙於公司遲遲不幫我生出一台 Linux Server,最後只好委屈點,跟公司其他服務共用一台主機了。
安裝
1. 準備 PHP 環境
下載頁:PHP
下載&安裝
選 Windows 版,然後就選最新穩定版就對了
下載完成後解壓縮至自已喜歡的地方,我放C:\php
放好之後別忘了:
- 將該目錄加到環境變數內
- 開放 IIS 對該資料夾的讀寫權限
設定
接著開始設定,資料夾根目錄內有兩個檔案
分別是php.ini-development
&php.ini-production
,挑一個複製出來,重新命名成php.ini
,他會成為你正式的設定檔。
要異動的設定有下面幾個:
- 732 行
extension_dir
指定成你目錄內的ext
資料夾,例如C:\php\ext
- 749 行
cgi.force_redirect = 0
- 769 行
cgi.fix_pathinfo=1
- 782 行
fastcgi.impersonate = 1
- 886 行開始有一系列的 extension 設定,我開了這幾個:
- curl
- mysqli
- openssl
- pdo_mysql
網路上很多教學都寫說設定檔要寫成
extension=php_openssl.dll
但新版的 PHP 不用這樣寫了,直接取消註解就好。
以上大概就完成 PHP 的設定了 :D
2. 安裝 MySQL
mysql 我不太熟悉,所以選擇直接用官方提供的 wizard 安裝
解壓縮後就照著安裝步驟走,除了以下事情要注意之外都用預設值就好,這樣就可以順利完成安裝了
- Authentication Type : 預設選項是
caching_sha2_password
,但我發現裝好之後會導致 Wordpress 無法順利連接 mysql,所以又重新回來這邊設定,改成Standard
設定
如果上面都照我說的走,那你應該有 MySQL Workbench 這套 GUI 工具可以使用,就用它來完成後續的設定吧
- 開一顆 DB : 上方工具列選
Create a new schema
,然後命名為wordpress
,Charset 設成utf8
後存檔 - 建立使用者 : 左方工具選
Users and Privileges
,下方Add Account
選下去,然後把帳號密碼設一設Authentication Type 記得要選
Standard
- 給予權限 : 接續剛剛建立使用者的部分,切換分頁到
AdministrativeRoles
把該給的權限給一給,然後最後一個分頁SchemaPrivileges
把剛剛開好的 DB 開放給他使用
以上即為 mysql 設定
3. 安裝 Wordpress
一樣,下載,解壓縮到喜歡的位置,我是直接放在C:\inetpub\wwwroot\wordpress
這樣比較省事,不用再設定一次 IIS 的資料夾權限
設定
跟剛剛安裝 PHP 很類似,於 Wordpress 根目錄內有個wp-config-sample.php
檔,把它複製一個改名為wp-config.php
,他即為你正式的設定檔
而要異動的設定如下:
- 前幾行的 DB 連線資訊 : 把你剛剛在 mysql 設定的資料庫名稱跟連線位址
localhost:port
還有帳密通通加進去吧。 - 認證唯一金鑰設定 : 就在 DB 設定的下一段,註解有詳細說明如何處理,這些不弄的話,初次開啟 Wordpress 安裝畫面時會顯示 Table Insert 失敗。
- 最後拉到最下面新增一段
define('FS_METHOD', 'direct');
這是讓 Wordpress 可以在後台直接安裝外掛程式需要的功能。
4. IIS 設定
iis 除了把站點開起來之外還有以下事情要設定:
Default Document
新增index.php
做為站點的預設入口
Handler Mappings
進入後於右上角選擇Add Module Mapping...
,然後照下圖設定吧
FastCgiModule 如果選不到的話,要去 Windows 新增功能,分類在 網頁伺服器(IIS) / 網頁伺服器 / 應用程式開發 / CGI
以上完成設定後就可以用 IIS 跑 PHP 應用程式了,此時即可啟用該站點
並開啟瀏覽器前往http://localhost/wp-admin/install.php
,順利的話就會看到歡迎畫面了
到此完成安裝。
後續問題
外掛安裝失敗
於安裝完成後,遇到一個問題是每次要安裝外掛他都顯示
No working transports found
上網估狗了一下發現似乎是 curl 無法使用
解法如下:
- php 設定: 請回頭檢查 php extension 的 curl 跟 openssl 有沒有開
- 複製 lib 檔: 將 php 中 libeay32.dll,ssleay32.dll,php_curl.dll,libssh2.dll 複製到 windows/system32
- 安裝curl:
- 下載
Win32 CAB
- 解壓縮,然後把目錄加到環境變數
- 下載