Python服務器運維筆記:第二章Linux - 1.2.3 apache服務器安裝

前言:本文是學習網易微專業的《python全棧工程師》 中的《服務器運維開發工程師》專題的課程筆記,歡迎學習交流。同時感謝老師們的精彩傳授!

一、課程目標

  • apache httpd服務器簡介
  • httpd安裝
  • httpd配置

二、詳情解讀

2.1.httpd簡介
2.1.1.apache httpd簡介

httpd web服務器是apache基金會下的一個開源服務器項目。httpd服務器能夠提供靜態網頁服務以及通過擴展提供動態程序訪問。
官方網站:http://httpd.apache.org/

2.2.httpd服務器安裝
2.2.1.安裝配置

1.httpd服務器可以直接通過yum命令安裝。

yum install httpd

2.服務器管理

apachectl start|stop

3.配置文件位置

/etc/httpd/conf/httpd.conf

說明:如果找不到httpd.conf文件,可以使用find命令查找

find / -name httpd.conf

直接在find後面寫上-name,表明要求系統按照文件名查找,最後寫上httpd.conf這個目標文件名即可。

實操:

Step1: 啓動虛擬機。選擇“無界面啓動”,因爲是遠程登錄,不需要看到界面。
在這裏插入圖片描述
Step2 遠程登錄服務器。啓動putty,輸入以下命令:

ssh -l root 192.168.1.119

在這裏插入圖片描述
**Step3:安裝httpd服務器。
首先查看主機上是否有httpd這個安裝包

yum search httpd

如下結果,表示有這個安裝包:
在這裏插入圖片描述
輸入以下命令,進行安裝:

yum install httpd

在這裏插入圖片描述
說明:如果發生無法連接網絡的錯誤,要檢查網卡的配置。
查看httpd.conf是否存在

ls /etc/httpd

在這裏插入圖片描述
Step4 啓動httpd服務器

apachectl start

在這裏插入圖片描述
在瀏覽器輸入服務器的ip地址:http://192.168.3.119
在這裏插入圖片描述
這是因爲主機啓動了防火牆,把它關閉即

service firewalld stop

在這裏插入圖片描述
重新訪問主機ip,出現如下頁面,表示apachd安裝成功
在這裏插入圖片描述
Step5: 配置apache

首先安裝vim

yum install vim

在這裏插入圖片描述
打開apache的配置文件,

vim /etc/httpd/conf/httpd.conf

說明:如果忘記配置文件名,輸入到文件夾conf/時,按tab鍵,系統會列出conf文件夾下所有文件。

2.2.2.配置文件

1.Listen ip:port:指定web服務器綁定到哪個ip及端口號,可以只指定端口號,如80、8080

2.LoadModule:模塊加載,通過加載不同的模塊實現不同功能

3.ServerName:服務器名稱,需要明確指定,默認註釋,需要去掉註釋符#並指定,才能啓動httpd

4.<Directory/>:目錄權限設置塊

5.DocumentRoot:指定web服務器根目錄

6.ErrorLog錯誤:日誌位置

7.<IfModule log_config_module>:訪問日誌位置

8.Include:加載其他配置文件

2.2.3.httpd主進程控制

Apache修改配置後需要重啓後才能生效

1.啓動httpd/usr/local/apache2/bin/apachectl start

2.停止httpd運行:/usr/local/apache2/bin/apachectl stop

3.重啓httpd/usr/local/apache2/bin/apachectl restart

4.平滑重啓:/usr/local/apache2/bin/apachectl graceful

5.平滑關閉:/usr/local/apache2/bin/apachectl graceful-stop

2.3.靜態網頁部署
2.3.1.配置文件

Step1 修改DocumentRoot,指定web服務器根目錄。

Step2 關閉selinux
/etc/selinux/config文件中的SELINUX=enforcing修改爲SELINUX=disabled

Step3 重啓 reboot

Step4 啓動apache web服務器

apachectl start

Step5: 關閉防火牆

service firewalld stop

實操:

步驟一: 創建web目錄

mkdir -p /wwwroot/myweb

說明:-p表示遞歸創建目錄,即使上級目錄不存在,會按目錄層級自動創建目錄

步驟二: 進入myweb目錄,並創建index.html文件

cd /wwwroot/myweb
vim index.html

i鍵,進入編輯模式,隨便寫入點內容,比如:hello world
再按ESC鍵,進入命令模式,再輸入:wq保存並退出。

步驟三: 編輯apache配置文件

vim /etc/httpd/conf/httpd.conf

進入文件httpd.conf後,按下/,輸入DocumentRoot查找它,

1.將DocumentRoot "/var/www/html修改爲DocumentRoot /wwwroot/myweb

2.刪除下面的內容

<Directory />
	AllowOverride none
	Require all denied
</Directory>

3.將下面中的路徑修改爲 /wwwroot/myweb

<Directory "/var/www">  # 這裏修改爲"/wwwroot/myweb"
	AllowOverride None
	# Allow open access:
	Require all granted
</Directory>

步驟四: 修改selinux

vim /etc/selinux/config

/etc/selinux/config文件中的SELINUX=enforcing修改爲SELINUX=disabled

步驟五: 重啓服務器

reboot

在這裏插入圖片描述
步驟六: 重新登錄虛擬機的服務器,並重啓服務

apachectl restart

步驟七: 關閉防火牆

service firewalld stop

此時,訪問瀏覽器http://192.168.3.119
在這裏插入圖片描述
推薦用防火牆命令打開80端口,這樣就不用每次都關閉防火牆了,防火牆爲了安全作用還是得開着好。

firewall-cmd --zone=public --add-port=80/tcp --permanent

示例圖如下:
在這裏插入圖片描述

2.4.虛擬主機部署
2.4.1.虛擬主機

Step1: 創建新的web目錄,比如:/wwwroot/myweb2。通過如下命令可以創建:

mkdir /wwwroot/myweb2

Step2: 通過sftp命令上傳網站文件到web目錄,也可以下載一個winscp程序

sftp連接遠程服務器:sftp [email protected]
使用put命令,可以將本地文件上傳到服務器中;使用get命令可以將服務器中的文件下載到本地。
sftp的使用可以參考文章:Linux:CentOS中SFTP工具的使用

Step3: 創建/web/logs目錄用於存入日誌文件。通過下面命令可以創建:

mkdir -p /web/logs

Step4 通過chown apache:apache /web/logs修改文件擁有者與屬組。在/etc/httpd/conf/httpd.conf文件中,有如下圖所示的配置:
在這裏插入圖片描述
所以要修改文件擁有者和屬組爲apache,否則apache沒有權限訪問這些文件。

Step5 通過chmod -R 755 /wwwroot/myweb2修改權限。

此處755表示三種用戶的權限:第一個7root用戶自己的權限(7表示可讀、可寫、可執行的權限),第二個5是與所有者同組的其他組員的權限(5表示可讀、不可寫、可執行的權限),第三個5是其他人的權限。

-R表示遞歸地將文件夾裏所有文件的權限都修改。

Step6httpd.conf中添加Listen 81端口。此處用不同的端口與其他的網站區別開來。

實操:

步驟一: 創建好目錄/wwwroot/myweb2後,新打開一個終端,使用sftp連接:

sftp [email protected]

在這裏插入圖片描述
步驟二: 切換目錄。

服務器上的目錄切換:

cd /wwwroot/myweb2

本地的目錄切換:(注意是lcd,而不是cd

lcd ~/test

查看服務器上的目錄用ls,查看本地的目錄用lls
在這裏插入圖片描述
步驟三: 上傳文件用put + 文件名,上傳文件夾用put + -r + 文件名

put -r flask-cms

上傳完成之後,使用exit退出。

步驟四: 修改權限。
首先查看權限

ls -al /wwwroot/myweb2
ls -al /web/logs

在這裏插入圖片描述
然後修改爲apache所有者

chown -R apache:apache /web

結果:
在這裏插入圖片描述

chmod -R 755 /wwwroot/myweb2

結果:
在這裏插入圖片描述
步驟五: 添加端口號:

vim /etc/httpd/conf/httpd.conf

如下圖,添加Listen 81
在這裏插入圖片描述
步驟六: 創建文件host2.conf
/etc/httpd/conf/httpd.conf文件的末尾,有如下配置:
在這裏插入圖片描述
所以我們可以創建文件:

touch /etc/httpd/conf.d/host2.conf

編輯這文件,寫入如下內容:

<VirtualHost 192.168.3.119:81>
	DocumentRoot	"/wwwroot/myweb2"
	ServerName		localhost
	ServerAlias		server1
	ErrorLog		"/web/logs/web1-error_log"
	CustomLog		"/web/logs/web1-access_log" common
</VirtualHost>

步驟七: 重啓apache

apachectl restart

如果想知道apache的配置有沒有錯,可以運行下面的命令測試一下:

apachectl -t

出現如下圖的ok,表示配置成功
在這裏插入圖片描述
步驟八: 開啓81端口,並重啓防火牆

firewall-cmd --zone=public --add-port=81/tcp --permanent
service firewalld restart

瀏覽器訪問:http://192.168.3.119:81
在這裏插入圖片描述

一般apache中的配置文件如下:

<VirtualHost IP:port>
	DocumentRoot "/web/web1/"  # 站點目錄
	ServerName	mywebserver # 站點域名
	ServerAlias yourwebserver  # 站點別名
	ErrorLog 	"/web/logs/web1-error_log" # 錯誤日誌
	CustomLog  "/web/logs/web1-access_log" common
</VirtualHost>
2.5.域名

1.直接IP訪問服務器,不方便記憶。域名是爲了方便訪問服務器。
2.域名需要DNS服務器解析成IP地址,如果沒有解析記錄,就沒有辦法通過域名訪問。
3.域名必須註冊,常用的是國際域名。比如:.com.net,然後是國家域名.cn.com.cn,另外還有很多其他的域名,比如.io.org ......
4.域名結構:域名.com,二級域名:www.域名.com,api.域名.com
5.本地測試,可以通過架設dns服務器或者通過修改本地hosts文件來模擬域名
6.apache可以通過域名綁定多個虛擬主機

由於域名需要解析,所以比直接使用ip要慢,因此,在我們服務器內部,儘量使用ip,比如mysql的連接,使用127.0.0.1,要比localhost要快。

比如下面的示例apache配置:

<VirtualHost *:80>
	DocumentRoot "/web/web1/"  # 站點目錄
	ServerName	luxp.com # 站點域名
	ServerAlias mypython.com  # 站點別名
	ErrorLog 	"/web/logs/web1-error_log" # 錯誤日誌
	CustomLog  "/web/logs/web1-access_log" common
</VirtualHost>

實操:
Step1 修改hosts文件

vim /etc/hosts

添加如下圖的兩行內容:
在這裏插入圖片描述
ESC鍵,輸入:wq,保存並退出。

Step2 修改服務端中的配置文件host2.conf
先拷貝一份配置文件

cp /etc/httpd/conf.d/host2.conf /etc/httpd/conf.d/host3.conf

修改host3.conf這個文件爲如下內容:

<VirtualHost *:80>
	DocumentRoot "/web/web1/"  # 站點目錄
	ServerName	luxp.com # 站點域名
	ServerAlias mypython.com  # 站點別名
	ErrorLog 	"/web/logs/web1-error_log" # 錯誤日誌
	CustomLog  "/web/logs/web1-access_log" common
</VirtualHost>

Step3 重啓apache

apachectl restart

在瀏覽器訪問http://luxp.comhttp://mypython.com,出現如下結果,表示部署成功。在這裏插入圖片描述
在這裏插入圖片描述

三、課程小結

  • 01 apache httpdhttpdapache的進程。
  • 02 web配置:通過配置不同的文件,可以部署多個不同的網站。
  • 03 進程控制:通過apachectl的命令,來控制apache的啓動和重啓。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章