」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 帶有虛擬主機的 PHP Apache 項目

帶有虛擬主機的 PHP Apache 項目

發佈於2024-11-09
瀏覽:385

PHP Apache project with Virtual Host

建立專案目錄

首先,為您的專案建立目錄。例如,讓我們建立一個名為 php:

的目錄

sudo mkdir /var/www/html/php


建立 PHP 測試文件

在專案目錄中建立一個index.php檔案:


echo "

設定目錄權限

設定適當的權限,以便Apache可以存取該目錄:


sudo chown -R www-data:www-data /var/www/html/php 
sudo chmod -R 755 /var/www/html/php


指令 sudo chown -R www-data:www-data /var/www/html/php 執行下列操作:

  1. -R:此選項表示應該遞歸執行操作,即不僅對指定目錄執行操作,還對其所有子目錄和檔案執行操作。

  2. www-data:www-data:指定將成為文件新所有者的使用者和群組都是 www-data。這是 Linux 系統上的常見使用者和群組,用作 Apache 和 Nginx 等 Web 伺服器的預設使用者。

  3. /var/www/php:這是要更改屬性的目錄的路徑。

指令 sudo chmod -R 755 /var/www/html/php 執行下列操作:

755:這是一種權限模式:

  1. 第一個數字 (7) 賦予檔案(或目錄)的擁有者讀 (4)、寫 (2) 和執行 (1) 權限,總共 7 個。

  2. 第二個數字 (5) 為群組提供讀取 (4) 和執行 (1) 權限,但不提供寫入權限,總共 5 個。

  3. 第三個數字 (5) 也授予其他使用者讀取 (4) 和執行 (1) 權限,但不提供寫入權限,總共 5 個。

綜上所述,這個指令改變了/var/www/html/php內所有檔案和目錄的權限,讓擁有者擁有完全的控制權(讀取、寫入和執行),而群組和其他使用者只有讀取和執行權限。這在 Web 伺服器環境中很常見,以確保伺服器可以存取必要的檔案而不影響安全性。

建立虛擬主機設定檔

為您的虛擬主機建立一個新的設定檔。該檔案應與 php 專案同名:


sudo your_editor /etc/apache2/sites-available/php.conf


新增虛擬主機配置

在文件中新增以下配置:



    ServerAdmin webmaster@localhost
    ServerName php.info
    DocumentRoot /var/www/html/php

    
        AllowOverride All
        Require all granted
    

    ErrorLog ${APACHE_LOG_DIR}/php_error.log
    CustomLog ${APACHE_LOG_DIR}/php_access.log combined



我們來分析各部分代碼:

    • 這是偵聽連接埠 80 的虛擬主機設定區塊的開始,該連接埠是 HTTP 的預設連接埠。星號 (*) 表示虛擬主機將接受來自任何 IP 位址的連線。
  1. ServerAdmin webmaster@localhost

    • 定義伺服器管理員的電子郵件地址。此電子郵件地址可用於錯誤訊息或使用者需要聯絡管理員時。
  2. 伺服器名稱 php.info

    • 指定套用此設定的伺服器的名稱。在這種情況下,虛擬主機將回應 php.info 的請求。重要的是該名稱正確解析為伺服器的 IP(通常在 /etc/hosts 檔案或 DNS 中配置)。
  3. 文檔根目錄 /var/www/html/php

    • 定義包含當有人存取 ServerName 時將提供服務的檔案的目錄(本例中為 php.info)。在此範例中,檔案位於 /var/www/html/php.
    • 此區塊指定指定目錄的特定設定。此區塊中的設定會影響 Apache 針對該特定目錄的行為。

允許覆蓋全部

  • 它允許 /var/www/html/php/ 目錄中的 .htaccess 檔案覆蓋 Apache 的設定。這意味著開發人員可以使用 .htaccess 檔案來設定規則,例如重定向或存取控制,而無需編輯主 Apache 設定檔。

要求所有已授予的

  • 允許所有使用者存取該目錄。這意味著任何人都可以不受限制地存取 /var/www/html/php/ 內的檔案。
  1. 錯誤日誌${APACHE_LOG_DIR}/php_error.log
  2. 指定此虛擬主機的 Apache 錯誤日誌檔案的路徑。 ${APACHE_LOG_DIR} 是一個變量,通常在 Apache 主設定檔中設置,指向儲存日誌的目錄。這裡,與該虛擬主機相關的錯誤將記錄在 php_error.log 檔案中。

  3. CustomLog ${APACHE_LOG_DIR}/php_access.log 組合

  4. 定義此虛擬主機的 Apache 存取記錄檔的路徑。與 ErrorLog 一樣,這也使用 ${APACHE_LOG_DIR} 變數。組合格式記錄有關請求的訊息,包括用戶端的 IP 位址、請求的時間、HTTP 方法、請求的 URL、狀態代碼和使用者代理。

啟用虛擬主機

使用指令啟用新的虛擬主機:


sudo a2ensite php.conf


啟動重寫模組(如果需要)

如果需要使用.htaccess或URL重寫,請啟動Apache重寫模組:


sudo a2enmod rewrite


將伺服器名稱新增至主機

若要使用您定義的伺服器名稱 (php.info) 存取您的項目,請在 /etc/hosts 檔案中新增一個項目:


sudo your_editor /etc/hosts


將以下行加入文件末尾:


127.0.0.1 php.info




重新啟動 Apache

重新啟動 Apache 以使變更生效:


sudo systemctl restart apache2




訪問專案

您現在可以透過輸入 http://php.info 在瀏覽器中存取您的專案。

版本聲明 本文轉載於:https://dev.to/xxzeroxx/php-apache-project-with-virtual-host-2npk?1如有侵犯,請聯絡[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3