• 締切済み

PHPファイルのシンボリックリンクの実行で Internal Server Error

プログラムファイルが以下にあるとします。 /home/pgroot/public_html/test.php 内容は、 <?php print "ok"; ?> という最小限のスクリプトです。 これに、以下のようにシンボリックリンクを張ります。 /home/myhome/public_html/test.php (---->/home/pgroot/public_html/test.php) リンクの方をWEBからアクセスすると、Internal Server Error になります。本物の方をWEBからアクセスすると、正常に動作します。 Internal Server Error の時の Apache のエラーログには以下の記述があります。 [error] Premature end of script headers: /home/myhome/public_html/test.php 他のサーバーでは普通に動くのですが、なぜこのサーバーでは動かないのかという鯨飲を知りたいのですが、どなたかアドバイスいただけませんか? よろしくお願いします。

みんなの回答

  • Lean
  • ベストアンサー率72% (435/603)
回答No.1

Optionsディレクティブで、FollowSymLinksが指定されていないのでシンボリックリンクをたどってくれていないからとか。

stoutontap
質問者

補足

確認してみたのですが FollowSymLinks は指定されているようです。 補足になりますが、シンボリックリンク自体はうまく機能しているようです。例えば、 /home/pgroot/public_html/test.html へのシンボリックリンクを作ってみたところ、これは正常に表示されました。 PHPの設定の問題なのでしょうか? 自分でも調べているのですが、もし何か分かりましたら教えてください。

関連するQ&A

  • Internal Server Errorについて

    Webサーバー(Apache)を構築して、ブログを公開しようと思ったのですが、 Internal Server Errorとなりうまく表示できません。 状況は ローカルエリアネットワーク内のデバイスで接続した場合: (1).ローカルIPアドレスでブログにアクセス:OK (2).グローバルIPアドレスやドメイン名でブログにアクセス:Internal Server Error ローカルエリアネットワーク外のデバイスで接続した場合: (携帯の回線から接続しました。) (3).グローバルIPアドレスやドメイン名でブログにアクセス:OK エラーの原因は何が考えられますか。 WebサーバーのOS:CentOS6.4

  • 500 Internal Server Error

    500 Internal Server Errorが出ます。 サーバ:CentOS6.4 サーバ側の文字コード:UTF-8 perlのパス:/usr/bin/perl index.cgiの文字コード:LF (サーバ上で直接作成) index.cgiのパーミッション:777 (パーミッションの問題を避けるためわざと、777に設定) ここで、サーバ上で直接実行 perl /var/www/html/index.cgi すると、正しく処理の結果が返ってきてエラーは出ません。 しかし、クライアントのブラウザでindex.cgiにアクセスすると、500 Internal Server Errorが出ます。 なお、index.cgiを設置するディレクトリはApacheで以下のように設定しcgiスクリプトを有効にしています。 <Directory “/var/www/html”> Options FollowSymLinks ExecCGI </Directory> AddHandler cgi-script .cgi .pl #AddDefaultCharset UTF-8 ******************************************************* 【/var/www/html/index.cgi】 #!/usr/bin/perl print "Content-type: text/html"; print "<html>"; print "<body>"; print "<p>"; print "CGI"; print "</p>"; print "</body>"; print "</html>"; スクリプトの文法に問題があれば、サーバ上で直接実行させた時点でエラーを吐きそうですし、 パーミッションは777にしていますし、Apacheの設定もcgiを有効にしているので 他に500 Internal Server Errorが出る原因が掴めません。 Apacheの設定で、#AddDefaultCharset UTF-8 として文字セットを無効にした場合は CGIスクリプトの方で何か追加してやらないと、文字化け以前の問題で必ず500 Internal Server Errorを吐くんですかね? ご指導のほどよろしくお願い致します。

    • ベストアンサー
    • CGI
  • さくらサーバでPHP

    現在、さくらサーバでPHPのテストをしています。 /home/abc/www/ にaとbとcのディレクトリにサンプルサイトを分けています。 a~c配下にてPHPを動かしたいのですが.phpにしてアクセスしてみると 500 internal server errorになってしまいます。 PHPファイルのパーミッションは755です。 しかし、a~c配下に何かフォルダを作成してその中でPHPを実行すると正常に動作します。 例1: /home/abc/www/a/a_1/test.php は ○ 例2:   /home/abc/www/a/test.php   は × 例2の階層でもPHPを動作させたいです。 ご教授ください。 環境: サーバ:さくらサーバスタンダードプラン PHP: 5.2.8 FTP: FFFTP

    • 締切済み
    • PHP
  • apacheのCGI設定について教えてください。

    CGIの勉強のために、古いパソコンに fedora core 4 をインストールしてapache でローカルのテスト用サーバーにしようとしています。 /var/www/html に設置した簡単な perl CGI は動くのですが、同じものをユーザーのホームディレクトリに設置すると、internal server error になってしまいます。 ***** 以下 httpd.confの抜粋です。***** #UserDir disable UserDir public_html <Directory /home/*/public_html> AllowOverride All Options Includes ExecCGI FollowSymLinks SetHandler cgi-script </Directory> AddHandler cgi-script .cgi .pl ************************************** サーバーのエラーログを見ると Premature end of script headers: test.cgi となっています。htmlをprintしているだけのスクリプトで、/var/www/html では動くので、apache の設定の問題かと思っています。 ちょっとカテゴリーが違うかもしれませんが、よろしくお願いします。

    • ベストアンサー
    • Perl
  • 文法はあってるのにサーバーエラーが出る

    perlで構文チェックをしたところ、OKが出たので、 アパッチにて実行したところサーバエラーがでました。 調べたところ、以下のようなエラーが出ましたが、これは、サブルーチンや、ライブラリが呼出されていないのでしょうか?どのように対処すればいいか教えてください。 Premature end of script headers: c:/www/public_html/subsub.cgi Undefined subroutine &jcode::convent called at c:\WWW\PUBLIC~1\SUBSUB.CGI line 8. Premature end of script headers: c:/www/public_html/okikae.cgi Can't locate cgi-bin.pl in @INC (@INC contains: C:/usr/local/lib C:/usr/local/site/lib .) at c:\WWW\PUBLIC~1\OKIKAE.CGI line 3.

    • 締切済み
    • CGI
  • Internal Server Error???

    こんにちは。 CGIを作ったのですが、 【Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster@life-web.com and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. 】 と言うエラーが出て動きません. もう一つ同じようなcgiを作ったのですが、そちらは普通に動きます.すみませんが、このエラーの場合はどうしたらいいですか? CGIはメールフォームからのメールを送信するものです。

    • ベストアンサー
    • CGI
  • C言語で作成したCGIにて「Internal Server Error」

    こんばんは。CGIについて質問させて下さい。 現象: C言語でCGIを作成し、ローカルで動作しているApacheで 動作確認をしようとしたところ、 「Internal Server Error」が出てしまいました。 質問: 上記の現象が起こったのですが、C言語でCGIを実行するには なにが足りないでしょうか? 環境: OS:WindowsXP Webサーバ:Apache 2.0.61 Cコンパイラ:gcc 3.4.4(cygwin) 状態: ○「http://localhost:8080/」にアクセスすると「あなたの予想に反して・・・」画面は見れます。 ○「http://localhost:8080/cgi-bin/test.cgi」にアクセスすると、「Internal Server Error」が表示されます。 ○httpd.confの設定値(デフォルトから修正した部分) ・ServerName 127.0.0.1:8080 ・<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">内 Options none → Options ExecCGI ・#AddHandler cgi-script .cgi → AddHandler cgi-script .cgi ○Apacheのerror.log ~[error] [client 127.0.0.1] Premature end of script headers: test.cgi ○test.cgiのコンパイル前ソース ---ここから #include <stdio.h> int main(void){  printf("Content-Type: text/html\n\n");  printf("<html><body>Hello, World!</body></html>");  return 0; } ---ここまで ○test.cgiはcygwinにて標準出力を確認済み。 ・・・ちなみにperlでCGIを作成すると表示されます。 (ActivePerlインストール済み) perl側のソース ---ここから #! c:/perl/bin/perl print "Content-Type: text/html\n\n"; print "<html><body>"; print "Hello, CGI!"; print "</body></html>" ---ここまで なにかおかしな点がございましたらご指摘をお願い致します。

    • ベストアンサー
    • CGI
  • Internal Server Error が出る

    Internal Server Error が出てしまいます. エラーログをみると [Fri Nov 27 12:34:03 2009] [notice] Apache configured -- resuming normal operations [Fri Nov 27 12:34:03 2009] [notice] Server built: Jan 17 2008 22:58:29 [Fri Nov 27 12:34:03 2009] [notice] Parent: Created child process 2496 [Fri Nov 27 12:34:03 2009] [notice] Child 2496: Child process is running [Fri Nov 27 12:34:03 2009] [notice] Child 2496: Acquired the start mutex. [Fri Nov 27 12:34:03 2009] [notice] Child 2496: Starting 250 worker threads. [Fri Nov 27 12:34:17 2009] [error] [client 127.0.0.1] Premature end of script headers: index.rb [Fri Nov 27 12:34:17 2009] [error] [client 127.0.0.1] C:/var/www/cgi-bin/computer/index.rb:7:in `require': no such file to load -- lib/constant (LoadError)\r [Fri Nov 27 12:34:17 2009] [error] [client 127.0.0.1] \tfrom C:/var/www/cgi-bin/computer/index.rb:7\r となっていますが原因がわかりません・・・

  • HTML中のPHPが実行されない

    以下のソースをindex.htmlにしてWebサーバーに置いたのですが、ウェブでアクセスはできますが、PHPの実行がされないようです。 それとも、PHPの使い方のミスでしょうか。 <HTML> <TITLE>TEST</TITLE> <BODY> あいうえお<BR> <?include("count.php");?>のアクセスです。<BR> <?php echo $_SERVER["HTTP_USER_AGENT"];?><BR> </BODY> </HTML>

    • ベストアンサー
    • PHP
  • Apache WebサーバでCGIが実行できない

    Apache WebサーバでCGIを実行すると Premature end of script headers というエラーになります。原因が判りません。何方かご教示をお願いします。