前提・実現したいこと
本番環境(ロリポップ)で正常にファイルを取得し、表示したい。
発生している問題・エラーメッセージ
ローカルホストでは正常表示されるのに、本番環境(ロリポップ)に移すと、エラーになってしまう。 $_SERVER['DOCUMENT_ROOT'];で、ドキュメントルートを取得できていないのではないか? ~以下ブラウザに表示されたエラーメッセージ~ Warning: include_once(/home/users/1/main.jp-XXXXXX-llc/web/src/parts/temp.php): failed to open stream: No such file or directory in /home/users/1/main.jp-XXXXX-llc/web/session/index.html on line 5 Warning: include_once(): Failed opening '/home/users/1/main.jp-XXXXXX-llc/web/src/parts/temp.php' for inclusion (include_path='.:/usr/local/php/7.3/lib/php') in /home/users/1/main.jp-XXXXXX-llc/web/session/index.html on line 5
フォルダ構造
※今回のエラーの原因が疑われるファイルだけ★をつけてあります. session ├ admin ├ assets ├ contents ├ src │ ├ common │ └ parts │ ├ ★temp.php │ └ 他8phpファイル ├ c.php ├ 404.html ├ ★.htaccess └ ★index.html
index.php
php
1<!DOCTYPE html> 2<!--ルートフォルダを変数に格納--> 3<?php $webroot = $_SERVER['DOCUMENT_ROOT']; ?> 4<!--テンプレートファイルをインクルードする設定--> 5<?php include_once($webroot."/src/parts/temp.php"); ?> 6<!--**↑がエラーに。$webroot."/src/parts/temp.phpが読み込めない。**--> 7
temp.php
<html> <?php include_once($webroot."/src/common/setup.php"); ?> <?php include_once($webroot."/src/parts/head.php"); ?> <?php include_once($webroot."/src/parts/body.php"); ?> </html>
.htaccess
htaccess
1php_flag session.bug_compat_warn off 2AddHandler php7.3-script html 3 4#AddType application/x-httpd-php .php .html 5 6RewriteEngine on 7#以下はリダイレクト対象の除外拡張子設定 8RewriteCond %{REQUEST_FILENAME} !^(.*).(gif|png|jpg|jpeg|css|php|js|csv)$ [NC] 9RewriteRule / index.html 10 11php_flag display_errors On
試したこと
ローカルからロリポップにアップした手順は、
1.ロリポップで新規データベースを作り、ローカルのデータベースをエクスポート、新規データベースでそれをインポートした。
2.ルートディレクトリのphpバージョンを確認したうえで、.htaccessを上記のように変えた。
3.ここで記してはいないが、データベース接続オプションの記述を変更した。(この部分は合っているはずです。)
4.ロリポップで既存のルートディレクトリ下に、sessionというフォルダを作り、ファイル一式をアップロードした。
補足情報(FW/ツールのバージョンなど)
ロリポップのphpバージョンは、7.3(CGI版)です。