◆移行先環境
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が必要なのかすら疑問ですが)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/09 09:54 編集