發表文章

6. Apache + PHP 8

圖片
進入 https://windows.php.net/download/ 官方網頁,下載適用於「Apache」而非「IIS」的「VS16 x64 Thread Safe」的 Zip 檔。 參照下圖,解壓縮後放到「C:\」。 參照下圖,輸入以下兩行內容: 跟 Unix 正斜號 / LoadModule php_module "C:/php-8.0.0-Win32-vs16-x64/php8apache2_4.dll" PHPIniDir "C:/php-8.0.0-Win32-vs16-x64" 第一行是讓 Apache 找到與 PHP 的連結檔。第二行指的是初始化目錄。 參照下圖,找出「IfModule dir_module」區塊,為 DirectoryIndex 添加 index.php 。 參照下圖,找出「IfModule mime_module」區塊,添加一行「AddType application/x-httpd-php .php .html」;再添加一行「AddHandler application/x-httpd-php .php」。 參照下圖,在「C:\Apache24\htdocs」建立 phpinfo.php 檔案,並寫入以下內容: 參照下圖,在重新啟動伺服器後,輸入 https://localhost/phpinfo.php ,便會見到 PHP 詳細訊息。 關於 php.ini 的設定,是屬於 PHP 範疇,會留到《快速學習 PHP 8》講解。

5. 設定 SSL

圖片
開啟「C:\Apache24\conf\httpd.conf」 載入以下模組: LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule ssl_module modules/mod_ssl.so 載入以下設定檔: Include conf/extra/httpd-ssl.conf 參照下圖,開啟「C:\Apache24\conf\extra\httpd-ssl.conf」,按圖修改,然後儲存,重新啟動伺服器。 參照下圖,輸入「https://localhost」後,呈現以下頁面,選擇「Advanced」,會見到下方出現「 Proceed to localhost (unsafe) 」,然後點擊進入,看到預設頁面內容「It works!」。 參照下圖,內容是從上方 localhost 區塊複製到最下方,然後去蕪存菁後,參照早前自定的vhost修改。 參照下圖,方法照舊。 照理,修改完成後,儲存,重新啟動伺服器,便可以以 https 形式瀏覽自己設立的網頁。

4. 建立 PEM、CSR、KEY、CRT

圖片
稍後會輸入以下內容 cd C:\Apache24\bin set OPENSSL_CONF=C:\Apache24\conf\openssl.cnf openssl req -config C:\Apache24\conf\openssl.cnf -new -out C:\Apache24\conf\server.csr -keyout C:\Apache24\conf\server.pem openssl rsa -in C:\Apache24\conf\server.pem -out C:\Apache24\conf\server.key openssl x509 -req -signkey C:\Apache24\conf\server.key -days 1024 -in C:\Apache24\conf\server.csr -out C:\Apache24\conf\server.crt 參照下圖,以「管理員」身份執行「Command Prompt」。 參照下圖,按圖輸入,在兩次輸入「PEM」時不會顯示輸入狀態。其餘的可以忽略。 參照下圖,見到輸出結果。 參照下圖,繼續按圖輸入。輸入早前的「PEM」做確認。 參照下圖,見到輸出結果。 參照下圖,繼續按圖輸入。 參照下圖,見到輸出結果。

3. 虛擬主機

圖片
打開「C:\Apache24\conf\httpd.conf」。 參照下圖,搜尋vhost,將 # 刪除,使其讀入與 vhost 相關的模組。 參照下圖,繼續搜尋,將 # 刪除,使其讀入與 vhost 相關的設定檔。然後儲存。 參照下圖,打開「C:\Apache24\conf\extra\httpd-vhosts.conf」,做重點介紹: 「ServerAdmin」對應網站管理員的通訊地址; 「DocumentRoot」對應的就是文件根目錄,「${SRVROOT}」是在「C:\Apache24\conf\httpd.conf」建立的一個變數,變數定義的就是「c:/Apache24」。 「ServerName」及「ServerAlias」對應的是網址; 「ErrorLog」及「CustomLog」對應的是儲存記載錯誤信息的位置。 參照下圖,打開「C:\Windows\System32\drivers\etc\hosts」,依樣畫葫蘆,然後儲存。 參照下圖,在「C:\Apache24」建立「docs」目錄,「C:\Apache24\docs」目錄內又有兩個目錄,其目錄結構是按照之前提到「DocumentRoot」對應的目錄結構。記得在兩個目錄中各自建立「index.html」,內容要方便之後辨認執行成果。 參照下圖,打開「C:\Apache24\conf\httpd.conf」,為「docs」建立「Directory」標籤區塊。可以複製「${SRVROOT}/htdocs」的「Directory」標籤區塊,貼在底部。把「${SRVROOT}/htdocs」更名為「${SRVROOT}/docs」便可。然後儲存,關閉。 參照下圖,啓動服務器。 參照下圖,輸入網址,確認結果。 參照下圖,輸入網址,確認結果。 參照下圖,輸入「localhost」,確認「localhost」被意外覆蓋。 參照下圖,依樣畫葫蘆,然後儲存,重新啟動伺服器,可解決上圖出現的問題。 參照下圖,localhost指回當初的目錄。

2. 註冊為服務,以服務形式啟動。

圖片
參照下圖,在 C:\Apache24\bin 會見到另一個檔案「ApacheMonitor.exe」,點擊兩下… 參照下圖,會在 Windows 狀態列找到羽毛小圖示。鼠標靠去會見出現「No services installed /沒有服務被安裝」,然後右擊… 參照下圖,會彈出【Open Apache Monitor】及【Open Service】選項。把兩個選項都打開… 參照下圖,會彈出【Apache Service Monitor】的小窗,「Service Status」為空白一片… 參照下圖,會彈出【Services】的小窗,可以看到註冊了一堆「Services」,只是還未有「Apache24」 。 現在就開始把伺服器註冊到服務吧… 參照下圖,點擊 Windows 左下角的開始圖示,輸入 cmd ,見 Command Prompt 圖案後,選【Run as administrator】。 參照下圖,依圖輸入cd C:\Apache24\bin、httpd -k install。其中httpd就是啓動伺服器的執行檔。 參照下圖,可以見到【Apache Service Monitor】中的【Service Status】已經有伺服器名稱出現。 參照下圖,刷新【Services】會見到 Apache24 已經註冊到【Services】。

1. 下載,及簡單啓動。

圖片
到 https://www.apachelounge.com/download/ 下載 Win64 版本,然後解壓縮,可找到 Apache24 。 參照下圖,將 Apache24 整個目錄複製到 C:\ 下。 參照下圖,進入到 C:\Apache24\bin 後,會見到「httpd.exe」,點擊兩下… 參照下圖,會有黑色小窗彈出,代表伺服器已經啟動。 其中訊息為「AH00558: httpd.exe: Could not reliably determine the server's fully qualified domain name, using fe80::f821:b47b:b641:4c6b. Set the 'ServerName' directive globally to suppress this message」,只是「C:\Apache24\conf\httpd.conf」設定問題,現時可以不理會。 參照下圖,在網址列輸入 localhost ,Enter 後看到 It works! 網頁,就個預設網頁就是來自 C:\Apache24\htdocs 中的 index.html 。 最後,回到黑色小窗,按 ctrl + C 便可把小窗關掉,即代表把伺服器關掉,網頁也不會顯示。