Apache和PHP結合,httpd的虛擬主機配置

httpd配置支持php

上次安裝httpd2.4對應的配置文件:/usr/local/apache2.4/conf/httpd.conf
編輯配置文件,修改如下4個地方
ServerName
Require all denied
AddType application/x-httpd-php .php
DirectoryIndex index.html index.phpphp

  • 編輯配置文件,去掉ServerName前面的#,啓動httpd
[root@test-a ~]# /usr/local/apache2.4/bin/apachectl start
httpd (pid 6328) already running
  • 防火牆打開80端口,測試訪問
# Windows終端: telnet 192.168.77.134  80
正在鏈接192.168.77.134...沒法打開到主機的鏈接。 在端口 80: 鏈接失敗

[root@test-a ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT

# 再次telnet能夠訪問了
  • 若是打開80端口,訪問出現403錯誤,編輯配置把Require all denied 改成 Require all granted
# 改完配置須要從新加載配置,加載前最好檢測配置是否正確
[root@test-a ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK

# 加載配置
[root@test-a ~]# /usr/local/apache2.4/bin/apachectl graceful
  • 配置支持PHP,搜AddType,在"AddType application/x-gzip .gz .tgz"這行下面添加"AddType application/x-httpd-php .php"
  • 增長索引頁,搜索DirectoryIndex,找到以下內容,增長了index.php
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
  • 在目錄/usr/local/apache2.4/htdocs/下編寫php文件,嘗試訪問,例如1.php,訪問http:ip/1.php

httpd的默認虛擬主機

  • 一臺服務器能夠訪問多個網站,每一個網站都是一個虛擬主機
  • 概念:域名(主機名)、DNS、解析域名、hosts 任何一個域名解析到這臺機器,均可以訪問的虛擬主機就是默認虛擬主機
vim /usr/local/apache2/conf/httpd.conf # 搜索httpd-vhost,去掉#,使支持虛擬主機

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf # 改成以下
<VirtualHost *:80>
    ServerAdmin test@163.com  # 管理員郵箱,能夠不用配置
    DocumentRoot "/tmp/web-default" # 網站資源目錄
    ServerName test.com  # 域名
    ServerAlias www.test.com # 域名別名
    ErrorLog "logs/test.com-error_log"  # 錯誤日誌
    CustomLog "logs/test.com-access_log" common # 訪問日誌
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/tmp/web-1/"
    ServerName www.123.com
</VirtualHost>
[root@test-a apache2.4]# bin/apachectl -t
Syntax OK
[root@test-a apache2.4]# bin/apachectl graceful

編寫測試文件1.php放到/tmp/web-default目錄下,2.php放到/tmp/web-1/下, 訪問測試html

[root@test-a apache2.4]# curl  -x 192.168.77.134:80  test.com
1.php
[root@test-a apache2.4]# curl  -x 192.168.77.134:80  www.test.com
1.php
[root@test-a apache2.4]# curl  -x 192.168.77.134:80  www.123.com
2.php
[root@test-a apache2.4]# curl  -x 192.168.77.134:80 www.example.com # 訪問默認虛擬主機
1.php
相關文章
相關標籤/搜索