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

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

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

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

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

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

解決済

1回答

1911閲覧

PHP、MySQLのデータ移行後の動作確認

testtesttest

総合スコア9

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

MySQL

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

PHP

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

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2018/07/06 03:56

編集2018/07/06 04:42

◆移行先環境

 OS:CentOS7.2(VMWare)
DB:MySQL5.7.22
Webサーバ:Apache2.4.6
PHP:PHP7.2.7

◆移行元環境(参考)

 OS:CentOS Linux release 7.2.1511 (Core)
Webサーバー(httpd):Apache/2.4.6 (CentOS)
SSL:OpenSSL 1.0.1e-fips 11 Feb 2013
(openssl.x86_64, openssl-devel.x86_64, openssl-libs.x86_64)
PHP: PHP/7.2.3
DB:MySQL(MariaDB) Ver 15.1 Distrib 5.5.44-MariaDB, for Linux   (x86_64) using readline 5.1
使用フレームワーク: CakePHP 3.6.2

もともと別環境で作られたソースとデータベースを他環境へ移行しています。
移行元では正しく動いていますが、移行先でも正しく動くようにしたい
のですがうまく動作しません。

具体的にはphpでMySqlのテーブルへアクセスし、POST実行しようとしています。
がその際、500 Internal Server Errorというエラーが出力されてしまいます。
上記の状況よりphpの表示はできるものの、MySqlのテーブルへのアクセスが
うまくいってなさそうなのはわかるのですがどこを改善したらよいのか
見当もつきません。申し訳ないですがヒントをいただけると幸いです。

↑↑
上記でphpからMySqlのテーブルアクセスがうまくいっていないと書きましたが
他のテストソースを作成し、phpからテーブルの内容を表示すること自体は成功しました。
残る可能性として、Apacheの設定とphpの設定ファイルの内容があっているかどうかを
確かめようとしています。

できていること

・phpinfo画面は表示できることを確認済み
・mysqldumpでテーブルのデータを移行済み、mysqlの環境で
select文を発行し正しく出力できることを確認済み

phpで行おうとしていること

1.phpでログイン画面を表示
2.ユーザはID、パスワードを入力、ログインボタンクリック
3.POST側でMySQLのテーブルに保持されているID、パスワードと突き合わせ認証

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

上記「3」で「500 Internal Server Error」と表示される
他にはphpinfo画面を表示した際、「mysqlnd statistics」箇所で
すべて「0」と表示されてしまう
またphp実行時、error.logには以下のようなメッセージが出力される(抜粋)

#24 /var/www/html/vendor/cakephp/cakephp/src/Routing/Middleware/AssetMiddleware.php(88): Cake\Http\Runner->__invoke(Object(Cake\Http\ServerRequest), Object(Cake\Http\Response))

該当のソースコード(AssetMiddleware.php)

public function __invoke($request, $response, $next) { $url = $request->getUri()->getPath(); //←ここでエラー if (strpos($url, '..') !== false || strpos($url, '.') === false) { return $next($request, $response); }

試したこと

・cakephpを導入しなおした(そもそもcakephpが必要なのかすら疑問ですが)

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

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

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

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

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

guest

回答1

0

ベストアンサー

PHPで「500 Internal Server Error」が出るのは、該当箇所ではなく、以外な事が原因で出ることがあります。いわゆる「凡ミス」というやつですね^^;。

  • .htaccessの記述ミス。
  • httpd.confで.htaccessが使えない設定になっている。
  • php.iniの記述ミス。

が、私が経験した現象です。いろいろググられたと思いますが、.htaccessあたりを見てみたらどうでしょう?

参考になれば幸いです。

投稿2018/07/06 05:03

SaintKnowledge

総合スコア368

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

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

testtesttest

2018/07/09 09:54 編集

早速ありがとうございます。 アドバイスをもとに.htaccessやphp.ini、app.phpを見直してみました。 うちapp.phpのdatabase接続先設定でもともとはDHCP設定で取得されたIPアドレスを設定していました。そちらを’localhost’に変更したところ「500 Internal Server Error」は解消しました。 ※他の問題が起こっていますが割愛します。 そもそもDHCPでとれたIPアドレスを 静的にapp.phpに設定するのは間違いなのか、別途DNSを立ててドメイン指定をすべきか今まだ試行中です。 返信遅れて大変失礼しました。 どうもありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問