LAMP架構(apache與php結合,apache默認虛擬主機)
主配置文件/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
LAMP架構(apache與php結合,apache默認虛擬主機)