Apache和PHP結合總結

一、Apache和PHP結合

以下配置的:訪問網站是第一步的截圖:
mark
第二步的截圖:mark
第三步的結果截圖:mark
測試php腳本截圖:
markphp

[root@chy ~]# cat /usr/local/apache2.4/conf/httpd.conf
(apache的主配置文件)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl restart
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::338e:589c:fa07:65e5. Set the 'ServerName' directive globally to suppress this message
httpd not running, trying to start
/usr/local/apache2.4/bin/apachectl: 行 79: 32220 段錯誤  (吐核)$HTTPD -k $ARGV
(啓動apache時報錯的緣由是由於個人服務器裏有兩個php,一個是php5一個是php7在這裏須要只調用一個php,步驟以下:
[root@chy ~]# 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
(在主配置文件裏面找到php模塊,而後註釋其中一個php,我註釋的是php7)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl restart
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using fe80::338e:589c:fa07:65e5. Set the 'ServerName' directive globally to suppress this message
(啓動時會有這一行的提示信息,此信息並非報錯的信息。若是不想它出現執行以下步驟:
[root@chy ~]# vim /usr/local/apache2.4/conf/httpd.conf
ServerName www.example.com:80
將主配置文件裏面的ServerNname的註釋打開)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl restart
(而後就沒有提示了)
若是遇到訪問網站時沒法訪問時排錯步驟以下:
第一步查看服務器的地址是否能互通。在windowsping時能夠ping通(看截圖的結果)
第二步是否能夠telnet到服務器的機器
telnet不成功的緣由是由於iptables的規則並無放通80的端口。
第三步
[root@chy ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT
(增長一條規則,是容許80端口經過)
[root@chy ~]# iptables -nvL
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
 2917  237K ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,
(查看規則能夠查到)
(第三步網頁的結果如截圖)
第四步須要更改主配置文件
[root@chy ~]# !vi
vim /usr/local/apache2.4/conf/httpd.conf
<Directory />
    AllowOverride none
    Require all granted
</Directory>
(在配置文件找到此行將Require all denied 變爲 Require all granted)
 Require all granted
(在配置文件裏面有這一行,將此granted變爲denied 以下所示:
Require all granted
(作這個步驟是爲了檢驗若是把require更改成denied是否能夠訪問網頁,最後切記要改回granted)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
( -t 是檢查配置文件的語法是否正確)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
(這個是從新加載配置文件與從新啓動是有區別的,從新啓動要殺死進程而後在打開,而從新加載文件只是加載文件,並不會殺死進程)
[root@chy ~]# vim /usr/local/apache2.4/conf/httpd.conf
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
(在主配置文件中如上位置增長以下配置,增長的含義是能夠解析,若是不增長就解析不了)
    AddType application/x-httpd-php .php

    <IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
(而後找到index 增長一行index.php)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
(每次更改過配置文件後都須要從新增長配置文件)
[root@chy ~]# vim /usr/local/apache2.4/htdocs/1.php
<?php
phpinfo();
?>
(1.php是測試腳本,在此腳本配置文件裏面增長如上選項便可)
訪問時:http://192.168.212.10/1.php
(此訪問效果看測試php腳本截圖)

如上是php5的測試:以下開始php7的測試:
此截圖是測試php7的截圖 markhtml

[root@chy ~]# vim /usr/local/apache2.4/conf/httpd.conf
#LoadModule php5_module        modules/libphp5.so
LoadModule php7_module        modules/libphp7.so
(在主配置文件裏面找到5的7的把以前打開的php5註釋,將php打開)
[root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
(加載配置文件)
測試php7的結果如圖
在這裏須要說明的是由於個人虛擬機裏面有兩個php,以前在測試php5的時候在主配置文件都增長過php解析。)

二、apache默認虛擬主機(總結)

"虛擬主機"是指在一個機器上運行多個網站(好比:www.company1.com 和 www.company2.com )。若是每一個網站擁有不一樣的IP地址,則虛擬主機能夠是"基於IP"的;若是隻有一個IP地址,也能夠是"基於主機名"的,其實現對最終用戶是透明的。物理服務器只有一個,並且web服務器也只有一個,卻能夠服務多個不一樣的站點。
markweb

windos的虛擬主機配置文件的位置在c盤下的windos-system32-drivers-etc目錄下(由於個人windos系統是wind8系統,因此我首先用搜索找到記事本並用管理員權限去運行如不這樣操做會致使最後增長的東西增長不了。)
192.168.212.10 www.chy.com   www.lf.com (這是我在windows配置文件裏面增長了以下的配置)
在windows下的的cmd裏面ping 192.168.212.10 能夠ping通
[root@chy ~]# vim  /usr/local/apache2.4/conf/httpd.conf (虛擬主機配置文件介紹以下)
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
(在httpd配置文件裏面找到 virtual hosts 打開配置文件。此配置文件是虛擬主機的配置文件)
[root@chy ~]# vim  /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
(虛擬主機配置文件)
<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表明的是一個主機,表明的是一個網站)
(這裏須要注意的是一旦定義了虛擬主機配置文件,主機配置文件的定義的網站就會失效)
[root@chy ~]# vim  /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias bbb.com
    #ErrorLog "logs/dummy-host.example.com-error_log"
    #CustomLog "logs/dummy-host.example.com-access_log" common
#
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/abc.com"
    ServerName abc.com
    ServerAlias bbb.com
    #ErrorLog "logs/dummy-host.example.com-error_log"(先暫時關閉日誌生成文件)
    #CustomLog "logs/dummy-host.example.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/111.com"
    ServerName 111.com
    ServerAlias www.exaple.com
    #ErrorLog "logs/dummy-host2.example.com-error_log"
    #CustomLog "logs/dummy-host2.example.com-access_log" common
</VirtualHost>
(如上定義的是虛擬主機配置文件)
[root@chy ~]# mkdir -p /data/wwwroot/abc.com
[root@chy ~]# mkdir /data/wwwroot/111.com
[root@chy ~]# mkdir -p /data/wwwroot/111.com
建立網站的根目錄,此目錄是須要跟虛擬機主機裏面的目錄的路徑一致)
[root@chy ~]# vim /data/wwwroot/abc.com/index.php
<?php
echo "abc.com";
php?>
(在abc網站定義php)
一樣的方式在111.com網站裏面也要定義php:步驟以下
[root@chy ~]# vim /data/wwwroot/111.com/index.php
<?php
echo "111.com";
php?>
[root@chy ~]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
(檢查配置文件是否正常)
用ctrl+r搜索關鍵字 便可:
[root@chy ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@chy ~]# curl -x192.168.212.10:80 abc.com
abc.com[root@chy ~]# curl -x192.168.212.10:80 abcd.com
(用curl -x測試)

curl命令是一個利用URL規則在命令行下工做的文件傳輸工具。它支持文件的上傳和下載,因此是綜合傳輸工具,但按傳統,習慣稱curl爲下載工具。做爲一款強力工具,curl支持包括HTTP、HTTPS、ftp等衆多協議,還支持POST、cookies、認證、從指定偏移處下載部分文件、用戶代理字符串、限速、文件大小、進度條等特徵。作網頁處理流程和數據檢索自動化,curl能夠祝一臂之力。
-x/--proxy <host[:port]> 在給定的端口上使用HTTP代理 (curl -x的含義)
擴展apache

相關文章
相關標籤/搜索