11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机
2019獨角獸企業(yè)重金招聘Python工程師標(biāo)準(zhǔn)>>>
?
11.14-11.15 Apache和PHP結(jié)合
Apache(httpd)的配置文件:/usr/local/apache2.4/conf/httpd.conf。
配置Apache
選擇要調(diào)用的PHP
因為本機(jī)安裝了兩個版本的PHP,所以需要進(jìn)行該配置,如果只裝一個PHP服務(wù)則會默認(rèn)調(diào)用存在的PHP服務(wù)(在此選用PHP5)。
如果啟用兩個可能會出現(xiàn)
[root@cham002 ~]# /usr/local/apache2.4/bin/apachectl restart httpd not running, trying to start /usr/local/apache2.4/bin/apachectl: 行 79: 12546 段錯誤 $HTTPD -k $ARGV [root@cham002 ~]# vim /usr/local/apache2.4/conf/httpd.conf把libphp7.so ?用#注釋掉?,指定Apache調(diào)用PHP5
把ServerName 的#號去掉,就不會在出現(xiàn)提示了
[root@cham002 ~]# /usr/local/apache2.4/bin/apachectl restart AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::6f15:52d3:ebeb:e193. Set the 'ServerName' directive globally to suppress this message 把servername 打開,上面這個提示就不會在提示了[root@cham002 ~]# /usr/local/apache2.4/bin/apachectl stop [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl start [root@cham002 ~]# ps aux |grep httpd root 12647 0.2 0.8 253584 8808 ? Ss 14:39 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 12648 0.0 0.6 540412 6932 ? Sl 14:39 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 12676 0.0 0.6 540412 6928 ? Sl 14:39 0:00 /usr/local/apache2.4/bin/httpd -k start daemon 12677 0.0 0.6 540412 6928 ? Sl 14:39 0:00 /usr/local/apache2.4/bin/httpd -k start root 12733 0.0 0.0 112684 976 pts/1 S+ 14:39 0:00 grep --color=auto httpd添加監(jiān)聽80端口的規(guī)則:
[root@cham002 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT [root@cham002 ~]# iptables -nvL Chain INPUT (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 8 1148 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 25324 53M ACCEPT all -- * * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED1 60 ACCEPT icmp -- * * 0.0.0.0/0 0.0.0.0/0 5 400 ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0 2 104 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22722 70838 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain FORWARD (policy ACCEPT 0 packets, 0 bytes)pkts bytes target prot opt in out source destination 0 0 REJECT all -- * * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibitedChain OUTPUT (policy ACCEPT 13 packets, 1883 bytes)pkts bytes target prot opt in out source destination若是linux重啟后需要重新增加80端口規(guī)則
進(jìn)行Apache的配置
說明:?將此處的“Require all denied”改為“Require all granted”。
[root@cham002 ~]# vim /usr/local/apache2.4/conf/httpd.conf 檢測配置是否存在語法錯誤: [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK重新加載服務(wù): [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl graceful 注:該命令不會使服務(wù)重啟,只是加載配置文件的內(nèi)容。說明:?至此,可以使用瀏覽器直接訪問本地虛擬機(jī)IP。
添加PHP服務(wù)
授權(quán)PHP服務(wù)解析本機(jī)服務(wù)器
[root@cham002 ~]# vim /usr/local/apache2.4/conf/httpd.conf #AddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddType application/x-httpd-php .php#說明:?在此添加“AddType application/x-httpd-php .php”,意思是允許PHP服務(wù)解析該服務(wù)器。
?
增加索引頁
[root@cham002 ~]# vim /usr/local/apache2.4/conf/httpd.conf <IfModule dir_module>DirectoryIndex index.html index.php </IfModule>檢測、加載: [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl graceful說明:?在此添加“index.php”,
?
檢測服務(wù)器是否支持PHP解析:
[root@cham002 ~]# vim /usr/local/apache2.4/htdocs/1.php<?php phpinfo() #該參數(shù)的含義是PHP的信息 ?> #該命令的含義是:在訪問該地址時,直接打印PHP的相關(guān)信息說明:?創(chuàng)建一個php文件,然后使用瀏覽器訪問該文件(此時不需要重啟服務(wù)器):
即,可以正常訪問,說明該服務(wù)器支持PHP解析,如果不支持php解析的話,訪問該文件時會顯示源代碼。
完成PHP解析配置!
?
常見故障:
故障:?服務(wù)器無法進(jìn)行PHP解析!
解決辦法:
檢查Apache是否已加載PHP模塊
[root@cham002 ~]# /usr/local/apache2.4/bin/apachectl -M Loaded Modules:core_module (static)so_module (static)http_module (static)mpm_event_module (static)authn_file_module (shared)authn_core_module (shared)authz_host_module (shared)authz_groupfile_module (shared)authz_user_module (shared)authz_core_module (shared)access_compat_module (shared)auth_basic_module (shared)reqtimeout_module (shared)filter_module (shared)mime_module (shared)log_config_module (shared)env_module (shared)headers_module (shared)setenvif_module (shared)version_module (shared)unixd_module (shared)status_module (shared)autoindex_module (shared)dir_module (shared)alias_module (shared)php5_module (shared) 看有沒有加載PHP5 如果沒有用ls看看有沒有這個模塊文件 [root@cham002 ~]# ls /usr/local/apache2.4/modules/libphp5.so /usr/local/apache2.4/modules/libphp5.so 如果有文件,在檢查一下配置文件有沒有加載[root@cham002 ~]# vim /usr/local/apache2.4/conf/httpd.conf #LoadModule rewrite_module modules/mod_rewrite.so LoadModule php5_module modules/libphp5.so #LoadModule php7_module modules/libphp7.so 則檢查Apache配置文件中有沒有加載PHP的配置:AddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddType application/x-httpd-php .php 這行是有空格的注意!!!!!!檢查配置文件是否存在語法錯誤。寫錯了是可以檢查出來的 [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK還有就是檢查是否有索引頁 <IfModule dir_module>DirectoryIndex index.html index.php </IfModule>?
Apache配置PHP7解析
編輯配置文件(調(diào)用PHP7):
[root@cham002 ~]# vim /usr/local/apache2.4/conf/httpd.conf #LoadModule php5_module modules/libphp5.so LoadModule php7_module modules/libphp7.so檢測、加載: [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl graceful說明:?因在進(jìn)行PHP5解析配置時已完成其他相關(guān)配置,所以在此只需更改要調(diào)用的PHP版本即可,如果初次配置,操作同PHP5.
補(bǔ)充:快捷鍵 Ctrl+r
ctrl+r用途:反向搜索并調(diào)用執(zhí)行過的命令。(reverse-i-search)。
使用方法:按ctrl+r后命令行會變成“(reverse-i-search)`': ”狀態(tài),然后輸入使用過的參數(shù),此時會直接顯示出相關(guān)的命令,回車即可執(zhí)行該命令。
?
?
11.16-11.17 Apache默認(rèn)虛擬主機(jī)
Windows系統(tǒng)hosts管理
Windows系統(tǒng)中hosts位置“C:\Windows\System32\drivers\etc\hosts”。
用記事本打開該文件:
說明:?在此可以自定義匹配本地IP和域名,目的是添加臨時訪問地址(在DNS未生效的時候使用)。
?
添加虛擬主機(jī)
在hosts文件中添加“192.168.230.135 www.adai.com”即可將本地虛擬主機(jī)添加到Windows系統(tǒng),訪問該域名時會自動解析到本地虛擬主機(jī)“ServerName www.example.com:80”。
LinuxApache虛擬主機(jī)管理
在物理機(jī)訪問的域名“www.adai.com”并未在虛擬機(jī)Apache配置文件中定義,虛擬機(jī)中只定義了“ServerName www.example.com:80”一個域名,該域名即為Apache的默認(rèn)主機(jī),此時通過任何一個綁定該虛擬機(jī)IP的域名進(jìn)行訪問都會跳轉(zhuǎn)到該主機(jī)。
因為一臺服務(wù)器可以跑多個域名,為了方便管理,需要對虛擬主機(jī)進(jìn)行配置:
配置虛擬主機(jī)
編輯Apache配置文件:
[root@cham002 ~]# vim /usr/local/apache2.4/conf/httpd.conf # Virtual hosts Include conf/extra/httpd-vhosts.conf把#號去到打開一個二級配置文件說明:?編輯“Virtual hosts(虛擬主機(jī))”的參數(shù),去掉#,啟用虛擬主機(jī)配置文件“httpd-vhosts.conf”。
注:?Apache也支持單獨管理每個虛擬主機(jī),配置參數(shù)如下:
該配置文件下每組“< VirtualHost *:80 >”代表一個主機(jī)(即:一個網(wǎng)站):
[root@cham002 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf <VirtualHost *:80>DocumentRoot "/data/wwwroot/abc.com" #指定域名所指向的地址ServerName abc.com #定義網(wǎng)站名稱ServerAlias www.abc.com www.123.com #設(shè)置別名(可設(shè)置多個)ErrorLog "logs/abc.com-error_log"CustomLog "logs/abc.com-access_log" common#日志文件 </VirtualHost><VirtualHost *:80>DocumentRoot "data/wwwroot/111.com"ServerName 111.comServerAlias www.example.comErrorLog "logs/111.com-error_log"CustomLog "logs/111.com-access_log" common </VirtualHost>此時即定義了一個網(wǎng)站,定義網(wǎng)站的核心參數(shù)即為:DocumentRoot(網(wǎng)站根目錄)、ServerName(域名)。
注意:?虛擬主機(jī)生效后,原Apache配置文件中的默認(rèn)主機(jī)(www.example.com ~ 192.168.8.131)就會失效(在此用www.example.com ~ 111.com進(jìn)行驗證)。
添加虛擬主機(jī)相應(yīng)目錄
[root@cham002 ~]# mkdir /data/wwwroot/ [root@cham002 ~]# mkdir /data/wwwroot/abc.com [root@cham002 ~]# mkdir /data/wwwroot/111.com在相應(yīng)目錄創(chuàng)建PHP文件:
[root@cham002 ~]# vim /data/wwwroot/abc.com/index.php <?php echo "welcome to 111.com"; ?>[root@cham002 ~]# vim /data/wwwroot/111.com/index.php <?php echo "welcome to 111.com"; ?>檢測、重載Apache配置文件:
檢測出錯誤了! /usr/local/apache2.4/data/wwwroot/111.com 不存在? [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl -t AH00112: Warning: DocumentRoot [/usr/local/apache2.4/data/wwwroot/111.com] does not exist Syntax OK重新檢查配置文件發(fā)現(xiàn)少了個 斜杠 ?/
再次檢測、重載Apache配置文件:
[root@cham002 ~]# /usr/local/apache2.4/bin/apachectl -t Syntax OK [root@cham002 ~]# /usr/local/apache2.4/bin/apachectl graceful虛擬主機(jī)測試
在此使用瀏覽器和curl命令分別進(jìn)行測試。
如果不在虛擬機(jī)中進(jìn)行本地域名配置(hosts),在進(jìn)行ping命令測試虛擬主機(jī)域名時會訪問到外網(wǎng)。
- curl -x 指定訪問端口
注意:?此時訪問所有未定義的域名都會將訪問地址指向到默認(rèn)虛擬主機(jī),因為已經(jīng)自定義添加了虛擬主機(jī),所以此時的默認(rèn)虛擬主機(jī)為配置文件“httpd-vhosts.conf”中的第一個虛擬主機(jī)(在此為abc.com),效果如下:
[root@cham002 ~]# curl -x192.168.230.135:80 abce.com welcome to abc.com使用服務(wù)器訪問
注:?使用瀏覽器訪問本地虛擬主機(jī)IP時會將IP指向到默認(rèn)虛擬主機(jī),即 abc.com。
轉(zhuǎn)載于:https://my.oschina.net/u/3708120/blog/1592328
總結(jié)
以上是生活随笔為你收集整理的11.14/11.15 Apache和PHP结合 11.16/11.17 Apache默认虚拟主机的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rsync远程同步——(实战!)
- 下一篇: 美团数据:独库公路通车满月搜索量涨200