1. 程式人生 > >LAMP架構(apache與php結合,apache默認虛擬主機)

LAMP架構(apache與php結合,apache默認虛擬主機)

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 和這個命令顯示的命令一樣,但是是以表格的形式

若沒有成功:

  1. 檢查有沒有加載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默認虛擬主機)