over 6 years ago

[更新] 升級到 Mac OS 10.10 (Yosemite)後,Apache http://localhost/~username 出現 404 錯誤。


解決方式

  1. 開啟檔案 /etc/apache2/httpd.conf,移除下列幾行的註解。(移除 # 字號)

    #LoadModule php5_module libexec/apache2/libphp5.so
    #LoadModule userdir_module libexec/apache2/mod_userdir.so
    #Include /private/etc/apache2/extra/httpd-userdir.conf
    
  2. 開啟檔案 /etc/apache2/extra/httpd-userdir.conf,移除下列註解。(移除 # 字號)

    #Include /private/etc/apache2/users/*.conf
    
  3. 確認 /etc/apache2/users/ 路徑下,是否有 username.conf 這個檔案,沒有的話則新增檔案,並填入下列內容。

    <Directory "/Users/username/Sites">
        Options Indexes MultiViews
        AllowOverride None
        Require all granted
    </Directory>
    
  4. 修改 /etc/apache2/httpd.conf 檔案中,DocumentRoot 的路徑,需要與第三點 username.conf 中的路徑相同。

    DocumentRoot "/Users/username/Sites"
    <Directory "/Users/username/Sites">
    
  5. Restart Apache Server

    sudo apachectl restart
    

Mac OS 10.8 預設關閉網站分享,需要透過手動的方式開啟。

Start and Stop Apache Server


  • Start

    sudo apachectl start
    
  • Stop

    sudo apachectl stop
    
  • Restart

    sudo apachectl restart
    
  • Check Apcahe Version

    httpd -v
    

System Level Root


預設的網站根目錄

http://localhost/

根目錄中的檔案則存放在以下路徑

/Library/WebServer/Documents/

User Level Root


  1. 檢查是否有 '~/Sites' 這個資料夾,如果沒有請自行建立。

  2. 修改 'username.conf',確認此檔案是否位於

    /etc/apache2/users/
    

    如果沒有則自行建立,命名規則是 "[使用者名稱] + .conf"。(Ex. john.conf)

    sudo vi /etc/apache2/users/john.conf
    

    填入以下內容,記得將 username 換成自己的使用者名稱

    <Directory "/Users/username/Sites/">
    Options FollowSymLinks Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>
    
  3. 檢查檔案權限,正常的話應該為

    -rw-r--r--   1 root  wheel  username.conf
    

    如果不是,需更改權限

    sudo chmod 644 username.conf
    
  4. 重新開啟 apache

    sudo apachectl restart
    
  5. 輸入網址確認是否成功

    http://localhost/~username/
    

Turn On PHP


  1. 開啟 httpd.conf

    sudo vi /etc/apache2/httpd.conf
    
  2. 找到 php 的相關設定,並移除註解

    • Before

      #LoadModule php5_module libexec/apache2/libphp5.so
      
    • After

      LoadModule php5_module libexec/apache2/libphp5.so
      
  3. 重新開啟 apache

    sudo apachectl restart
    

References


← How to create executable jar Install MySQL and phpMyAdmin on Mac OS X →
 
comments powered by Disqus