利用Apache部署靜態網站(二)
- 2021 年 4 月 26 日
- 筆記
本文接著《利用Apache部署靜態網站(一)》繼續部署,為系統中的每位用戶創建一個獨立的網站。
httpd服務程式提供的個人用戶主頁功能可以為每位用戶創建一個獨立的網站。該功能可以讓系統內所有的用戶在自己的家目錄中管理個人的網站,而且訪問起來也非常容易。
第一步:編輯httpd的配置文件,開啟個人用戶主頁功能
在此過程中,要注意網站數據在用戶家目錄中的保存目錄名稱是否合適。
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf
將17 行”UserDir disabled” 前面加#,24行”#UserDir public_html”前面的#去掉
UserDir public_html表示網站數據在用戶家目錄中的保存目錄名稱
第二步:在用戶家目錄中建立用於保存網站數據的目錄及首頁面文件。
首先,切換到user用戶下,另外,還需要把家目錄的許可權修改為755,保證其他人也有許可權讀取裡面的內容。
[root@localhost ~]# su – user
上一次登錄:六 4月 24 21:36:50 CST 2021pts/1 上
[user@localhost ~]$ mkdir public_html 創建保存網站數據的目錄
[user@localhost ~]$ ll
總用量 0
drwxr-xr-x. 2 user user 24 4月 26 10:14 public_html
[user@localhost ~]$ echo “This is user’s web” > public_html/index.html 創建保存網站數據的首頁面的文件,並寫入內容
[user@localhost ~]$ chmod -Rf 755 /home/user 修改目錄許可權
[user@localhost ~]$
第三步:重新啟動httpd服務程式,訪問訪問網頁127.0.0.1/~user。
[root@localhost ~]# systemctl restart httpd
網址格式為「網址/~用戶名」(其中的波浪號是必需的,而且網址、波浪號、用戶名之間沒有空格)
從理論上來講就可以看到用戶的個人網站了。但是結果如下圖所示,不能訪問網頁,出現此結果。
第四步:開啟rewrite_module模組
查找資料發現,出現上圖情況是由於apache未開啟rewrite_module模組,編輯配置文件,做出修改
[root@localhost ~]# vim /etc/httpd/conf/httpd.conf
# (刪除了不必要的資訊,只保留修改了的部分)
# This is the main Apache HTTP server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL://httpd.apache.org/docs/2.4/> for detailed information.
———————————————————————————————–
#
Include conf.modules.d/*.conf
LoadModule rewrite_module modules/mod_rewrite.so
# 由於我未將網頁資訊存放在默認根目錄下,則不需要修改下面的資訊(不過,為了方便起見,修改了也沒關係,所以,我也做了修改)
# <Directory> blocks below.
#
<Directory />
AllowOverride all
Require all denied
</Directory>
# 由於我將網頁資訊存放在/home/wwwroot,所以要修改下面的資訊
<Directory “/home/wwwroot”>
AllowOverride all
# Allow open access:
Require all granted
</Directory>
# Further relax access to the default document root:
<Directory “/var/www/html”>
第五步:再次刷新頁面,訪問127.0.0.1/~user
刷新網頁後,結果如下圖所示,還是不能訪問網頁,很明顯這次的錯誤與SELinux的配置有關。
第六步:配置SELinux文件,允許個人用戶主頁功能
一般情況下,系統並不默認開啟個人主頁功能,需要自行開啟,這也是上圖出現問題的原因。使用getsebool命令查詢並過濾出所有與HTTP協議相關的安全策略。發現httpd_enable_homedirs –> off是關閉狀態。
[user@localhost ~]$ getsebool -a | grep http
httpd_anon_write –> off
httpd_builtin_scripting –> on
httpd_can_check_spam –> off
httpd_can_connect_ftp –> off
httpd_can_connect_ldap –> off
httpd_can_connect_mythtv –> off
httpd_can_connect_zabbix –> off
httpd_can_network_connect –> off
httpd_can_network_connect_cobbler –> off
httpd_can_network_connect_db –> off
httpd_can_network_memcache –> off
httpd_can_network_relay –> off
httpd_can_sendmail –> off
httpd_dbus_avahi –> off
httpd_dbus_sssd –> off
httpd_dontaudit_search_dirs –> off
httpd_enable_cgi –> on
httpd_enable_ftp_server –> off
httpd_enable_homedirs –> off
httpd_execmem –> off
httpd_graceful_shutdown –> on
httpd_manage_ipa –> off
httpd_mod_auth_ntlm_winbind –> off
httpd_mod_auth_pam –> off
httpd_read_user_content –> off
httpd_run_ipa –> off
httpd_run_preupgrade –> off
httpd_run_stickshift –> off
httpd_serve_cobbler_files –> off
httpd_setrlimit –> off
httpd_ssi_exec –> off
httpd_sys_script_anon_write –> off
httpd_tmp_exec –> off
httpd_tty_comm –> off
httpd_unified –> off
httpd_use_cifs –> off
httpd_use_fusefs –> off
httpd_use_gpg –> off
httpd_use_nfs –> off
httpd_use_openstack –> off
httpd_use_sasl –> off
httpd_verify_dns –> off
named_tcp_bind_http_port –> off
prosody_bind_http_port –> off
第七步:開啟個人安全策略
個人安全策略開啟使用命令setsebool,在開啟過程中使用參數-P 可以使得SELinux策略永久生效,且立即生效。
在此之前,要先切換到root用戶下
[user@localhost ~]$ su – root
密碼:
上一次登錄:六 4月 24 21:39:20 CST 2021pts/1 上
[root@localhost ~]# setsebool -P httpd_enable_homedirs=on
重新刷新網頁,即可看到下圖效果,說明個人用戶主頁功能創建完善。
一般情況下,我們並不想自己的網頁被別人隨便訪問,因此,我們可以給自己的網頁設置身份驗證,只有通過驗證後才可以訪問我們的網頁。具體設置方法如下:
第八步:生成密碼資料庫
密碼資料庫生成使用htpasswd
[root@localhost ~]# htpasswd -c /etc/httpd/passwd user
New password: 輸入驗證密碼
Re-type new password: 確認驗證密碼
Adding password for user user 為user用戶設置密碼成功
第九步:編輯個人用戶主頁的配置文件
[root@localhost ~]# vim /etc/httpd/conf.d/userdir.conf
第十步:重啟httpd服務,刷新頁面
刷新後出現如下圖所示的介面
當輸入錯誤的賬戶時,點擊確認後,會重新彈出如上圖所示的介面
當輸入正確的賬戶時,會進入網頁頁面,如下面的第二張圖片
到這裡,Apache的個人主頁功能就配置完畢了。(#^.^#)