質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

3690閲覧

PHPのソースコードがそのまま表示されてしまう

kakeiteiya

総合スコア252

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2019/02/27 03:02

編集2019/02/27 04:29

#現象
PHP5.4からphp7.0にアップデートしたところ、PHPのソースがそのまま表示されるようになってしまいました。

PHP5.4に戻すとまたちゃんとページが正常に表示されます
こちらphp5.4に戻しても同じ現象になりました。

#環境
OS : Amazon Linux 2 AMI
Apache : Apache/2.4.37 ()

#やったこと
https://qiita.com/heimaru1231/items/84d0beca81ca5fdcffd0
こちらを参考に
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

yum remove php-*

yum install --disablerepo=* --enablerepo=remi,remi-php70 php-mysqlnd php-intl

とコマンドを打ちましたが、エラーでした。
php7.0のインストールはできているのですが、phpのソースコードが文字のまま表示されています
再び5.4をいれたときも
上記のコマンドに
yum install --disablerepo=* --enablerepo=remi,remi-php54 php-mysqlnd php-intl

としただけですが、ちゃんと表示されます

#やったことの追記
/etc/httpd/conf/httpd.confに以下の追加をしました。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

php.iniのshort_open_tagをOnにしました

が、phpinfo();を読んでも文字がそのまま出力されるだけです

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/02/27 03:15 編集

phpはどこで動いていますか、apacheのモジュールモードなのか、それともcgiモードなのか。php.iniも入れ替えによって書き換わっている恐れがあります。 phpの入れ替えのあと、systemctl restart httpd とかやってますか?
kakeiteiya

2019/02/27 03:18

ありがとうございます。 >phpはどこで動いていますか、apacheのモジュールモードなのか、それともcgiモードなのか すみません。こちらどのように調べればよいでしょうか。。 php.iniですが、phpを全削除して、php5.4を入れなおすと動いているのですが、5.4のときのphp.iniをバックアップとって入れたほうがいいでしょうか systemctl restart httpd は設定ファイルの変更後、毎回しています
m.ts10806

2019/02/27 03:43

アップデート後、本当にPHPインストール成功してるんでしょうか。 php -vで確認してみたりPHPコマンドでそのphpinfo()が書いてあるプログラムを実行してみたりして確認してください。
kakeiteiya

2019/02/27 03:49

ありがとうございます。 >php -v PHP 7.0.33 (cli) (built: Jan 9 2019 14:57:19) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies phpinfo()はtest.phpなるファイルをつくってそこで確認してますが、 <?php phpinfo(); ?> という文字が表示されるだけです
m.ts10806

2019/02/27 03:50

コマンドで実行してもということですか? php test.php
m.ts10806

2019/02/27 03:51

apacheのステータスも確認してみてください systemctl status httpd あとは、ログ確認ですね。
kakeiteiya

2019/02/27 03:54

コマンドの実行ではphpinfoでました・・! > php test.php phpinfo() PHP Version => 7.0.33 System => Linux ip-172-31-11-235.ap-northeast-1.compute.internal 4.14.77-81.59.amzn2.x86_64 #1 SMP Mon Nov 12 21:32:48 UTC 2018 x86_64 Build Date => Jan 9 2019 14:57:14 Server API => Command Line Interface Virtual Directory Support => disabled Configuration File (php.ini) Path => /etc Loaded Configuration File => /etc/php.ini
kakeiteiya

2019/02/27 03:55

アパッチのステータスですが、いまはActive:failedとなっています。 /etc/httpd/conf/httpd.confに以下を追記したところ、再起動できなくなっています。 消すと再起動できますが、、 LoadModule php7_module modules/libphp7.so
guest

回答1

0

ベストアンサー

httpd.confで
LoadModule php7_module うんたら
の記述ができてないんじゃないかな?

httpd.confの中で、
LoadModuleって文字列で検索をかけて、
おそらくphp54_moduleにつながってるなら
php7_moduleに変更するとかしないと。

あるいは、
/etc/httpd/conf.d/
の中にphp54系とphp70系が混在しているなら
整理してphp70系のみにするとか。


Amazon Linux 2はCentOS/Fedora/RHELとどこまで同じかわからないので、
remiリポジトリを組み込んで云々のテクニックはやめたほうがいい気がします。
(延々とCentOS6/7系の話だろうと思いこんで、その線で回答していました。)

Amazon Linux 2でPHP7.2をインストールする - Qiita
Amazon Linux 2でサーバ作成 (Apache2.4+PHP7.2+MariaDB) - Qiita

この記事だとphp7.2ですが、7.3が使えるならそっちのほうがよろしいかと。

epelとかremiとかの組み込みも一旦削除したほうがいいかもしれず。

公式ドキュメント:
チュートリアル: Amazon Linux 2 に LAMP ウェブサーバーをインストールする
こちらはphp7.2で説明されてます。

投稿2019/02/27 03:20

編集2019/02/27 04:35
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kakeiteiya

2019/02/27 03:27

ありがとうございます。 LoadModule php7_module modules/libphp7.so を追記したところ、再起動時に下記のエラーがでました。 Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.
kakeiteiya

2019/02/27 03:27

/etc/httpd/conf.d/の中にはphpに関係してそうなものが何もなかったのですが、おかしいですかね。。
退会済みユーザー

退会済みユーザー

2019/02/27 03:30

apache httpdにphpを組み込んでいるのであれば通常モジュールモードのハズで、 httpd.conf や conf.d/*.conf のどこかで LoadModule しているはずです。 根気強く記述箇所を特定するしかないかと。grepとか駆使して。
kakeiteiya

2019/02/27 03:39

ありがとうございます。 さがしてみます
kakeiteiya

2019/02/27 04:01

[root@ip-xxxxxxxxxx httpd]# find /etc/httpd -type f -print | xargs grep 'LoadModule' /etc/httpd/conf/httpd.conf.rpmnew:# have to place corresponding `LoadModule' lines at this location so the /etc/httpd/conf/httpd.conf.rpmnew:# LoadModule foo_module modules/mod_foo.so /etc/httpd/conf/httpd.conf.rpmsave:# have to place corresponding `LoadModule' lines at this location so the /etc/httpd/conf/httpd.conf.rpmsave:# LoadModule foo_module modules/mod_foo.so /etc/httpd/conf/httpd.conf_bk:# have to place corresponding `LoadModule' lines at this location so the /etc/httpd/conf/httpd.conf_bk:# LoadModule foo_module modules/mod_foo.so /etc/httpd/conf/httpd.conf:# have to place corresponding `LoadModule' lines at this location so the /etc/httpd/conf/httpd.conf:# LoadModule foo_module modules/mod_foo.so /etc/httpd/conf/httpd.conf:LoadModule php7_module modules/libphp7.so ⇒ 先ほど追記したところです
kakeiteiya

2019/02/27 04:03

このような感じで調べているのですが、LoadModuleしている箇所は他にもたくさんありましたが、php関係は/etc/httpdにはなさそうでした 他の場所という可能性ありますか?
退会済みユーザー

退会済みユーザー

2019/02/27 04:03

modules/libphp7.so は実在するかは確認してますか? わざわざ手動でコピーする必要はないはずだけど、一応念の為。
kakeiteiya

2019/02/27 04:12

ありがとうございます。 /etc/httpd/modules こちらに libphp7.so libphp7-zts.so がなかったので、他サーバからコピーして入れました。。 アパッチ再起動したところ、エラーなく再起動できましたが、現象はかわりません。。
kakeiteiya

2019/02/27 04:13

libphp7.so libphp7-zts.so を入れようとしたときに、以下のコマンドで入れようと試したのですが、下記のエラーがでており気になっています [root@ip-xxxxxxxx modules]# sudo yum install php Loaded plugins: langpacks, priorities, update-motd amzn2-core | 2.4 kB 00:00:00 http://repos.fedorapeople.org/repos/jkaluza/httpd24/epel-2/x86_64/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found Trying other mirror. 198 packages excluded due to repository priority protections Resolving Dependencies --> Running transaction check ---> Package php.x86_64 0:5.4.16-45.amzn2.0.6 will be installed --> Processing Dependency: php-cli(x86-64) = 5.4.16-45.amzn2.0.6 for package: php-5.4.16-45.amzn2.0.6.x86_64 --> Processing Dependency: php-common(x86-64) = 5.4.16-45.amzn2.0.6 for package: php-5.4.16-45.amzn2.0.6.x86_64 --> Finished Dependency Resolution Error: Package: php-5.4.16-45.amzn2.0.6.x86_64 (amzn2-core) Requires: php-common(x86-64) = 5.4.16-45.amzn2.0.6 Installed: php-common-7.0.33-2.el7.remi.x86_64 (@remi-php70) php-common(x86-64) = 7.0.33-2.el7.remi Available: php-common-5.4.16-43.amzn2.x86_64 (amzn2-core) php-common(x86-64) = 5.4.16-43.amzn2 Available: php-common-5.4.16-43.amzn2.0.1.x86_64 (amzn2-core) php-common(x86-64) = 5.4.16-43.amzn2.0.1 Available: php-common-5.4.16-43.amzn2.0.2.x86_64 (amzn2-core) php-common(x86-64) = 5.4.16-43.amzn2.0.2 Available: php-common-5.4.16-43.amzn2.0.3.x86_64 (amzn2-core) php-common(x86-64) = 5.4.16-43.amzn2.0.3 Available: php-common-5.4.16-43.amzn2.0.4.x86_64 (amzn2-core) php-common(x86-64) = 5.4.16-43.amzn2.0.4 Available: php-common-5.4.16-45.amzn2.0.5.x86_64 (amzn2-core) php-common(x86-64) = 5.4.16-45.amzn2.0.5 Available: php-common-5.4.16-45.amzn2.0.6.x86_64 (amzn2-core) php-common(x86-64) = 5.4.16-45.amzn2.0.6 Error: Package: php-5.4.16-45.amzn2.0.6.x86_64 (amzn2-core) Requires: php-cli(x86-64) = 5.4.16-45.amzn2.0.6 Installed: php-cli-7.0.33-2.el7.remi.x86_64 (@remi-php70) php-cli(x86-64) = 7.0.33-2.el7.remi Available: php-cli-5.4.16-43.amzn2.x86_64 (amzn2-core) php-cli(x86-64) = 5.4.16-43.amzn2 Available: php-cli-5.4.16-43.amzn2.0.1.x86_64 (amzn2-core) php-cli(x86-64) = 5.4.16-43.amzn2.0.1 Available: php-cli-5.4.16-43.amzn2.0.2.x86_64 (amzn2-core) php-cli(x86-64) = 5.4.16-43.amzn2.0.2 Available: php-cli-5.4.16-43.amzn2.0.3.x86_64 (amzn2-core) php-cli(x86-64) = 5.4.16-43.amzn2.0.3 Available: php-cli-5.4.16-43.amzn2.0.4.x86_64 (amzn2-core) php-cli(x86-64) = 5.4.16-43.amzn2.0.4 Available: php-cli-5.4.16-45.amzn2.0.5.x86_64 (amzn2-core) php-cli(x86-64) = 5.4.16-45.amzn2.0.5 Available: php-cli-5.4.16-45.amzn2.0.6.x86_64 (amzn2-core) php-cli(x86-64) = 5.4.16-45.amzn2.0.6 You could try using --skip-broken to work around the problem You could try running: rpm -Va --nofiles --nodigest
kakeiteiya

2019/02/27 04:13

5.4は消しているはずなのですが、なぜかここで5.4の記述が出力されていました
退会済みユーザー

退会済みユーザー

2019/02/27 04:14

他のサーバーからコピーしていれるものじゃない気がするのだけど。 httpd.conf に Include conf.modules.d/*.conf って記述があるなら、そこも点検してください。
退会済みユーザー

退会済みユーザー

2019/02/27 04:17

remi-php70が有効な状態でやらないと、通常のリポジトリでは標準でサポートされている5.4が入れられてしまいます。 phpのバージョンを混在させる気がなければ、 私なら https://rpms.remirepo.net/wizard/ で正しく環境パラメータを設定して 黙ってても最新php73が入るようにしちゃう。
kakeiteiya

2019/02/27 04:18

>他のサーバーからコピーしていれるものじゃない気がするのだけど。 おっしゃるとおりです。。。 こちらの記述はありました # # Dynamic Shared Object (DSO) Support # # To be able to use the functionality of a module which was built as a DSO you # have to place corresponding `LoadModule' lines at this location so the # directives contained in it are actually available _before_ they are used. # Statically compiled modules (those listed by `httpd -l') do not need # to be loaded here. # # Example: # LoadModule foo_module modules/mod_foo.so # Include conf.modules.d/*.conf
退会済みユーザー

退会済みユーザー

2019/02/27 04:18

あれ、aws使ってるの? OS環境とかも大事な情報なので、質問内容に追記よろしく。
kakeiteiya

2019/02/27 04:18

私なら https://rpms.remirepo.net/wizard/ で正しく環境パラメータを設定して すみませんが。ここを詳しく教えていただけないでしょうか。。 混在させる気はないです
kakeiteiya

2019/02/27 04:20

aws使っております OS環境ですが、Amazon Linux 2 AMI で回答になっているでしょうか・・! こちらで追記します
退会済みユーザー

退会済みユーザー

2019/02/27 04:30

CentOS6/7のつもりで回答をつけていたので、Amazon方面はテンでわからず。 でネット検索すると Amazon Linux 2でPHP7.2をインストールする - Qiita <https://qiita.com/owlbeck/items/20f3e5402cb782f6291e> っていう記事があるのでご一読を。 まぁ、yumが使える→remiリポジトリが使えるはず、ということでもいいかもしれないけど、 ディストリビューション的にCentOS/Fedora/RHELとAmazon Linux2とがどこまで同じかわからないので、 remi使わずAmazon Linux 2特化の記事を参考にするべき。
kakeiteiya

2019/02/27 04:33

ありがとうございます・・・・!!!!!!!!!!! こちらの記事を元にphp7.0でインストールしてみます
kakeiteiya

2019/02/27 05:32

頂いた記事でphp7.2をインストールするとページが表示されました・・・! ただphp7.2だと真っ白なページ(おそらくバージョンの違いによるもの)のものがあったりしており、 php7.0をインストールしたいです。。 sudo amazon-linux-extras install php7.2 ↓ sudo amazon-linux-extras install php7.0 としたのですが、「Topic php7.0 is not found.」 とエラーでした。。
退会済みユーザー

退会済みユーザー

2019/02/27 05:51

リポジトリ上にphp7.0はないんだと思います。 7.0に固執するならソースからビルドかと。
退会済みユーザー

退会済みユーザー

2019/02/27 06:46

公式サポートされているPHP7.2に落ち着いたら楽だと思います。 ソースからビルドする方法は自己解決能力が問われ、トラブルが発生してもAmazonですら助けてくれないと思います。 PHP7.0でしか動かないものってのはほとんどなく、バージョン変更履歴などの情報を元に改修加えればPHP7.2でも動くようになるはずですので差し支えないかと思います。 これ以上はお助けできる情報は提供できません。
kakeiteiya

2019/02/27 07:00

かしこまりました。 ありがとうございました。 php7.2でどうかしてみようとおもいます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問