1. 程式人生 > >Apache和PHP結合,Apache虛擬主機

Apache和PHP結合,Apache虛擬主機

Linux

Apache和PHP結合

安裝完PHP和Apache後,首先編輯Apache的配置文件

我的Apache是安裝在 /usr/local/apache2.4 這個目錄下
那麽配置文件就在 /usr/local/apache2.4/conf/httpd.conf 這個位置

編輯配置文件
vim /usr/local/apache2.4/conf/httpd.conf

技術分享圖片

在配置文件裏搜索‘ServiceName’ ,找到這一行,將這一行前面的‘#’號取消掉

技術分享圖片

為了防止打開虛擬主機配置文件的時候顯示 403
搜索關鍵字 denide 找到Require all denied這一行
更改為 :Require all granted,有兩處都記得更改

技術分享圖片

技術分享圖片

增加一行和PHP相關的配置
搜索關鍵字 AddType ,找到圖片中這兩行,添加標紅框的這一行
AddType application/x-httpd-php .php

技術分享圖片

增加一個索引頁,
搜索關鍵字 Index ,找到圖片中的這一行,添加紅框中的這一段
index.php

技術分享圖片

配置文件更改完成,需要檢查配置文件的語法是否正確,在重新加載配置文件

檢查Apache配置文件的語法是否正確,使用選項 -t ,顯示 ‘Syntax OK’表示沒有問題
/usr/local/apache2.4/bin/apachectl -t

技術分享圖片

重新加載Apache的配置文件,使用 graceful
/usr/local/apache2.4/bin/apachectl graceful

技術分享圖片

測試PHP是否可以正常解析
編輯一個php文件
vim /usr/local/apache2.4/htdocs/index.php

在文件裏面添加如下內容,意思是打印PHP的信息

<?php
phpinfo();
?>

技術分享圖片

在瀏覽器裏面輸入IP地址訪問,我的測試機器IP地址為:192.168.71.131
在瀏覽器裏面輸入 192.168.71.131,查看PHP是否可以正常解析
如果看到是這樣的頁面表示PHP可以正常解析。

技術分享圖片

PHP如果不能正常解析的排查步驟
確認Apache的modules下面是否存在 PHP模塊
ls /usr/local/httpd2.4/modules/libphp5.so

技術分享圖片

確認Apache的配置文件裏是否加載PHP模塊,途中標紅的一行

技術分享圖片

確認是否添加下圖紅框中的一行
技術分享圖片

Apache默認虛擬主機

Apache虛擬主機就是在一個Apache服務器上配置多個虛擬主機,實現一個服務器提供多站點服務,其實就是訪問同一個服務器上的不同目錄。

為了測試需要,需要修改windows機器上的hosts
進入 C:\Windows\System32\drivers\etc 目錄下,找到一個名為hosts的文檔
打開後添加一行 ,我的測試機 IP地址為192.168.71.131 域名設置為www.mm.com和 www.yy.com 作用就是讓你臨時訪問到一個服務器上去。(在dns還沒生效的時候可以用)
192.168.71.131 www.mm.com www.yy.com

技術分享圖片

編輯 Apache配置文件
vim /usr/local/apache2.4/conf/httpd.conf

搜索關鍵字extra,找到圖中的這兩行,將第二行開頭的‘#’號刪除,

技術分享圖片

打開Apache虛擬主機的配置文件
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

裏面每一個<VirtualHost *:80>都代表一個主機,一個主機就是一個網站。(如果不打開虛擬主機配置文件就只能訪問到一個主機)

我們可以給它定義一下
DocumentRoot 定義網站根目錄

ServerName 定義域名

ServerAlias 定義網站別名,可以寫多個

ErrorLog 指定錯誤日誌

CustomLog 訪問日誌

這樣我們就定義了一個網站(最核心的是網站根目錄,域名,別名)

技術分享圖片

創建目錄

mkdir /data/wwwroot/
mkdir /data/wwwroot/mm.com
mkdir /data/wwwroot/yy.com

在相對應目錄下創建測試文件
vim /data/wwwroot/mm.com/index.php

添加如下內容
<?php
echo "帥陽陽":

vim /data/wwwroot/yy.com/index.php
<?php
echo "我愛你":

檢查配置是否正常,然後重新加載Apache
/usr/local/apache2.4/bin/apachectl -t

/usr/local/apache2.4/bin/apachectl graceful

技術分享圖片

使用curl訪問網站
在主配置文件打開虛擬主機配置文件,一旦虛擬主機配置文件生效那麽DocumentRoot 以及ServicrName就會失效
虛擬主機配置一旦打開生效,那麽可以定義很多個VirtualHost,每個VirtualHos都有一個對應的 DocumentRoot 以及ServerName,ServerName可以寫多個,
每一個VirtualHost都代表一個站點都是一個虛擬主機
比較特殊的是默認虛擬主機,無論任何域名解析到這個IP上都會訪問這虛擬主機

Apache和PHP結合,Apache虛擬主機