2014年4月9日 星期三

CentOS 安裝 wwwcount 計數器

CentOS 安裝 wwwcount 計數器
# cat /etc/redhat-release
CentOS release 6.5 (Final)

下載
# wget http://www.muquit.com/muquit/software/Count/Count2.6/Count2.6/download/src/wwwcount2.6.tar.gz



解壓縮
# tar zxvf wwwcount2.6.tar.gz

進入資料夾
# cd wwwcount2.6.tar.gz

看安裝說明
# ./build

# ./build --with-cgi-bin-dir=/var/www/cgi-bin --without-database
(更改安裝目錄,apache以tar安裝者用./build --all)

# ./build --install 開始安裝
...
Continue [y|n]? y
proceeding...

Now if you know what user and group id child processes of http
server use, I can change the ownership and access permission
accordigly. If you do not know, they are usually defined in the
file httpd.conf with User and Group. I suggest create a unique
user and group say httpd and set the User and Group to httpd.

*Do you know the user and group id of httpd' child process [y|n]:? y
(apache以tar安裝者回答n,使用預設值nobady)
*Enter user id of httpd's child process [no default]:? apache
*Enter group id of httpd's child process [no default]:? apache

設定
# vi /usr/local/etc/Counter/conf/count.cfg
最後增加可使用的網域
[authorized]
...
www.cnes.tcc.edu.tw
web.cnes.tcc.edu.tw
school.cnes.tcc.edu.tw

因 Selinux 不能寫入資料檔
# cd /usr/local/etc/Counter/
# chcon -R -t httpd_sys_content_t data/
# chcon -R -t httpd_sys_content_t logs/

-----其他-----
如果 apache 以 rpm 安裝又以 ./build --all 安裝計數器,可更改 apache 參數
pico -w /etc/httpd/conf/httpd.conf 或 chmod 666 sample.dat 也可以
(以免出現 Could not write to counter file:)
User apache
Group apache
改成
User nobody
Group nobody

計數紀錄檔
cd /usr/local/etc/Counter/data/
touch cnes
chown 99:99 sample.dat 或 chown nobody:nobody sample.dat
chmod 666 sample.dat (如已改 httpd.conf 可不用改)

cd /usr/local/etc/Counter/
drwxrwxr-x 2 nobody nobody 4096 Aug 17 16:29 logs
chmod 776 logs/

2 則留言:

  1. 在 CentOS7 安裝 wwwcount2.6 計數器,因 CentOS7 內定 SELINUX 政策是
    enforcing,SELINUX類型是targeted,所以裝了 wwwcount 基本上沒法用,
    計數器計數檔必須把 SELINUX 屬性設對了才行。

    按照作者的方法,wwwcount 還是不行運作:
    # cd /usr/local/etc/Counter/
    # chcon -R -t httpd_sys_content_t data/
    # chcon -R -t httpd_sys_content_t logs/

    這樣設,httpd 沒法寫入 "計數值",所以還是
    Could not write to file: xxxx.dat

    是過了這樣設,就OK了:
    # cd /usr/local/etc/Counter/
    # chcon -R -t httpd_sys_rw_content_t data/
    # chcon -R -t httpd_sys_rw_content_t logs/

    data/中,每增加一個計數檔,就須檢查、設定一次。

    httpd 是否正確可以寫入,可以 ls -Z 查閱 httpd type 是否具rw?
    httpd 的 _u,_r 屬性,在SELINUXTYPE=targeted 是不起作用的,
    不必管它。但計數檔 type 一定要具rw,wwwcount 才能正常運作。
    # ls -Z
    -rw-r--r--. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 sample.dat
    -rw-r--r--. apache apache system_u:object_r:httpd_sys_rw_content_t:s0 test1.dat
    -----------------

    或,把 SELINUX 關閉,就不用這麼麻煩設定了:
    # vi /etc/selinux/config
    把 SELINUX=enforcing 改為 SELINUX=disabled
    # reboot

    回覆刪除