LAMP架构(apache与php结合,apache默认虚拟主机)
一、apache與php結合
主配置文件/usr/local/apache2.4/conf/httpd.conf
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl graceful ?(重新加載服務,并不重啟服務)
[root@localhost ~]# /usr/local/apache2.4/bin/apachectl start ? ?(啟動httpd服務)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message ? ? 這是一個警告
解決方法:修改主配置文件中/usr/local/apache2.4/conf/httpd.conf,192行,ServerName前的#號去掉
接下來發現直接訪問ip顯示錯誤
錯誤代碼: HTTP ERROR -2146697211
解決辦法:1.首先看ip是否ping通。
? ? ? 2.查看80端口是否打開
? ? ? iptables -I INPUT -p tcp --dport 80 -j ACCEPT ? ? ?打開80端口
? ? ?iptables -D INPUT -p tcp --dport 80 -j ACCEPT ? ? ?關閉80端口
有時候會顯示狀態碼為403,狀態碼正常為200
解決辦法:修改主配置文件中/usr/local/apache2.4/conf/httpd.conf,202行,?Require all denied ?修改為 ?Require all granted
因為要支持php,要在配置文件里增加一行,搜索AddType
398 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?AddType??application/x-httpd-php .php ? ? ? ?
增加索引頁。
搜索 Indexes
251 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?DirectoryIndex index.html ? ?index.php
檢測php有么有解析成功,在/usr/local/apache2.4/htdocs下創建一個1.php
并寫入
<?
phpinfo(); ? ? ? ? ? ? ? ?這是一個函數,會顯示php的詳細信息
?>
用瀏覽器訪問ip,若出現界面,則表示php解析成功。
?/usr/local/php7/bin/php -i | less ? ? 和這個命令顯示的命令一樣,但是是以表格的形式
若沒有成功:
檢查有沒有加載php模塊。
/usr/local/apache2.4/bin/apachectl -M
2.有沒有php模塊
ls /usr/local/apache2.4/modules/libphp5.so
3.配置文件里有沒有
有沒有加載 libphp5.so 這一行的配置
檢查有沒有加 AddType php 這一行
二、apache默認虛擬主機
(默認虛擬主機:只要servername里么有定義,但是解析到了本機的Ip,則會自動跳轉到默認虛擬主機上來)
一個服務器可以訪問多個網站。每個網站都是一個虛擬主機。
windows和Linux操作系統中,都有一個hosto文件 ? ? ?可以在這個文件里制定一個域名,然后這個域名指向一個ip
[root@litongyao ~]# vim /usr/local/apache2.4/conf/httpd.conf
203 ? ? ServerName 111.com:80 ? ? ? ? ? ? ? ?(定義了主機域名和端口號)
225 ? ? DocumentRoot "/usr/local/apache2.4/htdocs" ?(定義了主機目錄位置)
476 ? ?# Virtual hosts ?(虛擬主機)
477 ? ?#Include conf/extra/httpd-vhosts.conf ? ? ?(去掉井號,主配置文件的server就失效了)
去掉#可以打開一個虛擬主機配置文件,可以定義多個servername
[root@localhost apache2.4]# vi /usr/local/apache2.4/conf/extra/httpd-vhosts.conf?
ServerAdmin ? ? ? ? ? ? ? 定義管理員郵箱(可以刪除)
DocumentRoot ? ? ? ? ? ? ?網站的根目錄
ServerName ? ? ? ? ? ? ? 訪問網站的域名
ServerAlias ? ? ? ? ? ? ?網站別名
ErrorLog ? ? ? ? ? ? ? ?錯誤日志
CustomLog ? ? ? ? ? ? ? 訪問日志
寫完虛擬配置文件然后要創建相應的目錄
<VirtualHost *:80>
? ? DocumentRoot "/data/wwwroot/abc.com"
? ? ServerName abc.com
? ? ServerAlias www.abc.com www.123.com
? ? php_admin_value open_basedir "/data/wwwroot/abc.com:/tmp/"
? ? ErrorLog "logs/abc.com"
? ? CustomLog "logs/abc.com-access_log" common
</VirtualHost>
編寫完成后,重新加載配置文件
[root@litongyao ~]# /usr/local/apache2.4/bin/apachectl graceful
[root@litongyao ~]# /usr/local/apache2.4/bin/apachectl start ? ? ? ? ? (啟動apache服務)
httpd (pid 3490) already running
測試,我們用curl命令,-x可以指定ip.:
[root@litongyao ~]# curl -x192.168.52.100:80 abc.com
abc.com
兩個虛擬主機的servername中都沒有定義lty這個域名,我們訪問看他會跳轉到哪個上。
[root@litongyao ~]# curl -x192.168.52.100:80 lty.com
abc.com
本文轉自 小新銳 51CTO博客,原文鏈接:http://blog.51cto.com/13407306/2052448,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的LAMP架构(apache与php结合,apache默认虚拟主机)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++编程能力提升捷径 - ACM
- 下一篇: Linux下目录快速切换小工具bd