centos7 部署Apache服務器

Apache 文本編輯器 HTML Linux 飛翔科技 飛翔科技 2017-09-06

centos7 部署Apache服務器

Apache程序是目前擁有很高市場佔有率的Web服務程序之一,其跨平臺安全性廣泛被認可且擁有快速、可靠、簡單的API擴展。 它的名字取自美國印第安人土著語,寓意著擁有高超的作戰策略和無窮的耐性,在紅帽RHEL5、6、7系統中一直作為著默認的Web服務程序而使用,並且也一直是紅帽RHCSA和紅帽RHCE的考試重點內容。Apache服務程序可以運行在Linux系統、Unix系統甚至是Windows系統中,支持基於IP、域名及端口號的虛擬主機功能、支持多種HTTP認證方式、集成有代理服務器模塊、安全Socket層(SSL)、能夠實時監視服務狀態與定製日誌消息,並有著各類豐富的模塊支持。

第一步:安裝Apache服務程序(apache服務的軟件包名稱叫做httpd)

yum install httpd -y

centos7 部署Apache服務器

第二步: 將Apache服務添加到 開機自啟中

centos7 部署Apache服務器

第三步:打開firefox瀏覽器 測試 127.0.0.1

centos7 部署Apache服務器

這樣 我們的apache服務就安裝好了 !

小編下面給大家 講解一下 一些配置文件 。以及apach 的應用服務

剛學會的安裝和運行只是學習httpd服務程序成功路上的一小步而已,對於Linux系統中服務的配置就是在修改其配置文件,因此還需要知道這些配置文件分別幹什麼用的,以及存放到了什麼位置:

服務目錄/etc/httpd
主配置文件/etc/httpd/conf/httpd.conf
網站數據目錄/var/www/html
訪問日誌/var/log/httpd/access_log
錯誤日誌/var/log/httpd/error_log

我們再來看下主配置文件: vim /etc/httpd/conf/httpd.conf

centos7 部署Apache服務器

是不是下了 一跳,一共有353行 。但其實 沒有關係的,這些配置文件中 大部分都是 註釋信息,剩下的 就只有全局配置信息,區域配置信息。

在httpd服務程序主配置文件中最為常用的參數包括有:

ServerRoot服務目錄
ServerAdmin管理員郵箱
User運行服務的用戶
Group運行服務的用戶組
ServerName網站服務器的域名
DocumentRoot網站數據目錄
Listen監聽的IP地址與端口號
DirectoryIndex默認的索引頁頁面
ErrorLog錯誤日誌文件
CustomLog訪問日誌文件
Timeout網頁超時時間,默認為300秒.
Include需要加載的其他文件

從上面表格中可以得知DocumentRoot正是用於定義網站數據保存路徑的參數,其參數的默認值是把網站數據存放到了/var/www/html目錄中的,而網站首頁的名稱應該叫做index.html,因此可以手動的向這個目錄中寫入一個文件來替換掉httpd服務程序的默認網頁,這種操作是立即生效的

echo "hello everyone my name is feixiangkeji" > /var/www/html/index.html

緊接著 我們 打開firefox 瀏覽器 查看一下:

centos7 部署Apache服務器

測試成功!然後 我們 來修改 網站數據的主目錄。剛開始 我們默認的網站主目錄是/var/www/html

我們把它改變為 /home/wwwroot/中 。同樣我們也要在/home/wwwroot/中 創建首頁文件

mkdir /home/wwwroot

echo "this is feixiangkeji" > /home/wwwroot/index.html

centos7 部署Apache服務器

目錄,首頁文件都創建好了 ,我們是不是要修改 網站的配置文件啊

vim /etc/httpd/conf/httpd.conf

找到大約在119行附近的DocumentRoot參數以及大約在123行附近的,修改後記得保存:

centos7 部署Apache服務器

systemctl restart httpd

重新啟動httpd服務程序後便可驗證效果啦!!!但我們發現 還是剛開始測試頁面 !!而剛新建的首頁文件並不顯示出來?????

httpd服務程序的功能就是讓用戶能夠訪問到網站內容,因此讓SELinux對網頁訪問功能肯定是默認允許的,但剛剛把保存網站數據的默認路徑修改為了/home/wwwroot目錄,這似乎就產生問題了,也就是說現在httpd提供的網站服務卻要去獲取普通用戶家目錄中的數據了,這個行為觸犯SELinux服務的監管項目。既然已經找出問題所在了

下面 小編就來 先關閉SElinux :

[root@localhost ~]# setenforce 0

[root@localhost ~]# getenforce

Permissive

centos7 部署Apache服務器

但這種修改只是臨時的,重啟後就會失效!!!!!!

我們再次訪問網站

centos7 部署Apache服務器

果不其然 ,就是SElinux 搞的鬼

[root@localhost ~]# ls -Zd /var/www/html

[root@localhost ~]# ls -Zd /home/wwwroot

centos7 部署Apache服務器

在文件上面設置的SELinux安全上下文是由用戶段、角色段以及類型段等等多個信息項目共同組成的,用戶段中system_u代表系統進程身份角色段object_r代表文件目錄角色類型段httpd_sys_content_t代表是網站服務系統文件。由於SELinux服務實在過於複雜,因此現在您只需要簡單熟悉SELinux服務的作用就可以,現在這種情況的解決辦法就是把當前網站目錄/home/wwwroot的SELinux安全上下文修改為跟原始網站目錄的一樣就可以啦~

semanage命令用於查詢與修改SELinux的安全上下文,格式為:“semanage [選項] [文件]”。

-l參數用於查詢-a參數用於添加、-m參數用於修改、-d參數用於刪除等等

[root@localhost ~]# setenforce 1 把SElinux 改為強制

然後我們才能修改SElinux 的 上下文

-Z 查看文件上下文信息,也就是文件的SELinux信息,可以膚淺地理解為各個用戶對該文件或文件夾的權限(只有開啟Selinux才有效)

-d 只列出目錄,不包括內容,不引用符號鏈接

因此ls -Zd的意思就是查看該路徑下文件夾的selinux屬性。

如果系統裡沒有 semanage 命令

centos7 部署Apache服務器

我們可以 yum provides /usr/sbin/semanage 查看 semanage對應的 軟件包

centos7 部署Apache服務器

然後 小編就 yum install policycoreutils-python

這樣 semanage 命令就可以用了

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot

[root@localhost ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*

centos7 部署Apache服務器

不過僅僅是這樣設置完還不能讓網站立即恢復訪問,還需要使用restorecon命令來讓剛剛設置的SELinux安全上下文立即生效,可以加上-Rv參數指定進行對目錄的遞歸操作以及顯示SELinux安全上下文的修改過程:

[root@localhost ~]# restorecon -Rv /home/wwwroot/

centos7 部署Apache服務器

刷新一下

centos7 部署Apache服務器

這樣 我們網站初期 一些基礎的東西 就先說到這 ,請關注我接下來發表的 Apache 個人網站主頁,

虛擬網站主機功能,基於IP地址的,基於端口的,和基於域名訪問的三種模式。

謝謝大家 歡迎大家在下面留言區評論!!

相關推薦

推薦中...