Edited at

CentOS7+Nginx+PHP(php-fpm)で真っ白な表示になった

More than 1 year has passed since last update.

Nginxを触ったことがなかったので、触ってみたらハマったのでメモ。


症状

といってもタイトル通り。

初期設定後にphpinfo()なファイルを作成して見ようとしたら真っ白で表示されなかった。


よくある例

fastcgi_paramの記述を間違えてPHPが動かないっていうのがよくあるパターンらしい。


/etc/nginx/conf.d/default.conf

location ~ \.php$ {

root /home/user/www;
fastcgi_pass 127.0.0.1;
fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
+ fastcgi_param SCRIPT_FILENAME /document_root$fastcgi_script_name;
include fastcgi_params;
}


今回の例

テスト用にこのようなファイルを設置した。


info.php

<?

phpinfo()
?>

が、表示されなかった。Nginxの設定を何回も見直したが改善されない。

原因はNginxではなく、PHP側の設定にあった。


/etc/php.ini

- short_open_tag = OFF

+ short_open_tag = On

この設定はPHPのタグ(<?php ?>)の短縮形(<? ?>)を有効にするかどうかのもので、OFFの場合は<?php ?>のように明示する必要があるらしい。

今回作成したファイルでは明示されていなかったため、表示されなかった。

というかそもそも短縮タグを使わなければいい話なので設定を変える必要もなさそう。


参考サイト

phpinfoが真っ白で表示されない - monkey404

コア php.ini ディレクティブに関する説明 - PHPマニュアル