雖然咱們已經安裝了mysql apache php可是咱們一直沒有把這些服務所有整合到一塊兒組成我們的LAMP。如今咱們就開始:php
1. httpd主配置文件:html
(一)ServerName mysql
(二)Require all deniedlinux
(三)AddType application/x-httpd-php .phpsql
(四)DirectoryIndex index.html index.phpapache
(一)有時候咱們在啓動apache(httpd)服務的時候,發現有個警告(並非錯誤)如何取消呢?vim
[root@zhdy-02 ~]# /usr/local/apache2.4/bin/apachectl start 瀏覽器
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 202.102.110.203. Set the 'ServerName' directive globally to suppress this message服務器
進入編輯httpd:vim /usr/local/apache2.4/conf/httpd.confapp
去掉前面的「#」便可!
當咱們使用外部主機訪問咱們配置的httpd,發現以下報錯:
[root@zhdy-02 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT 放行80端口
而後再次訪問!
(二)有時候也會有這種狀況:出現 403 forbidden
搜索 /Require,更改Denied 爲以下granted
每次配置完成以後建議必定要使用以下命令去檢查有沒有錯誤
/usr/local/apache2.4/bin/apachectl -t 能夠檢查配置文件語法是否錯誤
顯示Syntax即沒有問題!! 而後再次加載配置文件!
/usr/local/apache2.4/bin/apachectl graceful =從新加載配置文件並不會重啓服務 graceful
(三)由於須要支持PHP因此咱們要在配置文件中增長一行與PHP相關的配置:
搜索 /AddType, 增長一行以下,注意點前面的空格!(若是不增長則PHP沒法解析)
AddType application/x-httpd-php .php
(四)增長一個索引頁面
搜索 /Index, 在原有基礎上增長一個index.php
而後再次的檢查,加載便可!
爲了驗證咱們的PHP支不支持解析咱們須要一個測試頁
而後咱們編寫一個測試頁:vim /usr/local/apache2.4/htdocs/1.php
再次輸入IP地址例:192.168.209.128 就能夠顯示一個很規整的PHP頁面信息,若是不能夠加載,分析以下:
/usr/local/apache2.4/bin/apachectl -M 確認下沒有加載PHP模塊,若是沒有輸入以下去查看一下
ls /usr/local/apache2.4/modules/libphp5.so
/usr/local/apache2.4/modules/libphp5.so
若是仍是不能夠那就檢查一下httpd配置文件中有沒有加載
vim /usr/local/apache2.4/conf/httpd.conf 裏面是否加入了php解析行
小提示:
當咱們須要查找一個已經輸入的命令的時候,能夠嘗試 ctrl+r 而後輸入關鍵字便可查找!
Windows系統中hosts位置「C:\Windows\System32\drivers\etc\hosts」。
用記事本打開該文件:
說明: 在此能夠自定義匹配本地IP和域名,目的是添加臨時訪問地址(在DNS未生效的時候使用)。
在hosts文件中添加「192.168.8.131 www.adai.com」便可將本地虛擬主機添加到Windows系統,訪問該域名時會自動解析到本地虛擬主機「ServerName www.example.com:80」。
在物理機訪問的域名「www.adai.com」並未在虛擬機Apache配置文件中定義,虛擬機中只定義了「ServerName www.example.com:80」一個域名,該域名即爲Apache的默認主機,此時經過任何一個綁定該虛擬機IP的域名進行訪問都會跳轉到該主機。
由於一臺服務器能夠跑多個域名,爲了方便管理,須要對虛擬主機進行配置
虛擬主機配置文件:
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin admin@aminglinux.com = 能夠直接刪除不用定義郵箱
DocumentRoot "/data/wwwroot/aming.com" = 定義網站根目錄
ServerName aming.com = 定義網站名稱
ServerAlias www.aming.com = 定義網站別名,能夠寫多箇中間用空格分開
ErrorLog "logs/aming.com-error_log" = 定義網站錯誤日誌
CustomLog "logs/aming.com-access_log" common = 定義網站訪問日誌
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/www.123.com"
ServerName www.123.com
</VirtualHost>
定義完後的配置文件 ↓
而後就須要建立一個網站目錄以及根目錄下面的其餘目錄
mkdir /data/wwwroot/ =建立網站主目錄
mkdir /data/wwwroot/abc.com =建立根目錄abc.com
mkdir /data/wwwroot/111.com = 建立根目錄111.com
mkdir /data/wwwroot/abc.com/index.php = 給對應根目錄下面寫一個PHP測試文件
mkdir /data/wwwroot/111.com/index.php = 給對應根目錄下面寫一個PHP測試文件
而後檢測php測試文件的語法是否錯誤,若是沒問題那麼重啓服務。
在此使用瀏覽器和curl命令分別進行測試。
若是不在虛擬機中進行本地域名配置(hosts),在進行ping命令測試虛擬主機域名時會訪問到外網。
若是想在訪問「abc.com」時指向到本地虛擬機IP,能夠在/etc/hosts文件中指定域名,或者使用curl命令進行訪問,以下:
eg:
注意: 此時訪問全部未定義的域名都會將訪問地址指向到默認虛擬主機,由於已經自定義添加了虛擬主機,因此此時的默認虛擬主機爲配置文件「httpd-vhosts.conf」中的第一個虛擬主機(在此爲abc.com),效果以下:
打開虛擬主機文件之後那麼http主配置文件失效。
注: 使用瀏覽器訪問本地虛擬主機IP時會將IP指向到默認虛擬主機,即 abc.com。(若是想回到原來的地址那麼把虛擬主機配置文件中的#號加上註釋掉配置文件便可)