XPMPP環境とCentOS6環境で、formからactionをさせた際のアプリの振る舞いが異なるのですが、その原因が掴めず困っています。
XAMPP環境(windows10)
Apache2.4.10(win32)
php5.6.3
MySQL 5.6.21
CentOS6.8(Final) 環境(webサーバー)
Apache2.4.23
php 5.6.36
MySQL 5.6.33
パーフェクトPHPのサンプルフレームワークを元にアプリを構築しました。
リクエストは index.php で受け取り、クライアント側のURLでは基本では http://hoge/app/index.php 以降のpathを受け取って処理をしています。
例えばログインでは以下のURL
https://localhost/hoge/app/index.php/**account/signin**
この最後の account/signin でリクエストを受け取り処理をしています。
htmlのformはこうなっています。
html
1<form action="/hoge/app/index.php/**account/authenticate**" method="post" accept-charset="utf-8">
投げられたリクエストは authenticate で認証処理を行い、ログイン後のページにリダイレクトや、元のページにエラーを出力する等の処理をしています。
XAMPP環境では正常に動作をしてログイン処理がされますが、CentOS環境では動作が異なり、画面遷移が行われずURLにリクエスト先の
https://localhost/xxx/app/index.php/**account/authenticate**
が表示されるのみです。
この原因が掴めず難儀しています。
一応、以下の要因については調査をして、私の把握する範囲で、設定に関連する場所を以下に記述します。
phpファイルのソース(Git管理の為完全一致なので現状の要因から除外)
.htaccess(XAMPP,CentOS 共通)
/xxx/app/.htaccess に配置
<IfModule mod_rewrite.c> DirectoryIndex index.html index.cgi index.php .ht RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [QSA,L] </IfModule>
怪しいと思っているのが、 httpd.conf ですが、こんな構成です。
設定に絡むと思われる部分のみ抜粋します。(cgiはいずれも設定無し)
XAMPP
httpd.conf
1<Directory /> 2 AllowOverride none 3 Require all denied 4</Directory> 5<Directory "C:/xampp/htdocs"> 6 Options Indexes FollowSymLinks Includes ExecCGI 7 AllowOverride All 8 Require all granted 9</Directory>
CentOS側
httpd.conf
1<Directory "/var/www/html"> 2 Options FollowSymLinks Includes 3 AllowOverride All 4</Directory> 5<VirtualHost *:80> 6 ServerAdmin root@XXX.org 7 DocumentRoot /var/www/html 8 DirectoryIndex index.php index.php 9 ServerName www.XXX.org 10 ServerAlias xxx.org 11</VirtualHost> 12<VirtualHost *:443> 13 SSLEngine on 14 SSLCertificateFile /etc/letsencrypt/live/xxx.org/cert.pem 15 SSLCertificateKeyFile /etc/letsencrypt/live/xxx.org/privkey.pem 16 SSLCertificateChainFile /etc/letsencrypt/live/xxx.org/chain.pem 17 ServerAdmin root@xxx.org 18 DocumentRoot /var/www/html 19 DirectoryIndex index.php index.php 20 ServerName www.xxx.org 21 ServerAlias xxx.org 22</VirtualHost>
SSL対応の関係でCentOS側をVirtualhostにしています。
個人的にはこの辺が怪しいのかと思っていますが、基本設定とこちらの絡みでどう動作するかが、把握しきれていません。
また、公開フォルダ(/var/www/html)には別のindex.php があり、通常のウェブサイトを構築しています。ここには.htaccess等は置いていません。
こちらの現象の要因や記述等で原因に心当たりのある方、
これ以外の設定箇所等含めご指摘をお願いします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/09/30 05:44