在Mac上設定 Apache & PHP 環境(極新手向)

SetMao
6 min readJan 4, 2018

--

最近因為有個side project所以要開始摸PHP、Laravel,但是為了建立環境搞了好久,所以就來記錄一下建立環境的過程

PHP + Apache

如果不用Laravel只要用PHP + Apache的話,其實高能的Mac都幫你裝好了,可以直接用Terminal(終端機)開啟Apache的服務

(接下來所有有出現 $ 的地方是代表你要在Terminal(終端機)底下輸入的指令,所以 $ 並不需要在Terminal(終端機)中輸入)

Step 1

因為操作Apache需要root權限,所以建議用以下指令將權限提權到root等級

(小小科普一下這邊的 sudo 其實是 super user do ,也就是用超級使用者的權限做些事情的意思 ,而後面的 su 代表的是 super user,所以這行的意思就是我用超級使用的的權限將當前的權限提升到超級使用者的等級)

$sudo su //切換到super user

Step 2

將權限提升到root之後,輸入以下指令啟動Apache的服務

$apachectl start //啟動Apache

Step 3

啟動完Apache後打開瀏覽器瀏覽以下網址,如果有看到下圖的It works!就代表你的Apache服務已經成功啟動了

http://localhost
localhost

開好Apache後,預設的資料夾是在

/Library/WebServer/Documents

(要注意這邊的Library不是username底下的Library而是根目錄底下的Library,如果怕自己走錯資料夾可以按照底下的指令去走到正確的資料夾)

$cd /Library/WebServer/Documents

(cd 代表的意思是 current directory ,功能是將目前所在的位置切換到另一個資料夾底下)

寫好PHP檔後可以放進上面的資料夾去測試,到這裡PHP + Apache的設定就完成了,但是如果不想要每次寫完檔都還要放到預設資料夾中去做設定可以接著做以下的步驟

Step 4

先開啟Terminal(終端機)輸入以下指令,目的是在自己username的資料夾底下新建一個叫Sites的資料夾,之後要將Apache的資料夾位置指向到Sites這個資料夾,以後就可以將檔案直接放進Sites資料夾中去做測試

$mkdir Sites

(mkdir 代表的意思是 make directory,功能是在當前資料夾底下建立一個新的資料夾叫做Sites)

Step 5

接著我們要透過以下指令在Apache的資料夾底下建立一個設定檔,記得將UserName的部分改成自己的使用者名稱

$cd /etc/apache2/users
$vim UserName.conf //username記得換上自己的使用者名稱

(vim 是個在Linux/Unix底下一個好用的文字編輯器,詳細的可以去看鳥哥的介紹跟教學(http://linux.vbird.org/linux_basic/0310vi.php),而在這邊我們是要用vim來建立一個叫 (username).conf 的檔案並在裡面加上一些設定)

Step 6

打完Step 5的指令後應該會看到一個文字編輯器的畫面接著按下 i 進入insert mode之後將以下的內容複製進檔案中,一樣記得將username的部分改成自己的使用者名稱

<Directory "/Users/UserName/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>

複製進去之後先按 esc 離開 insert mode 後輸入:wq 離開vim

( : 是代表接下來要輸入指令,而 wq 代表的意思是 write & quit ,功能是將檔案寫入之後離開vim)

Step 7

設定完之後要將目前的位置先切換到下一個要設定的設定檔所在的資料夾中

$cd /etc/apache2
$vim httpd.conf

之後在大約是第71、72、166、169、503將這幾行前面的#刪除

(一樣先按 i 進入 insert mode 將 # 刪除,之後按 esc 離開 insert mode 後輸入 :wq 將檔案儲存後離開vim)

 71 LoadModule authz_core_module libexec/apache2/mod_authz_core.so
72 LoadModule authz_host_module libexec/apache2/mod_authz_host.so
166 LoadModule userdir_module libexec/apache2/mod_userdir.so
169 LoadModule php7_module libexec/apache2/libphp7.so
503 Include /private/etc/apache2/extra/httpd-userdir.conf

並將第290行的Require all denied改成

(我之前爬別人的文並沒有要修改這邊,但是我做完之後瀏覽自己的網頁出現Forbidden 403,再去爬文之後修改這邊就可以正常顯示了)

Require all granted

Step 8

接著修改最後一個設定檔

$cd /etc/apache2/extra
$vim httpd-userdir.conf

再將第16行前面的#刪除

 16 Include /private/etc/apache2/users/*.conf

Step 9

都修改完之後輸入以下指令來重啟Apache

$apachectl restart

如果出現

This operation requires root.

代表你的權限不夠,請向前面一樣使用

$sudo su

或是在指令前面加上sudo來執行指令

Step 10

確認重啟後開啟瀏覽器瀏覽以下網址,記得一樣要將UserName的部分改成自己的使用者名稱

http://localhost/~UserName

如果有看到

Index of /~UserName

就恭喜你,代表你成功了~

--

--