1. 程式人生 > >apache和php結合、apache的默認虛擬主機

apache和php結合、apache的默認虛擬主機

rtu his 解析 -a director rom 虛擬 rac extra

一:apache和php結合

修改 apache 配置文件
#vi /usr/local/apache2/conf/httpd.conf
找到:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>
改為:
<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
說明:如果不修改這個地方,我們訪問網站會禁止訪問,顯示 403。

然後找到:
AddType application/x-gzip .gz .tgz
在該行下面添加:
AddType application/x-httpd-php .php
說明,要想支持 php 腳本解析,必須要加上對應的類型。
再找到:
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>
將該行改為:
<IfModule dir_module>
DirectoryIndex index.html index.htm index.php
</IfModule>
說明: 增加針對 php 的索引,如果一個站點默認頁為 index.php,那麽就得加上這個
index.php 的支持。
再找到:
#ServerName www.example.com:80
修改為:
ServerName localhost:80
如果不去掉#,則啟動 apache 時,會有警告信息“httpd: Could not reliably determine the
server‘s fully qualified domain name, using localhost.localdomain for ServerName”,看起來像是
錯誤,其實沒有影響。
查看配置文件是否有問題:
/usr/local/apache2/bin/apachectl -t
如果顯示 Syntax OK,說明配置沒問題了。然後啟動服務:
/usr/local/apache2/bin/apachectl start
檢查 apache 是否正常啟動的命令是:
ps aux |grep httpd
看有沒有進程列表。

vi /usr/local/apache2/htdocs/1.php
寫入:
<?php
echo "php works.";
?>
保存後,繼續測試:
curl localhost/1.php
php works. 只有顯示這個信息,才算正常解析。否則就是沒有成功解析。當然,你也可
以用真機上的瀏覽器通過 ip 訪問,比如你的虛擬機 ip 為 192.168.1.101,那麽在瀏覽器輸入
http://192.168.1.101/1.php 看是否只顯示一行 php works. 如果你的訪問不太順暢,請檢測
iptables 規則。
iptables -nvL
如果有一些規則,請執行
iptables -F
service iptables save

二:apache默認虛擬主機

vim /usr/local/apache2/conf/extra/httpd-vhosts.conf
把下面的配置:
<VirtualHost :80>
ServerAdmin [email protected]
DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
修改為:
<VirtualHost
:80>
DocumentRoot "/tmp/tmp"
ServerName tmp.com
<Directory /tmp/tmp/>
Order allow,deny
Deny from all
</Directory>
創建配置中提到的目錄
#mkdir /tmp/tmp
chmod 600 /tmp/tmp
/usr/local/apache2/bin/apachectl graceful #重新加載
其實這個默認虛擬主機就是配置文件裏的第一個虛擬主機。關於默認虛擬主機有個特
點,凡是解析到這臺機器的域名,不管是什麽域名,只要在配置文件中沒有配置,那麽都會
訪問到這個主機上來。 舉例,我們直接用ip 訪問,會訪問到這個站點上來。為了避免別人
亂解析,所以應該把默認也就是第一個虛擬主機給禁止掉。在這裏我們使用allow,deny語句,
已經禁掉了,至於它的含義,後面會介紹。這時候,我們用 ip去訪問,發現已經提示:
Forbidden
You don‘t have permission to access / on this server.

apache和php結合、apache的默認虛擬主機