顯示具有 apache 標籤的文章。 顯示所有文章
顯示具有 apache 標籤的文章。 顯示所有文章

2011年7月25日

讓 Apache 不顯示 Parent Directory

修改 httpd.conf
在 IndexIgnore 後面加上 ..

例: IndexIgnore ..

然後再重啟 Apache
service httpd restart

完成!

2011年7月21日

Apache 顯示目錄不要帶太多系統內容

本來顯示目錄後在最下方會顯示出 Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2 這樣類似的內容有的還會把 CentOS v6.0 等 OS 的名稱版本都顯示出來,很容易被有心人進行攻擊的參考資訊,我們可以修改 httpd.conf 讓隱藏訊息

1. vim /etc/httpd/conf/httpd.conf
2. 找到 ServerTokes 字串, 預設應該是 OS, 把它改成 Prod, 詳細的參數可參考這裡
3. service httpd restart

再顯示應該只有 Apache Server at IP Port 80 了~

Apache Web 網頁使用 Linux 系統帳號作權限認證

原本是要採用 mod_auth_pam,但是他的版本太舊了,只能支援 Apachehttp://www.blogger.com/img/blank.gif v1.3 跟 2.0,所以我們改採用 mod_auth_shadow 來做
1. 先下載 mod_auth_shadow-2.3 下來
2. 解壓縮後,切換成 root 然後進入目錄執行 make all
3. make install
4. 檢查 /etc/httpd/conf/httpd.conf 是不是有多一行 LoadModule auth_shadow_module /usr/lib64/httpd/modules/mod_auth_shadow.so (我是用CentOS 64bits 所以會在 lib64)
5. 檢查在 <Directory "/var/www/html"> 裡面有沒有
AllowOverride AuthConfig
Order allow,deny
Allow from all
6. chmod 400 /etc/shadow
7. chmod 4755 /usr/local/sbin/validate (新增 owner 的 suid 這樣 apache 才能去讀 /etc/shadow)
8. service httpd restart
9. 設定 /var/www/html/.htaccess 內容如下
AuthShadow on
AuthType Basic
AuthName "Input username and password"
require valid-user
10. 開啟瀏覽器測試,輸入使用者在 Linux 系統上的帳密,就可以登入受管控的網頁了!

P.S. mod_auth_shadow 也支援 require user 或 require group 等強大的授權功能

2011年2月23日

Compile PHP 4 to Apache v1.3

cd /php
./configure --with-apxs=/usr/local/apache/bin/apxs --enable-track-vars
make
make install

將 php.ini-disk 複製到 /usr/local/lib

重啟 apache

2010年6月7日

檢視目前 Apache 使用之 MPM 為何?

MPM (Multi-Processing Module) 為 Apache v2.0 增進效能的技術,預設使用為 Prefork 模組,可使用下述指令檢查目前使用何種方式:

[root@taiwanwolf ~]# httpd -l
Compiled in modules:
core.c
prefork.c
http_core.c
mod_so.c

由上可知,目前該 Apache server 採用 Prefork 方式

設定檔多位於
/etc/httpd/conf/httpd.conf

修改前可先檢視目前 Web 連線狀態,供設定值參考
ps -ef | grep http | grep -v grep | wc -l

httpd.conf 內容如下
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000

多是修改 ServerLimit, MaxClients 這兩個值,可各改為 2000, 1000

改完設定後,執行重啟即生效
service httpd restart

延伸閱讀
What is prefork
What is worker

2010年3月23日

如何避免 Apache 網站的目錄內容顯示出來

環境:CentOS with Apache/2.2.3

cd /etc/httpd/conf
vim httpd.conf

找尋下面這段文字,並把 Indexes 刪除
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None Order allow,deny
Allow from all
</Directory>

如下
<Directory "/var/www/html">
Options FollowSymLinks
AllowOverride None Order allow,deny
Allow from all
</Directory>

存檔

重起服務
service httpd restart

測試應該就會出現
Forbidden
You don't have permission to access /hello/image on this server.

收工~

2008年8月19日

如何讓 Apache 的 access log能夠自動rotate

根據許多前人的經驗, 發現 Apache 內建的 Rotatelogs.exe 雖然可以做到 rotate , 但是其分割是以啟動httpd的時候起算,也就是說你在8/19 的15:00開始啟動 apache, 你的access.log並不會在8/20就被closed, 而是在 8/20 的15:00, 這樣的話對於系統管理者來說,就喪失了分日期管理的意義 (還要自己去parse內容),所以使用 mod_log_rotate 模組是比較理想的方式, 使用方式如下

前置作業
1.請看目前自己的Apache版本為何, 可用 httpd -v 或 apachectl status來查看
2.下載相對應版本的 mod_log_rotate.so , 可至此網站下載

正式開始
1. 修改 httpd.conf, 用以載入模組:
LoadModule log_rotate_module modules/mod_log_rotate.so
CustomLog /logs/access_%Y%m%d.log common
RotateLogs On
RotateLogsLocalTime On

2. 重啟 apache
使用 service httpd restart 或 apachectl restart 或若使用xampp, wamp 之類可用選單重啟

如此就可以用天為單位,分割 access.log 了