EC-CUBE / ec-cube

EC-CUBE is the most popular e-commerce solution in Japan
https://www.ec-cube.net
Other
744 stars 648 forks source link

magic_quotes_gpc = On 問題 #1229

Closed ttsuru closed 7 years ago

ttsuru commented 8 years ago

magic_quotes_gpc = On となっている環境ではインストーラが表示されず、初心者がつまづく原因となっている様子。 magic_quotes_gpc は 5.3で非推奨、PHP 5.4で廃止。

Onになっているのはさくらのレンタルサーバなどとのこと。

refs #1226

nanasess commented 8 years ago

.user.ini で設定するのは、できないんでしたっけ?

nobuhiko commented 8 years ago

645

ttsuru commented 8 years ago

@nanasess 設定する方法があるはずですので、わたしもコードで対応する必要はないと思います。 そもそも非推奨の値ですし。。。 ただ、そもそもログすら確認しない層のためにメッセージ付きで die してもよいかと思いました。

@nobuhiko @k-yamamura の #645 での

magic_quotes_gpcをOnにしているケースはほぼ想定されないためcloseします。

のコメントから、こちらは特段コードで対応する必要はないのではないでしょうか。 もしくは直接 die してもよいような気がしますが、いかがでしょうか。

nobuhiko commented 8 years ago

レンサバでも快適に使えることが最低条件だったと思います

コードでチョロっと書いておけば解決する問題なのに対応しないのがよくわかりません

ttsuru commented 8 years ago

@nobuhiko 動作対象は公式レンタルサーバだと思いましたがいかがでしょうか。

そもそも5.3では非推奨の値が設定されていることの方が問題ではないのでしょうか。

ttsuru commented 8 years ago

@Yangsin 本件、いかがでしょうか。 今後も同様のレンサバ特有の設定パラメーターによる問題がでてくると思いますが、それぞれにコードで対応していくのでしょうか。 たとえば、mbstringが utf-8 以外になっているなど、同様のケースは様々考えられると思います。 これを全てEC-CUBE側で対応するのでしょうか。

インストーラのみにチェックを実装して、設定自体はユーザーが行う形でもよいかと思いますが・・・

nobuhiko commented 8 years ago

@ttsuru PHP5.3のphp.iniだとOnになっちゃってるんじゃないでしょうか。

ttsuru commented 8 years ago

@nobuhiko CentOS6のPHP5.3で確認しましたが、デフォルトでオフですね。

対応するとすれば、以下のあたりの Request::createFromGlobals(); のあたりが適切かと思います。 https://github.com/silexphp/Silex/blob/217d29aa5059afef2907eb8a80e0b5d4c674400e/src/Silex/Application.php#L557

k-yamamura commented 8 years ago

http://symfony.com/doc/current/reference/requirements.html

magic_quotes_gpc以外にも設定しなければいけないものもありますが、 本来であればphp.iniに設定できれば解決する話ではありますが、 php.iniが使えないレンタルサーバのために、 .htaccessに記述する方法を公式にアナウンスすれば問題ないかと思いますがいかがでしょうか。

さくらサーバであればコントロールパネルからphp.iniの設定が可能ですし、 php5.4以降を使われる方には不要な設定のため.htaccesに記述すれば解決するということを 明示してあげれば良いと思います。

初心者の方には敷居が高い話ではありますが。

nobuhiko commented 8 years ago

公式にアナウンスというか、最低限インストーラーで案内して欲しいです wikiに書いてありますと言ったところで見ない人はみないですし

k-yamamura commented 8 years ago

@nobuhiko 当然、見ない人は見ないと思いますので、 最初のインストール画面で必要な設定を明示してあげる方法でよろしいでしょうか?

nanasess commented 8 years ago

.user.ini で設定はできなかったんでしたっけ??

ttsuru commented 8 years ago

http://php.net/manual/ja/configuration.file.per-user.php こちらですね。

CGI/FastCGI SAPI

なので、限定されますが、こちらと.htaccessで対応でもよいかもしれませんね。

nanasess commented 8 years ago

共有レンタルサーバーの多くは FastCGI なので、 .htaccess と .user.ini に設定しておいてあげたらいかがでしょう? PHP5.4 以降だと警告が出るのであれば、インストーラで警告を出す、で良いと思います。

ttsuru commented 8 years ago

設定のチェックはインストーラでも出したほうがいいかもしれませんね。 Symfonyではcheck.phpが同梱されていて、シンプルにチェックできます。

Yangsin commented 8 years ago

デフォルトで .htaccess や .user.iniに用意しておいて問題ないならそれでよいです。 それで対応できないなら、何かしらコード上でも対応してあげるのが、すこしでも、環境とかに気をつかわずにすむので良いですね。

nobuhiko commented 8 years ago

.htaccessにphp_flagを書くだけで落ちるレンサバあるからあんまそこでやりたくないなーと思うのが正直なところです

seasoftjapan commented 8 years ago

<IfModule mod_php5.c> とか。

ttsuru commented 8 years ago

@nobuhiko ぜひ知っておきたいんですが、 .htaccess に php_flag を書くだけで落ちるサーバってどちらですか? もしそうなら、EC-CUBE2も動かないのではないでしょうか。

seasoftjapan commented 8 years ago

共用サーバー・FCGI環境とかで、見かけますね。 .htaccess を削除すれば動作します。EC-CUBE 2 は、magic_quotes_gpc = On にコードでも対応していますし。 https://www.xserver.ne.jp/manual/man_install_ec.php#i3 http://www.ablenet.jp/support/aplication/eccube_212.shtml http://www.ryota.info/labo/ec-cube/ec-cube.html

ttsuru commented 8 years ago

@seasoftjapan いただいたサーバで実際に php_flag を書くと落ちるのでしょうか。

seasoftjapan commented 8 years ago

一般的には、HTTP ステータス 500 を返すと思いますよ。

seasoftjapan commented 8 years ago

php_flag に限らず、hoge でも x でも同様だと思います。

nobuhiko commented 8 years ago

さくらもダメなんです https://help.sakura.ad.jp/app/answers/detail/a_id/1020/related/1/session/L2F2LzEvdGltZS8xNDQ4NTEyNTU3L3NpZC95am5jZHJDbQ%3D%3D

nanasess commented 8 years ago

<IfModule mod_php5.c> とか。

CGI/FastCGI な環境でも、これ書いておけば大丈夫なのでしたら、 .user.ini.htaccess に設定しておいて、それでも無視されるような環境用に、 addDanger とかでエラーメッセージ出すか、無効にするコードで対応するようにしたら良くないでしょうか?

たしか、 php.ini を全ディレクトリにばら撒かないといけないようなサーバーもあったと記憶していますので、 .user.ini も無視されるんじゃないかなと。

geany-y commented 8 years ago

このissuesは平行線気味かと思います。 PHPのマニュアルですら以下内容です。 http://php.net/manual/ja/security.magicquotes.disabling.php 最後の方のコメントに添って警告だけでよい様な気がします。

Yangsin commented 7 years ago

3.1以降では、PHP5.3の廃止を予定しておりますのでこちらは参考情報という扱いとして、リリースマイルストーンからは外し、クローズします。