ディフォルトの状態では、メインサイトと仮想サイトとも「/cgi-bin/」の下でしかCGIを実行することができません。この方がセキュリティ的にもいいので、VPSでは基本的に「/cgi-bin/」以外のディレクトリで実行できないようになっています。
/cgi-bin/の下のCGIファイルをアクセスする場合は、URLがhttp://ドメイン名/cgi-bin/となります。
なお、他のディレクトリで実行したい場合は、「httpd.conf」ファイルを編集する必要があります。
まず「httpd.conf」ファイルをバックアップします、
cp /etc/httpd/conf/httpd.conf
/etc/httpd/conf/httpd.conf.bak
そして編集します、
#vi /etc/httpd/conf/httpd.conf
(TTSSH/SSHからサーバに接続し、viを使ってファイル編集できない方は、VPSコントロールパネルの「File
Manager」からhttpd.confまで辿り着き、「Edit」ボタンで直接編集できます。但し、編集する前に、必ずバックアップを取るようにご注意下さい。間違えた編集でウェブサーバが再起動できない場合もございますので、その場合は、バックアップファイルで元通りに戻すし、Apacheサーバの再起動ができます。)
仮想サイトに関する設定はこのファイルの最後の部分にある
<VirtualHost xxx.xxx.xxx.xxx>
<Directory
/home/webadmin/vps.vpsres.com/html>
と
</VirtualHost>
の間に記述されます。例えば、仮想サイトwww.vpsres.comに関する設定は以下のようになります。
<Directory /home/webadmin/www.vpsres.com/html>
Options
Indexes FollowSymLinks Includes ExecCGI
AllowOverride
All
</Directory>
...
ServerName www.vpsres.com
DocumentRoot
"/home/webadmin/www.vpsres.com/html"
User "webadmin"
Group
"webadmin"
ServerAlias www.vpsres.com"
ServerAdmin
vps@webk.net"
ScriptAlias "/cgi-bin/"
"/home/webadmin/www.vpsres.com/cgi-bin/"
CustomLog
"/home/webadmin/www.vpsres.com/access_log" "combined"
ErrorLog
"/home/webadmin/www.vpsres.com/error_log"
</VirtualHost>
この中にある該当仮想サイトのホームディレクトリに関する定義が書かれる部分
<Directory /home/webadmin/www.vpsres.com/html>
Options
Indexes FollowSymLinks Includes ExecCGI
AllowOverride
All
</Directory>
がございますが、赤字で書かれてあるようにExecCGIを追加します。
さらに
#AddHandler cgi-script .cgi
一行の前にある「#」を外してみて下さい。
変更を保存しましたら、Apacheを再起動します。
またApacheの再起動は、TTSSH/SSHもしくはWebminから行わないように、コントロールパネルの「Services」から操作するようご注意下さい。