dポイントプレゼントキャンペーン実施中!

初心者で申し訳ありません。
先日リナックス、ネットワーク系会社に勤務することになって
リナックスとperlの勉強しています。
会社のサーバーの指定アドレスのhtmlファイルはIEブラウザでみれるのですが、会社から提供された/home/usernameのフォルダに、htmlファイルとperlのcgiファイルをwindowsXPからftpソフトによってアップロードして、telnetソフトからperlのcgiファイルを実行できるのですが、IEブラウザからhttp://xxx.xxx.xxx.xxx/~username/filename.cgiを指定するとファイルがありませんとでますが、
何がいけないのでしょうか?よろしくお願いします。

A 回答 (2件)

telnet での操作は、あくまで遠隔操作であって、CGI として外部から動作させているのではなく、Linux 内部での処理を実行させているにすぎません。



IEを含むクライアントマシンから、Linux 上の WWW サーバを経由して CGI として実行させることとは別概念にあたります。


考えられることとしては、
(1) WWW サーバの制限
(2) WWW サーバの設定に従った CGI の設置法に準じていない
というあたりでしょうか。

例えば CGI の実行は /home/username では許可されておらず、/home/username/public_html/cgi-bin のような cgi-bin という名前のついたディレクトリでしか実行できないようになっているとか、特定のディレクトリに設置しなければいけないとか。

また、CGI としてどのプログラム言語で実行させるのかを #!/usr/bin/perl みたいな感じでそのスクリプトの1行目に記述する必要がありますが、その記述の仕方が適切でなく perl の処理系を WWW サーバが見つけられていない可能性もあります。telnet で操作しているときは % perl hoge.cgi とかで処理系の perl を指定してテストしているんでは。

あと、WWW サーバの運用方法にもよるんですが、 /home/username そのものが UserDir (~で表示される内容を格納する場所)として指定されることはまれで、UserDir には /home/username/public_html みたいなサブディレクトリが指定されていることが多いのではないかと思います。これまでのテストの過程で、HTML ファイルは以前に /home/username/public_html に入れたものがあるけれども、最近は /home/username に入れてしまっており perl のスクリプトはそこにしかないような状態になっているんではないでしょうか。404 not found としてファイルが存在しないと評される状態になるんであれば。

HTMLファイルは以前に格納されたものが参照できるけど、perl のファイルが格納されていないから見つからないというような気がします。
    • good
    • 0
この回答へのお礼

早速のご助言ありがとうございます。
なんでかhtmlファイルもないと言われています。
/home/username/public_html/cgi-bin/で試してみます。

お礼日時:2006/02/11 18:34

外部からのhttp接続に関して、どのディレクトリ内のどのファイルにどのようなアクセスを許すかはapachの場合、


httpd.conf
に記述されており、各サーバによって違います。
管理者に聞くのが一番よいです。

個人のディレクトリの公開はそもそもダメなのかもしれません。
あるいは、同じサーバの他のユーザでホームページを公開している人がいれば、(その人がアクセス制限をかけていなければ)telnetでログインして
ls /home/other_user
とでもすればother_userの
ディレクトリ構造を調べられると思いますので、それを参考にして、その人がファイルを置いているように質問者さんも置けば見れると思います。
    • good
    • 0
この回答へのお礼

ありがとうございます。
聞いてみてみます。

お礼日時:2006/02/12 22:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!