Closed ttsuru closed 7 years ago
.user.ini
で設定するのは、できないんでしたっけ?
@nanasess 設定する方法があるはずですので、わたしもコードで対応する必要はないと思います。 そもそも非推奨の値ですし。。。 ただ、そもそもログすら確認しない層のためにメッセージ付きで die してもよいかと思いました。
@nobuhiko @k-yamamura の #645 での
magic_quotes_gpcをOnにしているケースはほぼ想定されないためcloseします。
のコメントから、こちらは特段コードで対応する必要はないのではないでしょうか。 もしくは直接 die してもよいような気がしますが、いかがでしょうか。
レンサバでも快適に使えることが最低条件だったと思います
コードでチョロっと書いておけば解決する問題なのに対応しないのがよくわかりません
@nobuhiko 動作対象は公式レンタルサーバだと思いましたがいかがでしょうか。
そもそも5.3では非推奨の値が設定されていることの方が問題ではないのでしょうか。
@Yangsin 本件、いかがでしょうか。 今後も同様のレンサバ特有の設定パラメーターによる問題がでてくると思いますが、それぞれにコードで対応していくのでしょうか。 たとえば、mbstringが utf-8 以外になっているなど、同様のケースは様々考えられると思います。 これを全てEC-CUBE側で対応するのでしょうか。
インストーラのみにチェックを実装して、設定自体はユーザーが行う形でもよいかと思いますが・・・
@ttsuru PHP5.3のphp.iniだとOnになっちゃってるんじゃないでしょうか。
@nobuhiko CentOS6のPHP5.3で確認しましたが、デフォルトでオフですね。
対応するとすれば、以下のあたりの Request::createFromGlobals();
のあたりが適切かと思います。
https://github.com/silexphp/Silex/blob/217d29aa5059afef2907eb8a80e0b5d4c674400e/src/Silex/Application.php#L557
http://symfony.com/doc/current/reference/requirements.html
magic_quotes_gpc以外にも設定しなければいけないものもありますが、 本来であればphp.iniに設定できれば解決する話ではありますが、 php.iniが使えないレンタルサーバのために、 .htaccessに記述する方法を公式にアナウンスすれば問題ないかと思いますがいかがでしょうか。
さくらサーバであればコントロールパネルからphp.iniの設定が可能ですし、 php5.4以降を使われる方には不要な設定のため.htaccesに記述すれば解決するということを 明示してあげれば良いと思います。
初心者の方には敷居が高い話ではありますが。
公式にアナウンスというか、最低限インストーラーで案内して欲しいです wikiに書いてありますと言ったところで見ない人はみないですし
@nobuhiko 当然、見ない人は見ないと思いますので、 最初のインストール画面で必要な設定を明示してあげる方法でよろしいでしょうか?
.user.ini で設定はできなかったんでしたっけ??
http://php.net/manual/ja/configuration.file.per-user.php こちらですね。
CGI/FastCGI SAPI
なので、限定されますが、こちらと.htaccessで対応でもよいかもしれませんね。
共有レンタルサーバーの多くは FastCGI なので、 .htaccess と .user.ini に設定しておいてあげたらいかがでしょう? PHP5.4 以降だと警告が出るのであれば、インストーラで警告を出す、で良いと思います。
設定のチェックはインストーラでも出したほうがいいかもしれませんね。 Symfonyではcheck.phpが同梱されていて、シンプルにチェックできます。
デフォルトで .htaccess や .user.iniに用意しておいて問題ないならそれでよいです。 それで対応できないなら、何かしらコード上でも対応してあげるのが、すこしでも、環境とかに気をつかわずにすむので良いですね。
.htaccessにphp_flagを書くだけで落ちるレンサバあるからあんまそこでやりたくないなーと思うのが正直なところです
<IfModule mod_php5.c>
とか。
@nobuhiko ぜひ知っておきたいんですが、 .htaccess に php_flag を書くだけで落ちるサーバってどちらですか? もしそうなら、EC-CUBE2も動かないのではないでしょうか。
共用サーバー・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
@seasoftjapan いただいたサーバで実際に php_flag を書くと落ちるのでしょうか。
一般的には、HTTP ステータス 500 を返すと思いますよ。
php_flag
に限らず、hoge
でも x
でも同様だと思います。
<IfModule mod_php5.c>
とか。
CGI/FastCGI な環境でも、これ書いておけば大丈夫なのでしたら、 .user.ini
と .htaccess
に設定しておいて、それでも無視されるような環境用に、 addDanger とかでエラーメッセージ出すか、無効にするコードで対応するようにしたら良くないでしょうか?
たしか、 php.ini を全ディレクトリにばら撒かないといけないようなサーバーもあったと記憶していますので、 .user.ini
も無視されるんじゃないかなと。
このissuesは平行線気味かと思います。 PHPのマニュアルですら以下内容です。 http://php.net/manual/ja/security.magicquotes.disabling.php 最後の方のコメントに添って警告だけでよい様な気がします。
3.1以降では、PHP5.3の廃止を予定しておりますのでこちらは参考情報という扱いとして、リリースマイルストーンからは外し、クローズします。
magic_quotes_gpc = On となっている環境ではインストーラが表示されず、初心者がつまづく原因となっている様子。 magic_quotes_gpc は 5.3で非推奨、PHP 5.4で廃止。
Onになっているのはさくらのレンタルサーバなどとのこと。
refs #1226