本ページは広告が含まれています。気になる広告をクリック頂けますと、サーバ運営費になります(^^
PHPアプリが動かず白い画面に
自前構築サーバで運用していた、PHPアプリを、ロリポップで動かそうと思ったら、画面が真っ白になって動かなくなったので、どういう事かな?と思い、調べて動くようにしたメモです。
ハイスピードプラン PHP.iniは利用できない
ロリポップハイスピードプランを利用しています。PHP.iniは設定を変える事ができません。その時に重宝したのが、
ini_set()
です。
PHP.iniを利用しなくても、PHPファイル内で設定オプションの値を設定する事ができます。ロリポップのハイスピードプランはLiteSpeedが利用されており、PHP設定も下記の通り固定されています。このままだとsession変数も使えない、、、。
ini_setで設定したもの
どこでエラーが発生しているかを表示させる
ini_set(‘display_errors’, “On”);
やっぱり、エラー表示は重要ですよね。画面が真っ白になってどこでどうなっているのか全くつかめない状況でしたが、エラーを表示させることにより、セッション変数が有効になっていない事が分かりました。
session変数を有効にする
ini_set(‘session.auto_start’,”1″);
ini_set(‘output_buffering’,”1″);
ディレクトリ指定は可能
PHPファイル内で読み込みたい別ファイルはディレクトリ指定が可能です。
$data_file = “/home/users/1/cut.jp-1/web/pass/data_file.dat”; //データファイルの指定
また、web上から触られたくないファイルであれば、
/home/users/1/cut.jp-1/pass/data_file.dat
におく事も可能です。
webフォルダが、web公開のルートディレクトになります。
PHP入りHTMLを動かす
標準では、HTMLの中に入れ子したPHPは動きませんでした。PHPコードがそのまま出てきてしまいます。
.htaccessに以下の設定を入れます
AddHandler php7.4-script .html AddType application/x-httpd-php .php .html
動いた!
データダウンロードはWinSCPで
ロリポップのFTP接続だと、webディレクトリ配下しかアクセスできません。セキュリティを考えて、webディレクトリの一つ上の階層にデータディレクトリを作成した場合に、データをダウンロードする時の方法です。
FTP接続すると、webフォルダがルートになるよう設定されいます。なので、この上の階層に移動する事ができません。
WinSCPでSSH接続し、
リモートディレクトリを指定して、ログインすると、うまく指定のディレクトリに入る事ができます。