[root@gary-tao php-7.1.6]# vim /usr/local/apache2.4/conf/httpd.conf
修改httpd的主配置文件/usr/local/apache2.4/conf/httpd.conf
,搜索ServerName,把#ServerName www.example.com:80前面的#號刪除。php
找到以下內容更改:html
<Directory /> AllowOverride none Require all denied </Directory>
修改以下:linux
<Directory /> AllowOverride none Require all granted </Directory>
示例以下:web
修改目的:是容許全部請求訪問,若是不設置該行,則咱們訪問的時候會報403錯誤。apache
找到以下內容:vim
AddType application/x-gzip /gz .tgz
在該行下面添加一行:瀏覽器
AddType application/x-httpd-php .php
示例以下:
服務器
找到以下內容:app
<IfModule dir_module> DirectoryIndex index.html </IfModule>
將該行修改成:curl
<IfModule dir_module> DirectoryIndex index.html index.php </IfModule>
示例以下:
[root@gary-tao php-7.1.6]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT //添加規則 [root@gary-tao php-7.1.6]# iptables -D INPUT -p tcp --dport 80 -j ACCEPT //刪除規則
從新加載配置命令:
[root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl -t //檢查配置語法是否正確,正常顯示「Syntax OK」 Syntax OK [root@gary-tao php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful //從新加載服務,報錯也不會重啓服務
[root@gary-tao src]# vim /usr/local/apache2.4/htdocs/test.php //增長以下內容 <?php phpinfo(); ?>
驗證:用瀏覽器打開網址:172.16.110.100/test.php 會在瀏覽器中顯示php的信息。
解決思路:
檢查php不能解析的緣由:
結果:發現以上配置都正常,最後發現是index.html用root用戶建的文件,apache權限不夠。注:index.html默認權限是644。
解決方法:
更改文件權限;chmod 755 /usr/local/apache2.4/htdocs/index.html
再次驗證:解析成功
一臺服務器能夠訪問多個網站,每一個網站都是一個虛擬主機,概念:域名(主機名)、DNS、解析域名、hosts。任何一個域名解析到這臺機器,均可以訪問的虛擬主機就是默認虛擬主機。
編輯配置文件,搜索httpd-vhost,去掉#號,而後保存配置文件:
[root@gary-tao ~]# vim /usr/local/apache2.4/conf/httpd.conf
示例以下:
2.修改虛擬主機配置文件:
編輯虛擬主機配置文件:
[root@gary-tao ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
備註:
每一個VirtualHost *:80 表明一個主機,一個主機就是一個網站,虛擬主機配置文件能夠定義多個VirtualHost。
配置文件原文:
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "/usr/local/apache2.4/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> ServerAdmin webmaster@dummy-host2.example.com DocumentRoot "/usr/local/apache2.4/docs/dummy-host2.example.com" ServerName dummy-host2.example.com ErrorLog "logs/dummy-host2.example.com-error_log" CustomLog "logs/dummy-host2.example.com-access_log" common </VirtualHost>
修改後:
<VirtualHost *:80> DocumentRoot "/data/wwwroot/abc.com" ServerName abc.com ServerAlias www.abc.com www.123.com ErrorLog "logs/abc.com-error_log" CustomLog "logs/abc.com-access_log" common </VirtualHost> <VirtualHost *:80> DocumentRoot "/data/wwwroot/111.com" ServerName 111.com ServerAlias www.example.com ErrorLog "logs/111.com-error_log" CustomLog "logs/111.com-access_log" common </VirtualHost>
3.更改完成配置文件後須要在/data目錄下建立對應的目錄文件:
[root@gary-tao ~]# mkdir /data/wwwroot/ [root@gary-tao ~]# mkdir /data/wwwroot/abc.com [root@gary-tao ~]# mkdir /data/wwwroot/111.com
4.在對應的站點根目錄下定義一個index.php文件:
[root@gary-tao ~]# vim /data/wwwroot/abc.com/index.php 定義內容以下: <?php echo "abc.com"; ?> [root@gary-tao ~]# vim /data/wwwroot/111.com/index.php 定義內容以下: <?php echo "111.com"; ?>
5.檢查配置文件語法是否正確:
[root@gary-tao ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK
6.從新加載配置文件:
[root@gary-tao ~]# /usr/local/apache2.4/bin/apachectl graceful
7.若是想訪問abc.com在本機的機器上,能夠編輯vim /etc/hosts文件使用curl -x命令,示例以下:
[root@gary-tao ~]# curl -x172.16.111.100:80 abc.com abc.com[root@gary-tao ~]# curl -x172.16.111.100:80 abcd.com abc.com[root@gary-tao ~]# curl -x172.16.111.100:80 abcde.com //不管咱們有沒有配置域名abcd.com或其它域名,它都會訪問到abc.com,由於abc.com是默認的虛擬主機。 abc.com[root@gary-tao ~]# curl -x172.16.111.100:80 www.example.com 「111com」[root@gary-tao ~]#
重點: