在使用 Apache 服務器搭建網站時,虛擬主機(Virtual Host)是一個必不可少的功能。虛擬主機指在一臺物理機上運行多個網站,利用不同的域名進行區分。本文將介紹 Apache 和 PHP 的虛擬主機配置。
首先,在 Apache 的配置文件 httpd.conf 中開啟虛擬主機功能:
<VirtualHost *:80> DocumentRoot "/var/www/example" ServerName example.com <Directory "/var/www/example"> AllowOverride All Options FollowSymLinks Require all granted </Directory> </VirtualHost>上面的代碼表示在 80 端口上監聽一個虛擬主機,并將請求映射到 /var/www/example 目錄下。 但是,如果我們想在同一個物理機上搭建多個網站,就需要配置多個虛擬主機。例如,我們可以再添加一個虛擬主機 example2.com 的配置:
<VirtualHost *:80> DocumentRoot "/var/www/example2" ServerName example2.com <Directory "/var/www/example"> AllowOverride All Options FollowSymLinks Require all granted </Directory> </VirtualHost>這樣,訪問 example2.com 就可以展示 /var/www/example2 目錄下的網站了。 在虛擬主機中,我們還可以使用 ServerAlias 指令設置多個域名指向同一個虛擬主機。例如:
<VirtualHost *:80> DocumentRoot "/var/www/example" ServerName example.com ServerAlias www.example.com <Directory "/var/www/example"> AllowOverride All Options FollowSymLinks Require all granted </Directory> </VirtualHost>這樣,無論訪問 example.com 還是 www.example.com 都會被映射到 /var/www/example 目錄下。 對于 PHP 的虛擬主機配置,我們需要在每個虛擬主機的配置文件中添加以下代碼,開啟 PHP 腳本的解析功能:
<FilesMatch "\\.php$"> SetHandler application/x-httpd-php </FilesMatch>如果想同時支持多種 PHP 版本,可以使用 php-fpm 模塊,并在 Apache 的虛擬主機配置文件中添加以下代碼:
<FilesMatch "\\.php$"> SetHandler "proxy:fcgi://127.0.0.1:9000" </FilesMatch>以上就是 Apache 和 PHP 虛擬主機配置的基本方法和注意事項。在實際應用中,我們還可以使用 SSL 安全證書進行加密傳輸,以及配置訪問控制和日志記錄等功能。