2013-09-01

[Linux] Apache 網站架設

Apache 是 Linux 上用來架設網站的工具之一,就像 Windows 上面的 IIS 一樣,來說明一下如何架設它。

P.S:如果要自己架設並測試, 就要先設定好DNS,不然是無法用Domain Name連到的。

安裝的套件,其中 links 是用來測試連結架好的網站是否可用了:
yum install httpd httpd-tools links


/etc/httpd/conf/httpd.conf 要設定的地方:
ServerName www.tim.com
ServerAdmin tim.lin@tim.com
Listen 80

其中預設的路徑和首頁如下:
DocumentRoot : /var/www/html/
DirectoryIndex : index.html

服務重啟後,再開防火牆80 port,即可使用,可以用下面的指令測試:
links http://www.tim.com/index.html


其他問題:
(1) 提供peter可以存取/var/www/html
因為預設的路徑只有root可以存取,如果要開放其他人可以存取,就要加設定:
setfacl -m  u:peter:rwx  /var/www/html

(2) 更換 Apache 的站台預設路徑
假設要換到/www/website/blog/:
;建立新路徑並修改/etc/httpd/conf/httpd.conf 的 DocumentRoot 為 "/www/website/blog"
mkdir -p /www/website/blog

;修改安全本文,先參考預設路徑的安全本文是哪一個
ls -Zd /var/www/html  ;得知安全本文是 httpd_sys_content_t

;再設定新路徑的安全本文,因為連同子目錄也要,所以用了參數 -R
chcon -R -t httpd_sys_content_t  /www/

(3) 設定 blog.tim.com 可以通,並且路徑是 /www/website/blog
;先加 DNS 正解檔,讓 blog.tim.com 能連到
blog    IN    A    192.168.123.100

;在 /etc/httpd/conf/httpd.conf 的最後面加上如下設定
NameVirtualHost *:80

        ServerName www.tim.com
        ServerAdmin tim.lin@tim.com
        DocumentRoot /var/www/html
        ErrorLog /var/log/httpd/www-error_log
        CustomLog /var/log/httpd/www-access_log combined


        ServerName blog.tim.com
        ServerAdmin tim.lin@tim.com
        DocumentRoot /www/website/blog
        ErrorLog /var/log/httpd/blog-error_log
        CustomLog /var/log/httpd/blog-access_log combined


之後重啟服務,就可以執行了。
以上是基本的架設,但由於 Apache 是個嚴謹的工具,限制很多,所以大多遇到的問題都是要去修改 selinux 才能解決,而這又是另一個課題了。

沒有留言:

張貼留言