簡介

在CentOS Linux 系統環境中,搭配 VirtualBox 快速在 Virtual Machine 中佈署建置 Web Service,並且讓每組系統帳號能建立自己的個人網頁。

Ex: http://localhost/~username/index.html

建置環境

  • CentOS OVA檔 X 1
    • 由於本篇文章著重於建置個人網頁所以跳過建置VM的過程
  • IP X 1
    • 依需求使用外網IP或者內網IP
  • 實體機作業系統 CentOS

流程說明

  • 系統建置
    1.安裝VirtualBox
    2.佈署Virtual Machine(VM)
    3.VM開機
    4.VM安裝Apache
    5.VM設定Apache變數
    6.VM設定防火牆
    7.VM設定SELINUX標籤
  • 8.VM設定建立帳號時自動建立public_html資料夾、權限
    9.VM系統帳號建立以及設定
    10.實體機防火牆開啟
    11.VitrualBox PORT轉發
  • 使用者上傳檔案
    1.使用SFTP上傳
    2.檔案放置位置
    3.TEST是否成功

實際操作

1. 安裝VirtualBox

注意:切換ROOT權限
  1. 建立軟體倉庫
# cd /etc/yum.repos.d/
# wget http://download.virtualbox.org/virtualbox/rpm/rhel/virtualbox.repo
  1. VirtualBox 使用了 vboxdrv 核心模組控制及分配記憶體, 執行以下指令用 YUM 安裝 vboxdrv 模組:
# yum update
# yum install binutils qt gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms
  1. 查看最新版本
yum provides vitrualbox
  1. 安裝virtualbox
yum install vitrualbox-5.1XXXXX
  1. 打開virtualbox
virtualbox

參考

2. 佈署Virtual Machine(VM)

next -> … ->finish

3. VM 開機並登錄root操作

4. VM 安裝Apache

yum install httpd -y

5. VM 設定Apache變數

更改userdir設定

    vim /etc/httpd/conf.d/userdir.conf
  • 註解UserDir disabled
    
         # UserDir disabled
    
  • 取消註解UserDir public_html
    
        UserDir public_html
    

6. VM設定防火牆

設定防火牆

firewall-cmd --permanent --add-service=http
firewall-cmd --reload 

7. VM 啟動Apache並開機啟動

systemctl start httpd.service
systemctl enable httpd.service

8. VM設定SELINUX標籤

完成後檢視權限是否OK
檢視權限

ls -laZ

查看 “httpd_enable_homedirs” 標籤有沒有打開

getsebool -a | grep http

開啟

setsebool -P  httpd_enable_homedirs true

9. VM建立public_html在建立帳號時自動生成


mkdir /etc/skel/public_html
chmod 711 /etc/skel/public_html

10. VM系統帳號建立以及設定密碼權限

範例
user: group1
pawword: passw0rd

adduser group1
chmod 755 /home/group1
echo passw0rd | passwd group1 --stdin

11. 實體機防火牆開啟

firewall-cmd --permanent --add-port=10180/tcp
firewall-cmd --permanent --add-port=10122/tcp
firewall-cmd --reload 

12. VitrualBox PORT轉發

進行測試

利用winscp上傳檔案至public_html
可參考 https://briian.com/19166/

http://<ip>/~group1/<XXX.html>

注意參考事項

https://www.if-not-true-then-false.com/2010/enable-apache-userdir-with-selinux-on-fedora-centos-red-hat-rhel/

https://www.centos.org/forums/viewtopic.php?t=1742

===========================================

yum install httpd -y
vim /etc/httpd/conf.d/userdir.conf
firewall-cmd –permanent –add-service=http
firewall-cmd –reload
systemctl start httpd.service
systemctl enable httpd.service
mkdir /etc/skel/public_html
chmod 711 /etc/skel/public_html
setsebool -P httpd_enable_homedirs true

adduser group1
chmod 755 /home/group1
echo passw0rd | passwd group1 –stdin

==========================================

By zyxu

By zyxu