国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > Apache > 正文

linux/Apache_PHP結合及Apache默認虛擬主機配置

2024-08-27 18:23:50
字體:
來源:轉載
供稿:網友
  Apache和PHP結合
  配置httpd支持php
  1. 修改配置文件:
  [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前面的#號刪除。
  找到如下內容更改:
  <Directory />
  AllowOverride none
  Require all denied
  </Directory>
  修改如下:
  <Directory />
  AllowOverride none
  Require all granted
  </Directory>
  示例如下:
  修改目的:是允許所有請求訪問,如果不設置該行,則我們訪問的時候會報403錯誤。
  修改二:為了支持PHP,需要增加一行與PHP相關的配置
  找到如下內容:
  AddType application/x-gzip /gz .tgz
  在該行下面添加一行:
  AddType application/x-httpd-php .php
  示例如下:
  修改三:打開一個網站
  找到如下內容:
  <IfModule dir_module>
  DirectoryIndex index.html
  </IfModule>
  將該行修改為:
  <IfModule dir_module>
  DirectoryIndex index.html index.php
  </IfModule>
  示例如下:
  2. 臨時開關80端口命令:
  [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  //刪除規則
  3. 測試配置文件是否正確
  重新加載配置命令:
  [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  //重新加載服務,報錯也不會重啟服務
  4. 測試編輯一個PHP腳本:
  [root@gary-tao src]# vim /usr/local/apache2.4/htdocs/test.php //增加如下內容
  <?php
  phpinfo();
  ?>
  驗證:用瀏覽器打開網址:172.16.110.100/test.php 會在瀏覽器中顯示php的信息。
  解析報錯:
  解決思路:
  檢查php不能解析的原因:
  查看Apache有沒有加載php模塊 /usr/local/apache2.4/bin/apachectl -M , 如果沒有加載就查看有沒有這個文件,如果沒有這個文件就加載不了.
  ls /usr/local/apache2.4/modules/libphp5.so;
  如果有這個文件但并沒有顯示,就檢查配置文件里vim /usr/local/apache2.4/conf/httpd.conf,有沒有加載libphp5.so的配置;
  檢查配置文件里有沒有加這一行:AddType application/x-httpd-php .php,記得在.php前要加空格;
  檢查配置文件里有沒有加index.php;
  結果:發現以上配置都正常,最后發現是index.html用root用戶建的文件,apache權限不夠。注:index.html默認權限是644。
  解決方法:
  更改文件權限;chmod 755 /usr/local/apache2.4/htdocs/index.html
  再次驗證:解析成功
  Apache(httpd)默認虛擬主機
  一臺服務器可以訪問多個網站,每個網站都是一個虛擬主機,概念:域名(主機名)、DNS、解析域名、hosts。任何一個域名解析到這臺機器,都可以訪問的虛擬主機就是默認虛擬主機。
  修改Apache的配置文件:
  編輯配置文件,搜索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 ),就是無論任何域名解析到這個IP上都會訪問這個虛擬主機。當搜索所有配置段,你發現訪問的域名沒有在配置里面出現,那它就會默認走虛擬主機的配置。
  配置文件原文:
  <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>
  內容定義說明:
  ServerAdmin:指定管理員郵箱,這個沒有什么實質作用。
  DocumentRoot:為該虛擬主機站點的根目錄,網站的程序就放在這個目錄下面。
  ServerName:為網站的域名,不支持寫多個
  ServerAlias:為網站的第二域名,只有alias可以寫多個域名,用空格分隔。
  Errorlog:為站點的錯誤日志
  Customlog:為站點的訪問日志。
  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 ——]#
  重點:
  在主配置文件中打開了虛擬主機配置文件Vhosts.conf,那主配置其它配置文件DoucmentRoot與ServerName都失效。
  虛擬主機配置文件一旦打開,它里面可以定義很多個VirtualHos,每一個VirtualHos里面都可以定義DoucmentRoot與ServerName,ServerName可以寫多個,每個VirtualHos都代表一個站點,都是一個虛擬主機。在虛擬主機里面有一個比較特殊的,就是默認虛擬主機,所謂默認虛擬主機,就是無論任何域名解析到這個IP上它都會去訪問這個默認虛擬主機。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 木兰县| 克什克腾旗| 贵港市| 铜梁县| 淅川县| 南漳县| 揭阳市| 德钦县| 双桥区| 丰城市| 锦州市| 杭锦后旗| 广州市| 兴宁市| 慈溪市| 桑日县| 高邮市| 勐海县| 嘉兴市| 卫辉市| 怀柔区| 玉门市| 政和县| 渑池县| 巢湖市| 靖江市| 凤山市| 佛教| 潍坊市| 栖霞市| 大宁县| 台湾省| 金阳县| 南川市| 沙河市| 红桥区| 黑龙江省| 团风县| 万源市| 绥德县| 集安市|