はじめての自宅サーバ構築 - Fedora/CentOS -
Last Update 2017/02/18
[ 更新履歴 ] [ サイト マップ ] [ 質問掲示板 ] [ 雑談掲示板 ] [ リンク ]
トップ >> 当サイト情報 >> スレッド

このページは表示専用です。新規投稿・レスや最新情報はこちらです。

このスレッドはクローズされています。記事の閲覧のみとなります。

 phpが動かない
日時: 2014/03/24 21:50
名前: yoshida

1.不明点・障害内容:phpがブラウザで動かない
2.ログの有無   :
  (有:その内容) :
3.Distribution  :CentOS
      Version :6.5
4.Service Name  :php
      Version :5.3.3
5.ネットワーク構成:

CentOSのサーバにphp/MySQLをインストールしました。
php -v
PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57)
Copyright (c) 1997-2010 The PHP Group

これで動くと思ったので、info.phpをアップロードしました。

<?php phpinfo(); ?>

ここで動作確認のためにhttp://www.myserver/info.phpとしてFireFoxから
呼び出すと「このプログラムをどう処理しますか?」のダイアログが出て、
思い通りの結果が得られません。
何か設定があるのでしょうか?

■ コンテンツ関連情報

 Re: phpが動かない ( No.1 )
日時: 2014/03/24 10:21
名前: harry

これ参考にしてみたら?
http://kajuhome.com/cgi-bin/patio/patio.cgi?mode=view&no=2035

phpをインストールした後にapacheをreloadかrestartしたか?
apacheがphpのモジュールを読み込んでるか調べたか?
 Re: phpが動かない ( No.2 )
日時: 2014/03/24 09:08
名前: 通りすがり

urlが
htto://www.myserver/info.php

oになってるけど?
 Re: phpが動かない ( No.3 )
日時: 2014/03/24 22:18
名前: yoshida

Harryさん、さっそくの返信有難うございます。
当該記事は読んでおりますが、これとは現象が異なるようです。
PHPのソースが表示されるのではなく、ブラウザ(FireFox)で

次のファイルを開こうとしています。
info.php
ファイルの種類: PHPFile(38bytes)
ファイルの場所: http://www.myserver.com
このファイルをどのように処理するか選んでください。

となります。
FireFoxのツール-オプション-プログラムを開いてみると
php File(Application/x-httpd-php)
php File(application/x-httpd-php-ource)

の項目があり、取り扱い方法をドロップダウンしてみると

毎回確認する
ファイルを保存
他のプログラムを選択する

の選択肢しか出ない状態です。


 Re: phpが動かない ( No.4 )
日時: 2014/03/24 22:44
名前: yoshida

harryさんの提示いただいたスレッドを読みなおしてみると

> httpd.confの以下部分をコメントアウトしていました。
#Include conf.d/*.conf

 こうなっていましたので、コメントを外したらhttpdが起動しなくなりました。

httpd を起動中: httpd: Syntax error on line 210 of /etc/httpd/conf/httpd.conf: Syntax error on line 1 of /etc/httpd/conf.d/mod_dnssd.conf: Cannot load /etc/httpd/modules/mod_dnssd.so into server: /etc/httpd/modules/mod_dnssd.so: cannot open shared object file: No such file or directoryapacheのエラー

ここはやはりhttpdの再インストールしかないのでしょうか? 現状でサイトを
運営しているので、止めずにやりたいのですが…
 Re: phpが動かない ( No.5 )
日時: 2014/03/25 09:38
名前: harry

>Harryさん、さっそくの返信有難うございます。
>当該記事は読んでおりますが、これとは現象が異なるようです。
>PHPのソースが表示されるのではなく、ブラウザ(FireFox)で


だったら別のブラウザでは普通に表示されるということか?

>#Include conf.d/*.conf
>
>こうなっていましたので、コメントを外したらhttpdが起動しなくなりました。


デフォルトはコメントアウトしてないから、何らかの理由でコメントアウトしたはず。
理由を思い出さないで単純に戻したらエラーが出ても変ではない。
(「私は何をしたのでしょうか」的な質問は勘弁してほしい。俺が知るわけないから)
 Re: phpが動かない ( No.6 )
日時: 2014/03/25 05:49
名前: stranger
参照: http://ja.528p.com/

mod_dnssdの有効
/etc/httpd/modules/mod_dnssd.soの存在を確認
なければmod_dnssdを入れる

mod_dnssdの無効
/etc/httpd/conf.d/mod_dnssd.confを
どこか別の場所に移すか
mod_dnssd.confの記述をコメント行にする

Avahiを利用するらしい
特別な設定無しで、ローカルネットワーク上で稼働しているサービスやホストをプログラムを
検出できるようにできるらしい
 Re: phpが動かない ( No.7 )
日時: 2014/03/25 10:29
名前: harry

strangerさん

> mod_dnssdの無効
> /etc/httpd/conf.d/mod_dnssd.confを
> どこか別の場所に移すか
> mod_dnssd.confの記述をコメント行にする


 mod_dnssd.confを全部コメントアウトにしたら動くようになりました。
ありがとうございました。
 Re: phpが動かない ( No.8 )
日時: 2014/03/25 10:47
名前: harry

> mod_dnssd.confを全部コメントアウトにしたら動くようになりました。
>ありがとうございました。


あんたは誰だよ?俺と同じ名前を使うな(w

それよりphpのモジュールを読み込んだかチェックしたか?それの方が大事だ。
他のブラウザでどうだった?
 Re: phpが動かない ( No.9 )
日時: 2014/03/25 11:44
名前: stranger
参照: http://ja.528p.com/

httpdでロードされているmoduleを調べるには
root権限で

httpd -M

を実行してみる
 Re: phpが動かない ( No.10 )
日時: 2014/03/25 21:42
名前: パニック

harryさん、ごめんなさい。名前がかぶっているとは認識していませんでした。
お詫び致します。ブラウザをIEにしてもphpは動いています。

strangerさん

> httpd -M(出力は長いのでphpの部分だけ)

php5_module (shared)
proxy_ajp_module (shared)
Syntax OK

となりましたので、phpモジュールはロードされています。

ところが、新たな問題が発生しました。私が調べたサイトの説明で、/etc/php.iniの
default_charset = "UTF-8"にせよとの指示があったので、そのとおりにしたところ、
今ままで正常に表示されていたphpを使っていないページが文字化けしてしまうのです。
こんなphpを書いてみました。

<h1>いま何時?</h1>

<p>いま
<?php
date_default_timezone_set('Asia/Tokyo');
echo date("Y 年 m 月 d 日 H 時 i 分 s 秒");
?>
です。</p>

これも文字化けして読めません。そこでdefault_charset = "SJIS"としたところ、
非phpページの文字化けは解消しました。ところがどういうわけか、上記のphpで
出力されるページの中の年だけが文字化けを起こしています。
どこかの漢字コードの設定がマズイんだと思うんですが、具体的に思い当たりません。
ここかな? というところがありましたら教えて下さい。





 Re: phpが動かない ( No.11 )
日時: 2014/03/26 08:51
名前: stranger
参照: http://ja.528p.com/

phpinfo で情報が得られたんだから
mbstring情報とか見られるでしょ

htmlファイルとphp出力のcharsetを統一しておいた方が無難

時代はUTF-8なので
sjisで書かれているhtmlをすべてUTF-8にコンバートして
UTF-8に統一

または
phpをsjisで出力するようにして
sjisに統一

または
htmlのmetaタグでそのつどcharsetを指定

html php charset 等でgoogle検索してみて自分の最良の方法を探す

蛇足 私の場合
CentOSはLANG=en_US.UTF-8
httpd.confではcharsetを指定しない
htmlのmetaタグでutf-8を指定
(html文はutf-8で記述)
phpのmbstringはutf-8を使用
(php-5.3とphp-5.4ではmbstringの設定方法が違う)
MySQLの文字コードセットにutf8mb4を使用
(mysql-5.5.xの場合)
 Re: phpが動かない ( No.12 )
日時: 2014/03/26 09:44
名前: パニック

strangerさん、いつもありがとうございます。
今日は時間があるので、ご提示いただいた色々なやり方を試してみます。
 Re: phpが動かない ( No.13 )
日時: 2014/03/26 10:34
名前: harry

パニックさんだかyoshidaさんだか知らないけど(w
すぐに他人に頼るのではなく、少しは自分で考えるようにしないと上達しないよ。
(自分でもっと気付かないと…)
 Re: phpが動かない ( No.14 )
日時: 2014/04/02 12:36
名前: パニック

> htmlファイルとphp出力のcharsetを統一しておいた方が無難

ということですので、現在大量のSJISで書かれたhtmlがあるので、sjisに統一しようと
考えました。結果的に動くようにななりましたが、下記のphp

<h1>いま何時?</h1>

<p>いま
<?php
date_default_timezone_set('Asia/Tokyo');
echo date("Y 年 m 月 d 日 H 時 i 分 s 秒");
?>

 を実行すると、なぜか他の項目は正常に表示されるのに、年だけが
文字化けしてしまいます。しばらく考えて色々やってみたのですが、
状況は変わりません。

いま 2014 ?3 04 月 02 日 10 時 47 分 59 秒です。

と表示されています。年だけがSJIS以外のエンコーディングで表示されるのかと思っています。
これはどうしたらいいのでしょうか?
 Re: phpが動かない ( No.15 )
日時: 2014/04/02 17:56
名前: stranger
参照: http://ja.528p.com/

自分でいろいろやってみる

ブラウザがfirefoxなら単純に
表示 文字エンコーディングで
Unicode(UTF-8)
日本語(EUC-JP)
とかで再表示してみる

同様にソースを表示して
文字エンコーディングを変えて表示してみる

”年”だけまともに表示されたら
その文字エンコーディングで”年”だけ書かれているのかもしれない

もう一度、html文を書き直してみる

 Re: phpが動かない ( No.16 )
日時: 2014/04/02 18:24
名前: パニック

strangerさん、ありがとうございます。

FireFoxでエンコードを変えて試してみたのですが、どのエンコードでも
「年」にはなりませんでした。
そこで、「echo "年"」と追記してみましたらこちらは正常に表示されます。

<h1>いま何時?</h1>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift-JIS">
</head>
<p>いま
<?php
date_default_timezone_set('Asia/Tokyo');
echo date("Y 年 m 月 d 日 H 時 i 分 s 秒");
echo "年";
?>
です。</p>

 もう少し色々やってみます。
 Re: phpが動かない ( No.17 )
日時: 2014/04/02 22:35
名前: パニック

 いろいろ調べてみたら、「年」をdate関数の中に入れて、Shift-JIS環境だと
文字化けするのは既知の問題らしいです。

> これはShift-JISコードにおいて"年"という文字は2バイト目がasciiの"N"と同じで、これがdate()関数のformat>> 指定子であるのが原因である。

 ということだそうです。

<h1>いま何時?</h1>
<head>
<META http-equiv="Content-Type" content="text/html; charset=Shift-JIS">
</head>
<p>いま
<?php
date_default_timezone_set('Asia/Tokyo');
print date( "Y" ) . "年" . date( "n月j日 H 時 i 分 s 秒" );
?>
です。</p>

 これで直りました。

■ その他

ページ先頭へ


Copyright(©)2004-2017 First home server construction. All Right Reserved.