fedora5にApache2.059、MySql5.027、PHP5.20をインストールする為はじめてリナックスを利用し作業をしています


MySql、Apacheのコンパイルまでなんとかおこなえましたが、PHPをコンパイルしphp.iniの文字コードなどの設定変更をおこない、httpd.confの設定をあやしいながら終え、PHPの起動確認をおこなったところ、以下のエラーが発生します

Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0

Fatal error: Unknown: Failed opening required '/usr/local/apache2/htdocs/php/test.php' (include_path='.:/usr/local/include/php:/usr/local/lib/php') in Unknown on line 0

そのままですが、何かのパスと設定に問題があって何かが開かないという内容なのだろうか、ということしか分かりません。phpのテストファイルに問題があるのでしょうか、httpd.confの設定に問題がるのでしょうが、助言をおねがいいたします

回答の条件
  • 1人5回まで
  • 登録:2008/01/17 10:39:16
  • 終了:2008/01/18 16:47:53

ベストアンサー

id:tezcello No.3

tezcello回答回数457ベストアンサー獲得回数682008/01/17 16:09:16

ポイント25pt

読み出すファイル( test.php )が、root がオーナーで、パーミッションが、600 では、apache は読めません。

644 にしてやればうまくいくかも知れません。

http://q.hatena.ne.jp/1200533955

id:surippa20

回答ありがとうございます。パーミッションはすみません自分はFTPでしかふれたことがなく、さらに意味はわかっていません。読み出し、書き出し等のそのファイルごとの設定というような感じとしか分かっていません。

test.phpのパーミッションですね。調べてやってみます

2008/01/18 00:13:55

その他の回答(3件)

id:tobeoscontinue No.1

tobeoscontinue回答回数212ベストアンサー獲得回数522008/01/17 11:26:33

ポイント25pt

メッセージはphpからのもののように見えるのでapache、phpが動いていると思います。

この部分ではhttpd.confの設定によるものではないと思います。


単にファイル(test.php)がないというだけではないでしょうか。

ls -la /usr/local/apache2/htdocs/php/

の結果はどうなるでしょう。ファイルの権限の設定がまずいとか?

http://dummy.hatena.ne.jp

id:surippa20

回答ありがとうございます。コマンドをいれますと以下のような内容が表示されます。

drwxr-xr-x 2 root root 4096 1譛・16 22:49 .

drwxr-xr-x 3 root root 4096 1譛・16 22:43 ..

  • rw------- 1 root root 20 1譛・16 22:49 test.php
  • rw------- 1 root root 20 1譛・16 22:44 test.php~

はじめからもう一度自分でもタイプミスなどを確認してみます

2008/01/17 15:10:18
id:tezcello No.2

tezcello回答回数457ベストアンサー獲得回数682008/01/17 13:28:14

ポイント25pt

なんだかPHPそのものがうまく機能していないような気がしますが...

わざわざコンパイルし直しているようですので、その設定に矛盾や漏れ等は無いでしょうか?

(コンパイルは終わったけど、エラーが山盛りだったなんてオチは無いでしょうね?)


Apache も無事に起動できているのでしょうか?

apachectl で動作の状況、コンフィグファイルの文法ミス等のチェックもできますが、ご存知でしょうか?

http://httpd.apache.org/docs/2.0/en/programs/apachectl.html


どんなテスト用のスクリプトかは不明ですが、最初にチェックするのは phpinfo() が適当では?

id:surippa20

回答ありがとうございます。Apacheにかんしましてはhttp://localhost/で「あなたの予想に反して、このページが見えているでしょうか?」と表示されましたので、動いていると思っているのですが

apachectlは知りませんでした。今ページを拝見しましたがすぐに理解できませんでした。とにかく読みますありがとうございます。

テストは<?php phpinfo(); ?> のファイルで(<>は半角で)ブラウザからアクセスをした結果がこの

エラーで表示されている状況です

2008/01/17 15:18:50
id:tezcello No.3

tezcello回答回数457ベストアンサー獲得回数682008/01/17 16:09:16ここでベストアンサー

ポイント25pt

読み出すファイル( test.php )が、root がオーナーで、パーミッションが、600 では、apache は読めません。

644 にしてやればうまくいくかも知れません。

http://q.hatena.ne.jp/1200533955

id:surippa20

回答ありがとうございます。パーミッションはすみません自分はFTPでしかふれたことがなく、さらに意味はわかっていません。読み出し、書き出し等のそのファイルごとの設定というような感じとしか分かっていません。

test.phpのパーミッションですね。調べてやってみます

2008/01/18 00:13:55
id:tezcello No.4

tezcello回答回数457ベストアンサー獲得回数682008/01/18 09:39:04

ポイント25pt

コンパイルをされたとの事でしたので、わかってみえると思い込み、説明を省略してしまいました。ごめんなさい。

パーミッションとは、アクセス権の事で、ご理解の通りです。

ファイルモード(ファイルの属性)を変更して、オーナーだけではなく、グループと他のユーザーに読出しの許可を与えたいのです。


test.php の存在するディレクトリへ移動し、ls -l test.php(-la でなくてもOK)の結果が、

rw------- 1 root root 20 1譛・16 22:49 test.php

なので、現在はオーナーに対してのみ読み書きを許可している状態です。

これを、先頭部分が

rw-r--r-- となるようにしたい訳です。


chmod 644 test.php のコマンドを実行すれば、変更できます。

(先の回答中で 644 と書いたのはこのコマンドの数字部分です)

また、サーバに直接ログインされているのなら、プロパティなどからファイル属性を変更できると思います。


> 自分はFTPでしかふれたことがなく

現在使われている環境がわからなくなってきました。

他の質問で、○○○.conf をダブルクリックしようとされているので、自宅あるいは社内のサーバかと思ったのですが、違うのでしょうか?

test.php のオーナーが root であるのもそう思った理由です。(通常FTPは、root でログイン不可、root への su は不可だと思うので)


差し障りの無い範囲でお答え下さい。(http://q.hatena.ne.jp/1200534872 http://q.hatena.ne.jp/1200534502 の参考にもなると思うので)

サーバはどこにありますか?

  自宅or社内

  レンタルサーバ

○○○.conf の編集や test.php の作成などはどうやっていますか?

  サーバに直接ログインして

  ネットワーク経由で

    ssh(または、telnet)で接続

    FTPで接続

      コマンドを直接打っている

      FTP用のソフトを使っている

test.php はどこでみてますか?

  サーバで

  ネットワークに繋がった別マシンで


質問受付中でもコメントが付けられるようにしていただけるとうれしいです。状況の確認や追加説明・補足などにポイントを使う必要は無いですから。

id:surippa20

合間に取り急ぎのぶぶんだけ返答しまして、再度また書き込みにきますので

ご返答ありがとうございます。




○○○.conf の編集や test.php の作成などはどうやっていますか?

  サーバに直接ログインして

  

  テストで自分のためだけにおこなっています。自分の実機でスタンドアロンというのでしょうか

  ネットワーク経由で

    ssh(または、telnet)で接続

    FTPで接続

      コマンドを直接打っている

      FTP用のソフトを使っている

      

      

   ことば足らずです。すみません)FTPは例えで、本件とまったく関係ありません

test.php はどこでみてますか?

  サーバで

  ネットワークに繋がった別マシンで

  

  実機内のローカルです





(再度続きを)

いま内容を理解しました。まずプロパティで見てみます。もう一度書き込みにきます


(再々度つづき)

  • rw-r--r--

600644

(rはリード読むで、Wライト書き込みなんですネ)

この数値形式の644でい言われていた内容だと考えます。これでテストしてみます



(最後に)

できました!皆様ありがとうございました。

http://localhost/php/test/phpをブラウザに入れ

無事にPHPの紫のぺージが表示されました。(これで次にいける)ありがとうございました

2008/01/18 16:46:36
  • id:tezcello
    コメント欄のオープンありがとうございます。

    コンソール(? ターミナル とか 端末 とかの名前かも知れません)で、test.php のあるディレクトリまで移動して、
    chmod 644 test.php
    とするか、デスクトップで、test.php のあるフォルダまで移動して、プロパティからアクセス権のタブで
    所有者、グループ、その他 のそれぞれの読み込みにチェックを入れます。


    これで apache が test.php ファイルを読み込む事はできるはずです。
    apache の設定が何もなされていなければ、表示の結果は test.php の内容がそのまま表示されるはずです。

    できれば、一つ一つやっていく方が確実なので、apache の設定(httpd.conf)を初期状態に戻してみてはどうでしょうか?
      初期状態だと、httpd.conf には、DocumentRoot /usr/local/apache2/htdocs とかいてあるか
      コメントアウトされていると思います。(空白は1つ以上あればいくつでも同じです。タブでも可)

    で、test.php が、/usr/local/apache2/htdocs/php/ にあるとすると、
    http://localhost/php/test.php で目的の test.php にアクセスできるはずです。

    ブラウザを立ち上げて上記にアクセスしたら、apache のログを見てみましょう。
    /var/log/apache2(/var/log/apache, /var/log/httpd などの名前かも知れません)に access_log, error_log
    の名前でログが残るはずです。(多分質問文のエラーメッセージは error_log の内容だと思うのですが)

    test.php の内容がそのまま表示されてしまったら、次は php の処理をしてもらえる様に設定します。
    先ずはここまでをご確認下さい。
  • id:surippa20
    コメントを読むまえにうれしくて終了してしまいました。

    とにかくすぐまjavaのサーブレットというものをいれて、パール環境をいれて、MySqlをさわっていくので先はながいといえば長いのですが、逆にこの内容を一通りできれば、そのあとの理解はできていくはずなので、とにかく先にいこうとおもいます。

    ログの件なども詳しくいただきましてありがとうございます。これで、ここには助言としてメモが残ったわけですから、今後の問題などでやくだてます

    おいそがしいところありがとうございました
  • id:surippa20
    tezcelloさま

    コメントありがとうございました(どう戻すものか分かりませんでしたためコメントをここに書いています)。コンパイルに関しましては、ウィキペディア等を見ましたがまだ分かりませんでした。固まったもしくは固まっていないインストールをするソフトのデータを、いじった後、最後に固めるようなことをコンパイルなのではないだろうかということで作業をすすめてしまっています。OSに関しましては、一旦これで今の一連の作業をおこなってみて、リナックスやプログラムというものサーバというものを肌で感じて、その際にはもう少しは理解していると思いますので、そこでまた探してみようと思います。ご親切にていねいにコメント等をいただき、大変ありがたく作業の糧となっています。
  • id:tezcello
    configure ○△□... とか、make , make install などのコマンドを使って、ソースファイル(C言語などで書かれている)を適宜変更するなどして実行出来る形式(バイナリ)にするのがコンパイルです。

    ○○○.conf ファイルを修正したり、ディレクトリを変更したり、マシン起動時に自動的に起動するように変更したり... は、インストール作業の一部です。

    コンパイルという作業は、結構面倒で時間がかかったりするものですから、各ディストリビューション(Fedora, CentOS, Vine 等)で、コンパイル済みのバイナリとそのバイナリを実行するために必要な諸々のファイルやプログラムの依存関係を示したものなどを一まとまりにしたものをパッケージと呼ぶようです。

    一般のユーザーは、この用意されているパッケージを利用する(yum や rpm, apt などのコマンド群を使う)事でほとんど手間無くそのプログラムを自分のマシンで稼働させることが出来ます。(しかも、ごく標準的ではあるにしても、最低限の設定・調整は済んだ状態で)

    surippa20 さんがされている「固める」というのが理解出来ませんが...「固める」の文字からするとパッケージを作っている様な...どうなんでしょう?

    用意されているパッケージで不足している部分は何だったのでしょうか?
    よほど特殊な事をするのでなければ、コンパイルまではしないで(勉強の為にわざわざやる人はいますが)用意されているパッケージを使った方が良さそうだなと思いましたので、あれこれ書かせて頂きました。
    (CentOS, Vine には、Tomcat のパッケージは用意されていないみたいですので、自前でコンパイルするなり、rpm ファイルを作るなりする必要があるようですね。でもググるとかなりたくさん情報があるようです。)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません