需具備:Homebrew
我的Mac電腦內建版本為:PHP 7.3.29 / Apache 2.4.54
1.查看homebrew上有哪些php版本:
brew search php
2.依照所需安裝php版本(Server上所使用的版本):
brew instal php@8.0
安裝後可以從終端機中取得基本設定資訊
並且php.ini位置在:/usr/local/etc/php/8.0/
3.修改環境變數:將php換成php@8.0,並重新載入.zshrc。
echo 'export PATH="/usr/local/opt/php@8.0/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@8.0/sbin:$PATH"' >> ~/.zshrc
export LDFLAGS="-L/usr/local/opt/php@8.0/lib"
export CPPFLAGS="-I/usr/local/opt/php@8.0/include"
source ~/.zshrc
(輸入where php可發現參照位置增加了)(輸入php -version版本變成PHP 8.0.28)
3.安裝Apache Http Server
brew instal httpd
安裝後可得知Web資料夾預設位置為:/usr/local/var/www
httpd.conf位置在:/usr/local/etc/httpd/httpd.conf
預設port為:8080(http),8443(https)
http預設埠為80,你也可以將8080改為80,只需輸入localhost即可進入網頁,無需指定連接埠。
4.設定:
打開httpd.conf設定ServerName,本機使用輸入localhost。預設埠為8080不需修改。
# 變更:網址(本機)(localhost = 127.0.0.1)
ServerName localhost
5.啟動伺服器
brew services start httpd
注意:如果你有使用過內建的Apache開啟過網站,要注意是否有log檔殘留,如果有則會啟動失敗。
(活動監視器中選擇CPU並搜尋httpd會發現後台沒有運行Server程序。)
可輸入brew services list查看httpd的狀態,若顯示error 256則可能為此狀況。
輸入apachectl -e error可得知httpd權限被拒絕,無法打開錯誤日誌。
進到存放log日誌的位置(/private/var/log/apache2/)後刪除即可。
6.進入網頁:顯示Is works.代表起動成功。
7.修改index.html內容,為了測試php是否正確啟用,並儲存成index.php(記得把index.html改掉或刪掉):
<html><body><h1>It works!</h1></body></html>
<?php
print("正確啟用PHP");
?>
8.修改httpd.conf來執行PHP模組:將以下指令依照原內容添加?
# 變更:載入PHP模組(8.0)
LoadModule php_module /usr/local/opt/php@8.0/lib/httpd/modules/libphp.so
# 變更:載入PHP模組
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
# 變更:讓伺服器使用php做為預設首頁
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
9.重啟Apache:(當你設定httpd.conf後要重新啟動伺服器才能套用設定)
brew services restart httpd
(看到「Is works!」下方出現「正確啟用PHP」恭喜你!你已經完成安裝了!)
10.安裝Composer(PHP的軟體套件管理工具)
brew instal composer
(安裝後輸入composer -v看到版本即安裝完成。)
補充:
httpd.conf建議修改:(請翻閱文本一條一條貼上,整個覆蓋將導致損壞)(建議複製一個副本以免損壞無法復原)
# 變更:監聽埠
Listen 80
# 變更:啟用SESSION模組(保持登入)
LoadModule session_module lib/httpd/modules/mod_session.so
# 變更:更改網址顯示方式(偽靜態設定)
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
# 變更:根目錄位置修改。(網頁入口位置)
DocumentRoot "[自訂資料夾]"
# 變更:網站資料夾位置修改。
<Directory "[自訂資料夾]">
# Directory範圍到/Directory注意裡面有其他設定別直接覆蓋
# 變更:禁止顯示目錄
Options FollowSymLinks
# 變更:讓伺服器使用.htacess配置檔
AllowOverride All
</Directory>
# 變更:設定錯誤紀錄存放位置
ErrorLog "[自訂資料夾]/[自訂名稱].log"
小技巧:可以製作一個重啟Web Restart.command方便重啟,記得給與相應權限。
<pre class="wp-block-syntaxhighlighter-code"><code>#!/bin/bash
#初次使用請給予此檔案相應權限:chmod 751 [檔案位置]
#重新啟動Mac內建Apache時改使用此命令:sudo apachectl restart
echo -----------------重啟apache-----------:
brew services restart httpd
echo -----------------完成-----------------。</code></pre>
補充:編輯httpd.conf後可以使用此指令檢查有問題apachectl
configtest
如有遇到寫入error log權限不足問題,請於終端機輸入以下指令(更改為_www使用者與群組):
sudo chown -R _www:_www /[專案資料夾log檔案夾位置]