1. 程式人生 > >Linux20180528 apache結合php 虛擬主機

Linux20180528 apache結合php 虛擬主機

apache結合php使用 虛擬主機

5月28日任務

11.14/11.15 Apache和PHP結合
11.16/11.17 Apache默認虛擬主機

技術分享圖片

1. 首先看一下:

技術分享圖片

這是個警告,雖然並非錯誤但是可以取消掉。辦法就是去定義好 servername


vim /usr/local/apache2/conf/httpd.conf,將servername前面的#去掉即可

技術分享圖片

技術分享圖片


2. 增加一行配置

Require all denied 改成 allowed 這樣就可以被訪問到了!telnet訪問肯定不行,因為80端口尚未打開。看下圖,無法用telnet訪問

技術分享圖片

需要修改配置文件 vim /usr/local/apache2/conf/httpd.conf require all granted

技術分享圖片


/usr/local/apache2/bin/apachectl -t 用來檢查配置文件的語法是否正確

技術分享圖片


/usr/local/apache2/bin/apachectl graceful 重新加載配置文件 不會影響進程


3. 增加一行與php相關的配置。 搜AddType 然後增加一行可以讓php解析的語句

AddType application/x-httpd-php .php

技術分享圖片


4. 在/htodcs下放一個文件,php 文件 看是否加載php。

但是失敗了。

原因是防火墻的設置忘記設置了,所以沒有打開80端口。

iptables -I INPUT -p tcp --dport 80 -j ACCEPT 臨時打開80端口就好了。 技術分享圖片


註意,同樣將php5換成7也可以成立。



Apache默認虛擬主機


技術分享圖片


可以理解成在一個httpd服務下運行了多個網站,域名。每個域名對應的是一個虛擬主機。

有一個httpd配置文件的位置,DocumentRoot定義了網站的根目錄的位置。ServerName定義的就是域名。


首先從windows下來進行理解。

windows下hosts的地址是 C:\Windows\System32\drivers\etc\hosts

# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
#	127.0.0.1       localhost
#	::1             localhost

可以在這裏面定義一個ip 域名,讓域名指向ip

技術分享圖片

然後訪問www.163.com就變成了訪問192.168.202.123

技術分享圖片

技術分享圖片

這樣就臨時改變了一個域名對應的ip, 這是在DNS未生效的情況下使用


Linux下的虛擬主機 apache配置文件中 virtual hosts

技術分享圖片

將這個註釋取消後,就可以去到一個二級文件目錄對虛擬主機進行定義。

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

每一對成對出現的 VirtualHost標簽就代表一個主機的定義。第一個是默認的虛擬主機。

技術分享圖片

如果虛擬目錄生效的話,apache的配置文件裏的servername就失效了。

技術分享圖片

然後在對應的位置創建目錄以及index測試文件。

技術分享圖片


測試虛擬主機

curl 命令來實現訪問虛擬主機


curl -x192.168.202.123:80 www.goau.com.au

技術分享圖片


Linux20180528 apache結合php 虛擬主機