質問です。Vine3.2の環境でここのHPにあるとおりに設定を行ったのですがPHPが動作しません。どこかいじりたりないところがあるのでしょうか。誰かわかるかた教えて下さい。お願いします。
> 質問です。Vine3.2の環境でここのHPにあるとおりに設定を行ったのですがPHPが動作しません。どこかいじりたりないところがあるのでしょうか。誰かわかるかた教えて下さい。お願いします。
動作しないって、test.phpも表示されないって事?
はっきり言って情報不足。
的確な回答をしてほしければ、もっと詳しく情報公開するべし。
管理人様が掲示板TOPに記載されているような質問方法をした方が自分の為にもなるはず!!
済みません。test.phpも表示されないです。
またApacheを再起動しようとすると次のようなメッセージが出ます。
何か関係あるのでしょうか?
)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
> 済みません。test.phpも表示されないです。
> またApacheを再起動しようとすると次のようなメッセージが出ます。
> 何か関係あるのでしょうか?
> )Address already in use: make_sock: could not bind to address 0.0.0.0:80
> no listening sockets available, shutting down
> Unable to open logs
Apache自体の設定にミスがあるのではないでしょうか?
ログを開く事ができないといっています。
httpd.confのログの記述にミスはないでしょうか?
何度も申し訳ありません。記述ミスを調べてみてみたのですが見当たらなかったです。もしよかったらhttp.conf php.iniをだれかアップデートしてもらえないでしょうか?直接入れて動いたらよいのですが。
> もしよかったらhttp.conf php.iniをだれかアップデートしてもらえないでしょうか?
言ってる事が意味不明ですが…
こういう事は人任せにするのではなく、自分でやる事に意味があるのですよ。
まずは自分で設定し、焦らず少しずつでいいから理解して自分のものにしないと意味がないです。
頑張って。
まず下記コマンドで、Apavheの文法チェックをしてください。
# /usr/sbin/httpd -t
「Syntax OK」とだけ出ればhttpd.confの記述は問題ないということです。
記述ミスがある場合は、行番号とメッセージが表示されます。
その指示に従って修正を行えば問題ないと思います。
Syntax OK が出ました。ということはphp.iniが間違っているということになるんですね。またしばらく考えてみます。
> Syntax OK が出ました。ということはphp.iniが間違っているということになるんですね。
「Syntax OK」以外は何も表示されなかったでしょうか?
> > 「Syntax OK」以外は何も表示されなかったでしょうか?
はい。何も表示されませんでした。ここに問題があるのでしょうか?
> > > 「Syntax OK」以外は何も表示されなかったでしょうか?
> はい。何も表示されませんでした。ここに問題があるのでしょうか?
では問題なさそうですね。
しかしapacheは起動できないのですよね?
ユーザーのログは当サイトで説明している様に個別に取得していますかね?
その場合ユーザー個別のログディレクトリを忘れず作製しているでしょうか?
作成されているとおもいます。実は以前まで動いていたphpで作成したHPをphpのバージョンを変えたらおかしくなってしまったので。現在はポート80をふさいでlocalhostで確認しています。
> 作成されているとおもいます。実は以前まで動いていたphpで作成したHPをphpのバージョンを変えたらおかしくなってしまったので。現在はポート80をふさいでlocalhostで確認しています。
PHPのバージョン違いによる物では…
> PHPのバージョン違いによる物では…
apt-get install php5 php5-apache2 php5-devel php5-pear php5-mysql
でアップデートしたのですが、うまくいきません。
>うまくいきません。
のいみはHPが見れないと言う意味です。アップデートは最新版ですと出ます。
> >うまくいきません。
> のいみはHPが見れないと言う意味です。アップデートは最新版ですと出ます。
test.php見れないんですよね?
test.phpの内容
<?php
phpinfo();
?>
> > test.phpの内容
> <?php
> phpinfo();
> ?>
はい。そのまま表示されてしまいます。
/etc/rc.d/init.d/apache2 restart を実行すると
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
Pre-configuration failed
と出て失敗します。誰かわかる方いらっしゃったら教えて下さい。お願いします。
> /etc/rc.d/init.d/apache2 restart を実行すると
> Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP.
> Pre-configuration failed
Googleで検索すると、
http://k_miya.blogcoara.jp/k_miya/2005/07/phpapache2_6c2f.html
こんなのがありますねぇ。
VineではApache2の動作モードとPHPの動作モードが不一致のため、動かないというのが正解のように見えます。
つまり、Vine初期でのApache2+PHP5という構成のままでは動かないみたいですね。
ちなみに僕はVine+Apache1+PHP5を使っています。
うちのサイトはApache2にしなければ対応できないほどアクセスがあるわけではありませんので、何も考えずに使える「Apache1+PHP5」という構成が気楽で好きです。
しかし、仕事だとVineではないのでApache2+PHP5だったりしますけどね。
ようは、Apache1でもApache2でも、どっちでも困らんのが現実です(^^)
個人的興味もあり、調べてみるとworkerだとうまくいかないということじゃーないでしょうか?
このサイトに書いてあるとおり、preforkに切り替えるとうまくいくってことでは???
自分ではやっていないので、ハズしているかもしれません。
ただ、わたしゃーApache2をインストールしなければダメな理由が見えてきません。
Apache2しか使えない機能をバリバリに使っているっていうのならいいのですけど...
また、理由もなくApache2に差し替えたほうがよさそうなことをサイトに書くのも良いとは思いません。
「こういう場合、Apache2に変えよう」というのならかまわないですけど。
元々、VineではApache1がデフォルトであるわけで、Vineプロジェクトでもこの構成を「推薦環境」としていると考えるべきですよねー。
僕は自分のサイトをApache2に変えるつもりは現時点ではありません。
うちのサイトじゃー利点がなく、管理的な欠点しか見つからないんですもん。
返信ありがとうございます。でも僕もpreforkでうごかしているんですよね。ってことはApache2がphp5と相性が悪いってことになるんですかね?
Apache1に戻す方法がわかりません。誰かわかる方教えて下さい。お願いします。
$ su -
# /etc/init.d/apache2 stop
# /etc/init.d/httpd start
これでApache1が起動しませんか?
なお、サーバ起動時にApache1を自動起動させるには、引き続き
# /sbin/chkconfig apache2 off
# /sbin/chkconfig httpd on
これで、自動起動されるのはApache1になるような感じがします。
VineはApache1とApache2を同時にインストールできるようなんです。
同時にインストールしないと、自分でPHPをコンパイルする場合、できませんので、うちでもインストールはしています。
Apache2はまったく起動はしていませんけどね。
> ってことはApache2がphp5と相性が悪いってことになるんですかね?
Apache2とPHP5の相性が悪いということはありません。
こういう組み合わせでもたくさん僕は使っています。
ただ、Vine配布のApache2とPHP5だと、そのままではうまく動かないため、
それに対応したインストール方法を説明されているんじゃないでしょうか。
ただし、これはあくまで自己責任の範囲内ですね。
当然ながら、これを書いた作者とまったく同一構成のサーバではないわけで、
Aさんが大丈夫ならBさんも大丈夫というわけではないでしょう。
「あくまで自己責任」なので「たまには動かないこともあるよ」というスタンスで見るしかないでしょう。
ちなみに、PHPマニュアルには
「なぜ、Apache 2 のマルチスレッド MPM モードを実運用環境で使用するべきではないのですか?」という説明がわざわざ書かれています。
ですので、マルチスレッド MPM モードを使うのは反則ワザだと考えるべきでしょうねー。
すみません。
/etc/init.d/apache2 stop が失敗と出て終了してしまいました。
こちらのapacheに問題があるのでしょうか?
またapacheを再起動しようとしても失敗してしまいます。
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
と出ます。
> /etc/init.d/apache2 stop が失敗と出て終了してしまいました。
Apache2が現在、正常動作していないなら、当然ながらApache2の停止は不可能ですよねー。
このへんのことはご自身で判断してくださいな。
> またapacheを再起動しようとしても失敗してしまいます。
> (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
> no listening sockets available, shutting down
> と出ます。
Apache1とApache2を同時にインストールすることはできますが、
設定ファイルなどはまた最初から設定しなおしです。
Apache2 -> /etc/apache2/conf以下
Apache1 -> /etc/httpd/conf以下
それぞれ設定ファイルが違うため、Apache1を起動するにはApache1の設定が必要ですね。
設定方法については、Apache1とApache2では違いがあるので、ご自身で自分の環境に合うように調べて設定するよりしょうがありませんよねー。
こちらのサイトに書かれてる通りにインストールしたのであればApache1.3は削除してあるのでは?
私もweb公開鯖はApache1.3系を使用していますが実験鯖にこちらの方法でApache2系をインストールし動作実験を行っています
特にトラブルもなく動いていますのでhideさんの場合、もう一度設定ファイルを見直した方が良いのでは?
Apache2とPHP5を一気にインストールされたようなのでもう一度初期状態に戻した上でApache2のインストールと起動
それが確認出来た後でPHP5のインストールと設定
順番に検証しないと何処に原因があるのか判りにくいのではないでしょうか?
apacheの再起動ができないのでhttp.confを調べてみたのですが特に問題ないようでした。(removeで削除した後installしてコマンドで確認済み)後はphp.iniを調べているのですが問題がないみたいなので困っています。apacheの再起動ができないのはしかたないことなのでしょうか?
> こちらのサイトに書かれてる通りにインストールしたのであればApache1.3は削除してあるのでは?
僕もサイトの説明をしっかり確認しませんでしたねー。
削除してあるんですねー。
しかし、こういう人がいるから、やはり「こういう目的がある人のみ、Apache2に入れ替えてーね」っていう一言がほしいと僕は思う。
> 順番に検証しないと何処に原因があるのか判りにくいのではないでしょうか?
そのとおりですねー。
しかし、初期状態に戻せるかどうか...
バックアップしているようなら、そもそもこんな質問はきていないだろうし(^^)
どの程度のことをしているのか想像できないので無理かもしれませんけど、
もしかしたらVineをクリーンインストールしてしまったほうが、こんなに悩むなら早いかもしれませんね。
マルチスレッド MPM モードを使わないということだと、ほんとうにApache2とApache1の差はほとんど無いと考えるべきなのかもしれませんねー。
Apahce2のみ配布されているような特殊なモジュールを利用する場合を除き、ほんとうにApache2のメリットは見当たらないように感じる。
僕はApache2を否定しているわけではく、わざわざ入れ替えるのを否定している。
最初からApache2のディストリならばApache2を使えばいいと思うし、デフォルトがApache1のVineのような場合ならApache1を使えば充分に思う。
PHPとかだと、PHP4とPHP5では明らかに機能差があるために、バージョンUPの利点があるけどねー。
apache2を導入していたのですか。
もう少し自分の環境は詳しく記載していただきたいです。
でないとmasterさんもおっしゃるように的確な回答がしにくいです。
そもそもapache2自体が起動していないみたいなので、
下記の結果はどうでしょう?
# /usr/sbin/apache2 check
ちなみにapache2のhttpd.confは/etc/apache2/conf/httpd.confです。
[root@localhost root]# /usr/sbin/apache2 check
Usage: /usr/sbin/apache2 [-D name] [-d directory] [-f file]
[-C "directive"] [-c "directive"]
[-k start|restart|graceful|stop]
[-v] [-V] [-h] [-l] [-L] [-t] [-S]
Options:
-D name : define a name for use in <IfDefine name> directives
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
-C "directive" : process directive before reading config files
-c "directive" : process directive after reading config files
-e level : show startup errors of level (see LogLevel)
-E file : log startup errors to file
-v : show version number
-V : show compile settings
-h : list available command line options (this page)
-l : list compiled in modules
-L : list available configuration directives
-t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings)
-S : a synonym for -t -D DUMP_VHOSTS
-t : run syntax check for config files
遅れて済みません。このように使いかたのオプションが出るだけです。
申し訳ないです。
下記コマンドをお願いします。
# /usr/sbin/apache2 -t
> 申し訳ないです。
> 下記コマンドをお願いします。
> > # /usr/sbin/apache2 -t
# /usr/sbin/apache2 -t
Syntax OK
でした。問題なく動作していると思われます。
> # /usr/sbin/apache2 -t
> Syntax OK
> でした。問題なく動作していると思われます。
apache2は問題なさそうですね。
apache2 MPMをworker → preforkに変更はしていますよね?
ん〜〜何かおかしいですね。
一度PHPとApacheをアインストールして入れなおすのはどうでしょう?
まずアインストール
# rpm -e php5 php5-apache2 php5-devel php5-pear php5-mysql
# apt-get remove apache
# apt-get remove httpd
再インストール
# apt-get update
Apache1.3の導入なら
# apt-get install apache
インストール後に起動してみる
# /etc/rc.d/init.d/httpd start
〜Apacheの設定〜
設定終了後apache再起動
# /etc/rc.d/init.d/httpd restart
# apt-get install php5 php5-apache php5-devel php5-pear php5-mysql
〜PHPの設定〜
設定終了後apache再起動
# /etc/rc.d/init.d/httpd restart
Apache2の導入なら
# apt-get install httpd
インストール後に起動してみる
# /etc/rc.d/init.d/apache2 start
〜Apache2の設定〜
設定終了後apache再起動
# /etc/rc.d/init.d/apache2 restart
# apt-get install php5 php5-apache2 php5-devel php5-pear php5-mysql
# update-alternatives --config apache2
apache2 MPMをworker → preforkを指定
〜PHPの設定〜
設定終了後apache再起動
# /etc/rc.d/init.d/apache2 restart
こんな感じですが…
私の環境のメインサーバー、テストサーバー共に、サイトに記載の方法で、はすんなり動作しているんですよね。
動作しない原因がつかめないですね。
一度きれいにして、少しずつ検証を行いながら設定を行った方がいいかもですね。
設定は、最初から一気に設定するのではなく、一つずつ検証しながら着実に行います。
apacheなら、各部分ごとに小分けして設定を行い、各設定ごとに再起動を行って動作を確かめていきます。
そうする事で何処の設定でエラーが出るのか把握しやすくなります。
これはエラーが出た時の私なりの設定方法なので全ての人にマッチするとは言い切れません。
でも、こまめに設定&再起動を繰り返す事で、エラー箇所を発見しやすいので、確実な設定ができると思います。