2015年8月19日 星期三

安裝設定 apache(httpd) web server

假設所有網站都放在 /home/www ,例如
/home/www/www.aaa.com
/home/www/www.bbb.com

先關閉防火牆及 selinux,稍後再打開。
# setenforce 0
# service iptables stop

建立共用帳號
# useradd www -g www -d /home/www -s /sbin/nologin
# chmod 775 /home/www -R

建立網站資料夾
# mkdir /home/www/www.aaa.com
# mkdir /home/www/www.bbb.com
# chown www:www /home/www/* -R
# chmod 2775 /home/www/* -R


設定 ftp
本篇ftp使用 vsftpd + mysql,參考本站另一篇:
vsftpd 虛擬帳號設定 - 使用檔案清單或 MySQL

假設帳號密碼
wwwaaa / mypassword
wwwbbb / mypassword

在mysql新增ftp帳號
# mysql -u root -p
mysql> USE vsftpd;
mysql> INSERT INTO `accounts` (`username`, `pass`, `group`) VALUES ('wwwaaa', md5('mypassword'), 'www');
mysql> INSERT INTO `accounts` (`username`, `pass`, `group`) VALUES ('wwwbbb', md5('mypassword'), 'www');
mysql> exit;

建立 vsftpd 設定檔
# vim /etc/vsftpd/userconf/wwwaaa
local_root=/home/www/www.aaa.com
guest_username=www
# vim /etc/vsftpd/userconf/wwwbbb
local_root=/home/www/www.bbb.com
guest_username=www

修改 httpd.conf
# vim /etc/httpd/conf/httpd.conf
ServerAdmin mymail@gmail.com
修改虛擬網站
# vim /etc/httpd/conf.d/vhosts.conf
NameVirtualHost *:80

<VirtualHost *:80>
    ServerAdmin mymail@gmail.com
    DocumentRoot "/home/www/www.aaa.com/httpdocs"
    ServerName www.aaa.com
    ServerAlias aaa.com

    ErrorLog  "logs/www.aaa.com-error.log"
    CustomLog "logs/www.aaa.com-access.log" combined

    <Directory />
        Options FollowSymLinks Includes ExecCGI
        AllowOverride All
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin mymail@gmail.com
    DocumentRoot "/home/www/www.bbb.com/httpdocs"
    ServerName www.bbb.com
    ServerAlias bbb.com

    ErrorLog  "logs/www.bbb.com-error.log"
    CustomLog "logs/www.bbb.com-access.log" combined

    <Directory />
        Options FollowSymLinks Includes ExecCGI
        AllowOverride All
    </Directory>
</VirtualHost>

以上應該就可以了。

設定防火牆
# system-config-firewall
開啟 http port。
# service iptables start

設定selinux
# semanage fcontext -a -t httpd_sys_content_t "/home/www(/.*)?"
# semanage fcontext -a -t httpd_sys_rw_content_t "/home/www/([^/]+)(/.*)?";
# restorecon -Rv /home/www
# setenforce 1

查詢
# getsebool -a | grep httpd


沒有留言:

張貼留言