国产探花免费观看_亚洲丰满少妇自慰呻吟_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上它都會去訪問這個默認虛擬主機。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 沙坪坝区| 万盛区| 定边县| 海伦市| 吉隆县| 三门县| 南靖县| 梁平县| 天水市| 新龙县| 体育| 耿马| 长汀县| 汝阳县| 昂仁县| 红原县| 双城市| 大安市| 榕江县| 通州市| 霸州市| 河西区| 荣成市| 万宁市| 荃湾区| 肥东县| 白城市| 乐安县| 山阴县| 行唐县| 霍林郭勒市| 西林县| 威信县| 新余市| 蒲江县| 都江堰市| 扶沟县| 田东县| 临澧县| 鞍山市| 诸城市|