一直以來,都是使用 Mac 內建的 apache2 及 PHP 模組。
其實只要打幾個勾,去掉 LoadMoudule
前面的註解,設定一下就可以用了。
不過,因為 Laravel 對於系統的要求愈來愈高,
加上我的 Mac 內建的是 5.5 版,再也無法安裝 Laravel 5.2 以上的版本。
也因為最近因為要使用 jessenger/laravel-mongodb
這個套件,
我利用 Homebrew 安裝完 php70
,
在內建的 apache 準備 LoadModule ,結果找不到這個 .so 檔的路徑
又 MongoDB 的 driver 不知道怎麼搞的,
在 brew install 的結果顯示 already installed 但在 phpinfo()
裡面又找不到。
(而且還有 php55-mongo
及 php55-mongodb
這兩種..)
反正就是經過種種原因,覺得乾脆移除內建的 apache 再把全部東西都用 Homebrew 安裝好了。
以上抱怨完之後,把過程寫下來希望可以幫助到其他人= =||
1. 移除內建的 apache
先讓 apache 暫停服務
sudo apachectl stop
移除內建的 apache
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
2. 使用 Homebrew 安裝所要的軟體
安裝 apache (apache 在這邊叫作 httpd)
brew install httpd24
安裝 php 7
-with-apache
很重要一定要加,因為加上去才會自動幫我們把 LoadModule
設定加到 httpd.conf
裡面
(不然還要自己找 php 路徑)
brew install php70 --with-apache
安裝 MongoDB 的 PHP 驅動
brew install php70-mongodb --with-apache
3. 重新啟動 apache
sudo apachectl restart
大致上已經完成,但是如果打開網頁的話,PHP 可是會直接噴出程式碼的。
所以我們還要設定一下 httpd.conf
4. 設定 apache
打開 httpd.conf
檔案
sudo vim /usr/local/etc/apache2/2.4/httpd.conf
去除 php 行頭的註解
如果剛剛在安裝的時候,有使用 -with-apache
參數,
那麼你應該可以找到這行,而且是直接啟用的狀態而無需自己去除註解。
LoadModule php7_module /usr/local/Cellar/php70/7.0.15_8/libexec/apache2/libphp7.so
監聽 80 port
使用 brew 安裝的 apache 會預設監聽 8080 port
看你的需要,如果你想要直接使用 80 而不想在網址後面加上 :8080
那你可以更改設定
Listen 80
增加 PHP 關聯
在 httpd.conf
的任意處,加上
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
5. 重新啟動 apache
sudo apachectl restart
6. 大工告成
打開終端機,輸入
php --version
應該可以直接看到類似如以下的結果
PHP 7.0.15 (cli) (built: Feb 25 2017 18:17:23) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies