如何啟動apache2個人網頁的cgi目錄?

這個版面主要討論 debian 在 server 端的應用問題, server 種類繁多..舉凡 Web Server 、 File Server、 DHCP Server..等等。

版主: 阿信

如何啟動apache2個人網頁的cgi目錄?

文章shengyou » 週三 2月 22, 2006 12:47 pm

想請教各位大大:

問題是這樣的,
我想在自己的主機上安裝如Oddmuse這樣以pl執行的wiki系統
但又希望在主機上的每一個帳號都可以有自己的cgi執行目錄

我使用的系統是ubuntu linux server
伺服器是apache2
cgi的部份也參考站上的文章
viewtopic.php?t=7226&highlight=cgi-bin
以a2enmod cgid和a2enmod cgi啟動了cgi
我把oddmuse.pl放到/usr/lib/cgi-bin/
並設定權限777後,
以網址:http://mywebaddress/cgi-bin/oddmuse.pl
已經可以正常啟動使用

不過就差最後一步
我不知該怎麼讓每個人使用者有自己的cgi-bin
讓每個人都可以用
http://mywebaddress/~username/cgi-bin/oddmuse.pl

查了書和論壇上的文章
愈看愈糊塗
好像有很多種設定方式,
每種設定方式可以做到的方式又不同
有些設定方式好像又不是針對apache2的設定?

請教一下到底該怎麼做才可以讓我完成這最後一步呢?
謝謝!
shengyou
可愛的小學生
可愛的小學生
 
文章: 8
註冊時間: 週一 12月 05, 2005 12:42 am

文章訪客 » 週三 2月 22, 2006 3:59 pm

代碼: 選擇全部
#ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
#<Directory "/usr/lib/cgi-bin">
# AllowOverride None
#   (我忘了預設值是下面哪一行了)
# #Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
# Options ExecCGI
# Order allow,deny
# Allow from all
#</Directory>
這是在 sarge apache2 中的 cgi 設定


代碼: 選擇全部
<IfModule mod_userdir.c>
 UserDir public_html
 UserDir disabled root
 <Directory /home/*/public_html>
  AllowOverride FileInfo AuthConfig Limit
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
 </Directory>
</IfModule>
這是在 sarge apache2 中的 userdir 設定


依小弟薄弱的印像,再參考把上面兩段設定, 您可以試試
代碼: 選擇全部
<IfModule mod_userdir.c>
 UserDir public_html
 UserDir disabled root
 <Directory /home/*/public_html>
  AllowOverride FileInfo AuthConfig Limit
  Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
 </Directory>
 <Directory "/home/*/public_html/cgi-bin">
  AllowOverride None
  Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
  Order allow,deny
  Allow from all
 </Directory>
</IfModule>
(viewtopic.php?t=7226&highlight=cgi-bin 中好像沒有開到 ExecCGI.)

再來是您的磁碟權限設定
您 /home, /home/* /home/*/public_html /home/*/public_html/cgi-bin 目錄的 group/other 要開啟瀏覽權(x)
您 /home/*/public_html/cgi-bin 裡面 cgi/pl 檔案的 group/other 最少要開啟執行權(x),讀/寫權拿掉會更保險.

再來,若您是另外掛載 /home, 請確定 fstab 中該掛載的 option 沒有 noexec 選項


當然,您也可以試著把各個屬性及其參數的意義弄懂, 這樣對您的幫助會比較大.
訪客
 

文章shengyou » 週二 2月 28, 2006 6:22 pm

謝謝這位大大如此詳細的解說!
真的非常感謝!

在我看到這篇回覆前,
我也在apache的官網找到答案
在這頁:
http://httpd.apache.org/docs/2.2/howto/public_html.html
其中的一段:Enabling a cgi directory for each user

只要在apache2.conf中加入一段:
代碼: 選擇全部
<Directory /home/*/public_html/cgi-bin/>
Options ExecCGI
SetHandler cgi-script
</Directory>

就可以正常在每個使用者裡使用了
雖然已經可以正常使用,達到當初的目標
只是小弟不才,一時之間還無法看懂所有的代碼的意義
持續努力中!

謝謝
shengyou
可愛的小學生
可愛的小學生
 
文章: 8
註冊時間: 週一 12月 05, 2005 12:42 am


回到 debian server

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 1 位訪客

cron