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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

3回答

3115閲覧

レンタルサーバーでファイルが取得できず、画面に表示されない。ドキュメントルートを取得できないせいか??

dauhuku

総合スコア0

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

phpMyAdmin

phpMyAdminはオープンソースで、PHPで書かれたウェブベースのMySQL管理ツールのことです。

SQL

SQL(Structured Query Language)は、リレーショナルデータベース管理システム (RDBMS)のデータベース言語です。大きく分けて、データ定義言語(DDL)、データ操作言語(DML)、データ制御言語(DCL)の3つで構成されており、プログラム上でSQL文を生成して、RDBMSに命令を出し、RDBに必要なデータを格納できます。また、格納したデータを引き出すことも可能です。

PHP

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

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2021/07/19 02:05

前提・実現したいこと

本番環境(ロリポップ)で正常にファイルを取得し、表示したい。

発生している問題・エラーメッセージ

ローカルホストでは正常表示されるのに、本番環境(ロリポップ)に移すと、エラーになってしまう。 $_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版)です。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2021/07/19 02:07

$_SERVER['DOCUMENT_ROOT'] にどんな値が入っていたのでしょうか。
dauhuku

2021/07/19 03:07

ありがとうございます。/home/users/1/main.jp-XXXXXX-llc/webとなっていました。
guest

回答3

0

<?php $webroot = $_SERVER['DOCUMENT_ROOT']; ?>なんて乱暴な与え方をせず、
動作環境に合わせたディレクトリの絶対パスを与えれば済むだけなのでは?

ちなみに、ロリポップということなので、こちらをご参照ください:
ホームディレクトリのパスを教えてください – ロリポップ!レンタルサーバー

投稿2021/07/19 02:12

編集2021/07/19 06:30
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

dauhuku

2021/07/19 03:00

回答ありがとうございます。 phpはほぼ初心者でして、このコードもネットのチュートリアルを見ながら作ったもので、絶対パスをどうに書けばよいのかわかりません。。(書き方を調べてやってみたのですがエラーになってしまいました。) 具体的に私の場合どうに書けばよいのか、具体的にコードを教えていただけると助かりますm(__)m
退会済みユーザー

退会済みユーザー

2021/07/19 03:06

レンタルサーバーの業者が用意するマニュアルや、コントロールパネルなどで、 ドキュメントルートがどうなっているかが示されているはずで、 本人でないとわからない内容かもしれません。
dauhuku

2021/07/19 03:21

ありがとうございます。 <?php echo $_SERVER['DOCUMENT_ROOT'] ;?> で出てきた内容でしょうか?
guest

0

各include_onceの部分でロリポップの方ではsessionが必要ではありませんか?

include_once($webroot."/src/...

include_once($webroot."/session/src/...

となるのが正しい気がします。

投稿2021/07/19 06:46

webgoto

総合スコア1293

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

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

dauhuku

2021/07/20 06:50

ありがとうございます。 そのようにすると、エラーがたくさん書いてある画面がほんの一瞬表示された後、 404error お探しのページが見つかりませんでした。 との表示に代わってしまいます。。 index.htmlの、 <?php $webroot = $_SERVER['DOCUMENT_ROOT']; ?> を <?php $webroot = $_SERVER['DOCUMENT_ROOT']."/session/"; ?> にしても同様です。。
webgoto

2021/07/20 07:50 編集

おそらく今まで出ていた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 は消えていると思います。 temp.phpを読み込んだ事で、その中で別のエラーが起きているのだと思います。
guest

0

起きてる現象がすべてなので、「正しく取れてるかどうか」は出力して確認すれば明白です。

ただ、__DIR__で辿ったほうが変な依存なしにパスを構成できると思います。

投稿2021/07/19 02:21

m.ts10806

総合スコア80850

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

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

dauhuku

2021/07/19 02:58

回答ありがとうございます。 <?php echo __DIR__;?>と記述したら、 /home/users/1/main.jp-XXXXX-llc/web/sessionが取得できました(表示させました)。しかし、 <?php include_once(__DIR__."/src/parts/temp.php"); ?>とすると、 Warning: include_once(../../src/common/setup.php): failed to open stream: No such file or directory in /home/users/1/main.jp-XXXXXX-llc/web/session/src/parts/temp.php on line 2 となってしまいます。。なぜ../../srcとなってしまうのか・・・ 理解不足で申し訳ありませんが、記述が間違っていたらご教示いただけますと幸いです。
m.ts10806

2021/07/19 03:57

>なぜ../../srcとなってしまうのか・・・ しまう、というか仕様です。 PHPマニュアル確認してください。 __DIR__が保持するのは記載のあるファイルが置かれているディレクトリまでの絶対パス。 他の階層のファイルを指定したければそこから相対パス的に指定する必要があります。
m.ts10806

2021/07/19 04:40

そういえばindex.phpってどこにあるんでしょう。提示された構造内には見当たりませんが
dauhuku

2021/07/19 05:05

なるほど。。 temp.phpを以下のように書き換えましたがエラー内容は変わりません・・・。 <?php include_once(dirname(__FILE__)."/../../common/setup.php"); ?> <?php include_once(dirname(__FILE__)."/../../parts/head.php"); ?> <?php include_once(dirname(__FILE__)."/../../parts/body.php"); ?> index.htmlはありますが、index.phpはありません。.htaccessの記述によって、どちらでも大丈夫なようになると、チュートリアルに書いてあった気がします。
m.ts10806

2021/07/19 05:09

なんのチュートリアルか知らないですが、サーバーの設定にも影響がある.htaccessをなんとなく触るのはやめたほうが良いと思います。 レンタルサーバであれば、特に共用スペースだと他のユーザーにも影響が出ることだってあります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問