Apache和PHP結合,Apache默認虛擬主機

Apache和PHP結合:

      雖然咱們已經安裝了mysql apache php可是咱們一直沒有把這些服務所有整合到一塊兒組成我們的LAMP。如今咱們就開始:php

1. httpd主配置文件:html

    (一)ServerName   mysql

    (二)Require all deniedlinux

    (三)AddType application/x-httpd-php .phpsql

    (四)DirectoryIndex index.html index.phpapache

(一)有時候咱們在啓動apache(httpd)服務的時候,發現有個警告(並非錯誤)如何取消呢?vim

[root@zhdy-02 ~]# /usr/local/apache2.4/bin/apachectl start 瀏覽器

AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 202.102.110.203. Set the 'ServerName' directive globally to suppress this message服務器

進入編輯httpd:vim /usr/local/apache2.4/conf/httpd.confapp

去掉前面的「#」便可!

 

當咱們使用外部主機訪問咱們配置的httpd,發現以下報錯: 

  • 首先咱們先確認下IP是否能夠ping通!
  • 再次telnet一下站點的80端口.
  • 檢查服務器內的iptables,要麼對全部的80端口的數據包所有放行,要麼就禁掉firewall

[root@zhdy-02 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT    放行80端口

而後再次訪問!

(二)有時候也會有這種狀況:出現 403 forbidden

搜索 /Require,更改Denied 爲以下granted 

每次配置完成以後建議必定要使用以下命令去檢查有沒有錯誤

/usr/local/apache2.4/bin/apachectl -t     能夠檢查配置文件語法是否錯誤

顯示Syntax即沒有問題!! 而後再次加載配置文件!

/usr/local/apache2.4/bin/apachectl graceful     =從新加載配置文件並不會重啓服務   graceful

 

(三)由於須要支持PHP因此咱們要在配置文件中增長一行與PHP相關的配置:

搜索 /AddType, 增長一行以下,注意點前面的空格!(若是不增長則PHP沒法解析)

AddType application/x-httpd-php .php

 

(四)增長一個索引頁面

搜索 /Index, 在原有基礎上增長一個index.php

而後再次的檢查,加載便可!

爲了驗證咱們的PHP支不支持解析咱們須要一個測試頁

而後咱們編寫一個測試頁:vim /usr/local/apache2.4/htdocs/1.php

再次輸入IP地址例:192.168.209.128 就能夠顯示一個很規整的PHP頁面信息,若是不能夠加載,分析以下:

/usr/local/apache2.4/bin/apachectl -M 確認下沒有加載PHP模塊,若是沒有輸入以下去查看一下

 

ls /usr/local/apache2.4/modules/libphp5.so

/usr/local/apache2.4/modules/libphp5.so

 

若是仍是不能夠那就檢查一下httpd配置文件中有沒有加載

vim /usr/local/apache2.4/conf/httpd.conf    裏面是否加入了php解析行

小提示:

當咱們須要查找一個已經輸入的命令的時候,能夠嘗試 ctrl+r 而後輸入關鍵字便可查找!

 

Apache默認虛擬主機:

Windows系統hosts管理

Windows系統中hosts位置「C:\Windows\System32\drivers\etc\hosts」。
用記事本打開該文件:

說明: 在此能夠自定義匹配本地IP和域名,目的是添加臨時訪問地址(在DNS未生效的時候使用)。

 

添加虛擬主機

在hosts文件中添加「192.168.8.131 www.adai.com」便可將本地虛擬主機添加到Windows系統,訪問該域名時會自動解析到本地虛擬主機「ServerName www.example.com:80」。

 

LinuxApache虛擬主機管理

在物理機訪問的域名「www.adai.com」並未在虛擬機Apache配置文件中定義,虛擬機中只定義了「ServerName www.example.com:80」一個域名,該域名即爲Apache的默認主機,此時經過任何一個綁定該虛擬機IP的域名進行訪問都會跳轉到該主機。
由於一臺服務器能夠跑多個域名,爲了方便管理,須要對虛擬主機進行配置

配置虛擬主機

  • 編輯Apache配置文件: vim /usr/local/apache2.4/conf/httpd.conf
  • 搜索 Virtual hosts  而後找到這段配置 把註釋的#號去掉Include conf/extra/httpd-vhosts.conf

 

虛擬主機配置文件:

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost *:80>
    ServerAdmin admin@aminglinux.com     =  能夠直接刪除不用定義郵箱
    DocumentRoot "/data/wwwroot/aming.com"    =  定義網站根目錄
    ServerName aming.com     =  定義網站名稱
    ServerAlias www.aming.com      =  定義網站別名,能夠寫多箇中間用空格分開
    ErrorLog "logs/aming.com-error_log"     =   定義網站錯誤日誌
    CustomLog "logs/aming.com-access_log" common     =  定義網站訪問日誌
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
</VirtualHost>

定義完後的配置文件 ↓


 

而後就須要建立一個網站目錄以及根目錄下面的其餘目錄

mkdir /data/wwwroot/     =建立網站主目錄

mkdir /data/wwwroot/abc.com     =建立根目錄abc.com

mkdir /data/wwwroot/111.com       =  建立根目錄111.com

mkdir /data/wwwroot/abc.com/index.php     =  給對應根目錄下面寫一個PHP測試文件

mkdir /data/wwwroot/111.com/index.php     =   給對應根目錄下面寫一個PHP測試文件

而後檢測php測試文件的語法是否錯誤,若是沒問題那麼重啓服務。

 

虛擬主機測試

在此使用瀏覽器和curl命令分別進行測試。

若是不在虛擬機中進行本地域名配置(hosts),在進行ping命令測試虛擬主機域名時會訪問到外網。

若是想在訪問「abc.com」時指向到本地虛擬機IP,能夠在/etc/hosts文件中指定域名,或者使用curl命令進行訪問,以下:

eg:

  • curl -x 指定訪問IP和端口

注意: 此時訪問全部未定義的域名都會將訪問地址指向到默認虛擬主機,由於已經自定義添加了虛擬主機,因此此時的默認虛擬主機爲配置文件「httpd-vhosts.conf」中的第一個虛擬主機(在此爲abc.com),效果以下:

 

打開虛擬主機文件之後那麼http主配置文件失效。

注: 使用瀏覽器訪問本地虛擬主機IP時會將IP指向到默認虛擬主機,即 abc.com。(若是想回到原來的地址那麼把虛擬主機配置文件中的#號加上註釋掉配置文件便可)

相關文章
相關標籤/搜索