目錄php
目錄檔案linux
Apache是世界使用排名第一的Web伺服器軟體。它能夠運作在幾乎全部普遍使用的計算機平台上,因為其跨平台和安全性被普遍使用,是最流行的Web伺服器端軟體之一。它快速、可靠而且可經過簡單的API擴充,将Perl/Python等解析器編譯到伺服器中。可是Apache有一個缺點就是,從新加載配置檔案時須要重新開機 httpd 服務,而nginx重載配置檔案時隻需重載reload配置檔案便可。httpd服務預設監聽 tcp / 80 端口
apache有兩個日志檔案,access.log記錄了通路網站的日志;error.log記錄了錯誤日志
Apache服務的安裝
yum源安裝:
安裝httpd主程式: yum -y install httpd
在/var/www/html 目錄下寫入咱們本身的首頁 index.html
開啟httpd程式:systemctl start httpd
防火牆開放http服務 firewall-cmd --add-service=http ,關閉SElinux: setenforce=0
檢視apache版本号:httpd -v
目錄檔案
程式目錄:/usr/sbin/httpd
預設網站首頁存放目錄: /var/www/html/
日志檔案存放目錄:/var/log/httpd/
主配置檔案:/etc/httpd/conf/httpd.conf
從配置檔案:/etc/httpd/conf.d/
主配置檔案 /etc/httpd/conf/httpd.conf 的一些參數的意義
ServerRoot “/etc/httpd“ //服務配置檔案目錄
PidFile run/httpd.pid //PID檔案
Listen 80 //預設監聽端口
Include conf.modules.d/*.conf //包含子產品目錄的配置檔案
User apache //啟動使用者
Group apache //啟動組
ServerAdmin [email protected] //管理者郵箱
ServerName www.example.com:80 //域名主機名
DocumentRoot “/var/www/html“ //預設首頁存放目錄
DirectoryIndex index.html index.html.var //索引檔案
//規定網站根目錄的位置
AllowOverride None
# Allow open access:
Require all granted
ErrorLog logs/error_log //錯誤日志
CustomLog logs/access_log combined //通路日志
AddDefaultCharset UTF-8 //預設字元集
IncludeOptional conf.d/*.conf //包含了 conf.d/*.conf 的配置檔案
DirectoryIndex index.html //預設索引
擴充配置檔案: /etc/httpd/conf.d/ , 咱們能夠在這個目錄下建立一些咱們本身定義的配置檔案,好比基于ip的虛拟主機,基于端口的虛拟主機,基于域名的虛拟主機等等
源碼包安裝:
源碼安裝以前先安裝編譯工具: yum -y install gcc gcc-c++ make
源碼包: httpd-xxxx.tar.bz2
解壓,而後進入解壓目錄, ./configure 編譯, make && make install 安裝便可
進入安裝目錄的 bin 目錄下, ./httpd 啟動
目錄檔案:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLicmbw5CZ0gjYxYGZmlDZilTNhJ2YjhzM0QTZkNmMwkTY4cjY58CX0JXZ252bj91Ztl2Lc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
安裝完成後,軟體預設安裝在 /usr/loca/apache2/ 下面,也能夠編譯的時候自定義安裝目錄
可執行檔案目錄:/usr/local/apache2/bin/
網站首頁目錄:/usr/local/apache2/htdocs/
配置檔案目錄:/usr/local/apache2/conf/
日志檔案目錄:/usr/local/apache2/logs/
Apache中添加對php的支援
安裝php的支援包 yum -y install php,而後重新開機 httpd 服務便可
若是想讓Apache識别預設的index.php檔案,須要修改配置檔案 /etc/httpd/conf/httpd.conf 中,在以下位置加入 index.php
DirectoryIndex index.php index.html
Apache中添加php對mysql資料庫的支援
安裝php-mysql的包便可:yum -y install php-mysql
Apache服務的進階配置
如下無論是基于ip、端口仍是基于域名建立的虛拟主機,網站首頁目錄隻能在 /var/www/ 下,若是想更改到其餘的任意目錄的話,須要修改配置檔案 /etc/httpd/conf/httpd.conf
//這裡的目錄更改成你的網站首頁目錄
AllowOverride None
# Allow open access:
Require all granted
1:配置基于ip的虛拟主機
能夠在一台伺服器上配置多個網卡,也能夠在一塊網卡上配置愛多個ip
我這裡在一塊網上上配置多個ip: ifconfig eno16777736:1 10.96.10.204
而後在從配置檔案中 /etc/httpd/conf.d/ 下建立一個配置檔案,咱們建立一個 ip.conf 檔案,而後加入下面幾行
DocumentRoot /var/www/html/web1 //第一個ip的網站的首頁面目錄
DocumentRoot /var/www/html/web2 //第二個ip的網站的首頁面目錄
而後在/var/www 下建立 web1和web2目錄,在web1和web2目錄裡面分别放入咱們的網站頁面。而後重新開機httpd服務便可。
2. 配置基于端口的虛拟主機
在配置檔案中 /etc/httpd/conf.d/ 下建立一個配置檔案,咱們建立一個 port.conf 檔案,而後加入下面幾行
Listen 8080
DocumentRoot /var/www/html/web1 //第一個端口的網站主目錄
DocumentRoot /var/www/html/web2 //第二個端口的網站主目錄
而後在/var/www 下建立 web1和web2目錄,在web1和web2目錄裡面分别放入咱們的網站頁面。而後重新開機httpd服務便可。
3.配置基于域名的虛拟主機
在配置檔案中 /etc/httpd/conf.d/ 下建立一個配置檔案,咱們建立一個 domain.conf 檔案,而後加入下面幾行
NameVirtualHost *:80
DocumentRoot /var/www/web1 //第一個域名的網站主目錄
ServerName web1.xie.com
DocumentRoot /var/www/web2 //第二個域名的網站主目錄
ServerName web2.xie.com
而後在/var/www 下建立 web1和web2目錄,在裡面放入咱們的網站頁面。而後再重新開機httpd服務便可。
HTTP服務的通路控制
控制對特定首頁内容的通路,為相應網站目錄添加通路控制
經常使用通路控制方式分類:
客戶機位址限制
使用者受權限制
設定客戶機位址通路
Order配置項,定義控制順序 Order allow,deny 先容許後拒絕,預設拒絕 Order deny,allow 先拒絕後容許,預設容許
Allow、Deny配置項,設定容許或拒絕的網段或位址 Deny from IP位址 或者 網段 Allow from IP位址 或者 網段
基于ip的使用者通路控制的配置:
在配置檔案中 /etc/httpd/conf.d/ 下建立一個配置檔案,咱們建立一個 ip.conf 檔案,而後加入下面幾行
// 這個的意思的容許全部使用者通路/var/www/html 目錄下的網頁,可是隻容許 10.96.10.204/24這個網段的通路 /var/www/html/test/ 目錄下的網頁
//本機ip
DocumentRoot /var/www/html //網站首頁的目錄
//要設定限制的目錄
Order allow,deny //比對了容許的就拒絕全部
Allow from 10.96.10.204/24 //隻容許10.96.10.204這個位址通路
基于使用者身份認證受權的配置:
通路控制的配置
在配置檔案中 /etc/httpd/conf.d/ 下建立一個配置檔案,咱們建立一個auth.conf 檔案,而後加入下面幾行
htpasswd -c /etc/httpd/webpasswd tom (第一次加 -c 參數,表示建立檔案); htpasswd /etc/httpd/webpasswd jack(第二次不用加 -c參數 ,由于檔案已經建立)
重新開機服務驗證
//本機ip
DocumentRoot /var/www/html //首頁目錄
//設定認證的目錄
AuthType Basic //認證的方法:密碼
AuthName Password! //彈出登陸框
AuthUserFile /etc/httpd/webpasswd //使用者名和密碼儲存的檔案
require user tom jack //隻容許 tom 和 jack 使用者通路