1. 程式人生 > >Mac Apache WebServer 伺服器配置

Mac Apache WebServer 伺服器配置

前言

  • Apache 是目前使用最廣的 Web 伺服器,可以支援各種指令碼的執行。
  • Mac 系統自帶,無需單獨安裝,只需要修改幾個配置就可以,簡單,快捷。
  • 有些特殊的伺服器功能,Apache 都能很好的支援。例如:HTTP PUT/DELETE 等操作。

1、配置準備工作

  • 1)配置伺服器需要做的工作

    • 在 Finder 中建立一個 “ApacheWebServer” 的資料夾,可直接建立在 /Users/QianChia(當前使用者名稱)目錄下。
    • 修改配置檔案中的 “兩個路徑”,指向剛剛建立的資料夾。
    • 修改一個 Options 配置項。
    • 反註釋一個檔案路徑配置。
    • 拷貝一個檔案。
  • 2)配置伺服器時的注意事項

    • 關閉中文輸入法。
    • 命令和引數之間需要有 “空格”。
    • 修改系統檔案一定記住 “sudo”,否則會沒有許可權。
    • 目錄要在 /Users/QianChia(當前使用者名稱)目錄下。
  • 3)示例配置環境

    • macOS 10.11.6
    • macOS 10.13.3
  • 4)WebServer 伺服器測試檔案

2、配置伺服器

  • 開啟終端,按照下面的操作開始配置,$ 開頭的,可以直接拷貝,但是不要拷貝 $。

    # 建立 ApacheWebServer 資料夾
    $ mkdir ApacheWebServer
    
    # 切換工作目錄
    $ cd /etc/apache2
    
    # 備份檔案,以防不測,只需要執行一次就可以了,格式 cp (copy 的縮寫) (原始檔) (目標檔案)
    # 如果後續操作出現錯誤,可以使用以下命令恢復  $ sudo cp httpd.conf.bak httpd.conf
    $ sudo cp httpd.conf httpd.conf.bak
    
    # 用 vim 開啟 httpd.conf 檔案(sudo 操作需要輸入系統密碼)
    $ sudo vim httpd.conf
    
    # 查詢 DocumentRoot,命令模式下輸入 /(查詢內容),區分大小寫,回車跳轉到查詢的內容處
    /DocumentRoot
    
    # 將游標移動到 DocumentRoot 所在行
    
      DocumentRoot "/Library/WebServer/Documents"
      <Directory "/Library/WebServer/Documents">
    
    # 進入編輯模式,將游標移動到 DocumentRoot 所在行,直接按鍵盤上的 i 鍵
    i
    
    # 修改引號中的路徑為上面在 Finder 中建立的路徑,如下
    
      DocumentRoot "/Users/QianChia/ApacheWebServer"
      <Directory "/Users/QianChia/ApacheWebServer">
    
    # 往下滑動找到 Options FollowSymLinks Multiviews 行
    # Mac 10.10+ 系統的 Apache 需要修改這一行
    
      Options FollowSymLinks Multiviews
    
    # 在 Options 與 FollowSymLinks 之間插入 Indexes
    
      Options Indexes FollowSymLinks Multiviews
    
    # 進入命令模式,直接按鍵盤上的 esc 鍵
    esc
    
    # 查詢 php,命令模式下輸入 /(查詢內容),區分大小寫,回車跳轉到查詢的內容處
    /php
    
    # 將游標移動到 #LoadModule php5_module libexec/apache2/libphp5.so 行首
    # 高版本系統為 #LoadModule php7_module libexec/apache2/libphp7.so 行首
    # 命令模式下直接按鍵盤上的 0 鍵
    0
    
      #LoadModule php5_module libexec/apache2/libphp5.so  或
      #LoadModule php7_module libexec/apache2/libphp7.so
    
    # 刪除行首註釋 #,命令模式下直接按鍵盤上的 x 鍵
    x
    
      LoadModule php5_module libexec/apache2/libphp5.so  或
      LoadModule php7_module libexec/apache2/libphp7.so
    
    # 儲存並退出,命令模式下輸入 :wq ,不儲存退出為 :q!
    :wq
    
    # 切換工作目錄,etc 目錄有點類似於 windows/system32,存放配置檔案的目錄
    $ cd /etc
    
    # 拷貝 php.ini 檔案
    $ sudo cp php.ini.default php.ini
    
    # 重新啟動 apache 伺服器
    $ sudo apachectl -k restart
    
    # 如果出現以下提示,表示配置完成
    
      httpd: Could not reliably determine the server's fully qualified domain name, using 
      MacBookAir.local. Set the 'ServerName' directive globally to suppress this message
    
    # 設定開機自動啟動
    $ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
    
    # 將伺服器指令碼檔案放到前面設定的 ApacheWebServer 資料夾中。
    # 開啟瀏覽器,在瀏覽器位址列中輸入伺服器地址
    # 如      http://127.0.0.1 
    # 或者輸入 http://localhost 
    # 或者輸入 http://本機 IP 地址 進行測試,
    # 能夠進入到 “Index of /” 頁面表示配置成功。
    

3、常見問題

  • 1)如果點選伺服器網站資源中的 info.php 檔案,出現下載,或者只是顯示一小段文字

    在終端中輸入以下兩個命令:
    
      $ sudo apachectl -k stop        // 關閉 apache 伺服器
    
      $ sudo apachectl -k start       // 重新再次啟動 apache 伺服器
    
  • 2)每次啟動計算機,Apache 伺服器預設是不會自動啟動

    可以啟動計算機之後,開啟終端,輸入以下命令:
    
      $ sudo apachectl -k start        // 啟動 apache 伺服器
    
    設定開機啟動:
    
      $ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
    
    關閉開機啟動:
    
      $ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
    
  • 3)執行指令碼的時候,顯示沒有許可權,拒絕訪問。或者在 “Index of /” 頁面無法顯示具體內容。

    • 用 NTFS 格式的 U 盤拷貝網路素材,會把檔案本身的許可權過濾掉。
    在終端中修改檔案的許可權:
      
      將指定的檔案許可權修改為 -rw-r--r--  -讀寫-只讀-只讀-,644(110 100 100)
      
      $ ls -la                                // 檢視當前資料夾中的檔案訪問許可權
      
      $ chmod 644 info.php (沒有許可權的檔名)    // 將指定的檔案許可權修改為 -rw-r--r-- 
      
      $ chmod 644 *.*                         // 將所有的檔案許可權修改為 -rw-r--r--