泣きながら食べたご飯の思い出

始めての投稿・質問です。
当方、目下独学でWebサイトの自作に挑戦中です。
環境は、Mac OSX(mavericks),MAMP,Dreamweaver CC (+ PHP) 。
上記環境でphpをCGIのように動かしたいよ思っています。
質問[1] .htaccessの設定は以下で正しいでしょうか?
Addhandler application/x-httpd-php55cgi .php .html .htm
質問[2] php.iniの設定は以下で正しいでしょうか?
error_reporting = E_ALL | E_STRICT
default_charset = "UTF-8"
include_path = "Applications/MAMP/bin/php/php5.5.3/lib/php"
date.timezone = Asia/Tokyo
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.http_output = pass
mbstring.encoding_translation = on
output_buffering = on
mbstring_substitute_character = "?"
質問[3]上記以外にも重要な設定事項や記載事項があれば教えてください。
以上、なにぶん初心者のため勉強範囲もまだ狭く、専門用語も十分理解把握できない
かもしれません。なにとぞそこを考慮してご教示をお願いいたします。

A 回答 (4件)

CORE SERVER.JP - PHPをCGIとして動かす方法について


http://www.coreserver.jp/help/index.php/phpcgi/

参考にされたのはこちらの記事でしょうか?ちょっと内容が古そうですね。

>> そのほうがセーフモードやユーザー名の制限が無くなる…とありました。

PHPのセーフモード自体がすでに昔の機能なんですよね…

PHP Manual - セーフモード
http://php.net/manual/ja/features.safe-mode.php

パーミッション644で動作するのかに関しては、私が調べた限りでは肯定する意見も否定する意見も存在したので、実際に検証してみないことには明言することは出来ません。一般的にCGIという枠で考えれば755が必要だと思ったのですが…ただ、これがCGI版のメリットではないことは断言できます。モジュール版はパーミッション644で動作します。

もっと詳しい記事を見つけたので掲載させていただきます(CentOS向けですが)↓

レンタルサーバー・自宅サーバーの設定・構築のヒント
http://server-setting.info/centos/php_cgi_module …
http://server-setting.info/centos/apache_fastcgi …
http://server-setting.info/centos/apache-mod_fas …

まあ、特に拘らずとも標準のモジュール版を使っておけば何も問題はないと思います。練習環境でパフォーマンスチューニングなんてする必要もありませんし。

この回答への補足

http://www.fumi.org/neta/201205sv.html
によりますと、phpはModule方式かCGI方式かの2者択一ではなく、両者は共存でき、呼び出し方の違いだけ。実行形式を切り替えているのではない。という記述を見つけました。
脆弱性解消にはmime_moduleなどにAddHandler cgi-script .hoh
Action cgi-script / cgi-bin/php-cgi
と記述すれば良い。とありました。
アドバイスいただいた
http://server-setting.info/centos/apache_fastcgi …
も以前に参照していましたが、PHPをCGi版で動作させるとphpinfo( );の出力情報に「Server API CGI/FastCGIと表示され、phpはFastCGIに対応している…
となっています。両者が共存できる、という点は同じ解説でなないでしょうか?

補足日時:2014/02/19 16:18
    • good
    • 0
この回答へのお礼

大変ご親切な回答に感謝しています。サーバー側での動作やセキュリティを事前に自分なりに検証した上で、試作を続行したいと思います。時間がかかりますが今後もよろしくお願いいたします。

お礼日時:2014/02/19 16:23

ちなみに...


私は error_reporting = E_ALL | E_STRICT を推奨しておきます。
最初から error_reporting = E_ALL & ~E_NOTICE で書くとダメプログラマ一直線ですので。
E_NOTICEは変数名のタイプミスを見つけるのにも非常に役立ちますし。

この回答への補足

特に確認したいこと…
.htaccessの記述の件。サクラネットのサービス説明では拡張子.phpの場合に、x-httpd-phpcgi .phpと記述するように案内しています。
私の場合は 拡張子.htmlで要所にphpを記述します。その場合でも
「x-httpd-phpcgi .php .html .htm」で動くのかが心配です。

補足日時:2014/02/19 14:20
    • good
    • 0
この回答へのお礼

error_reporting の記述に関して参考になりました。ありがとうございました。
なお、一部に補足を加えました。アドバイスをいただけたら幸いです。

お礼日時:2014/02/19 14:23

今時純正のCGIなんか使う人なんかいるんでしょうか…「mod_php」か「FastCGI(mod_fcgid/mod_fastcgi)」の2択だと思いますが。

純正のCGIはデメリットばかりでいいこと全然ないですよ。

CentOSにfastcgiの導入&mod_phpとの比較
http://blog.mizoshiri.com/archives/1132

この回答への補足

モジュール版phpとしての使用と、CGI版phpとしての使用があるようですが、
私の場合はCGI版phpとして使いたいと思っています。そのほうがセーフモードやユーザー名の制限が無くなる…とありました。
またパーミッション644などCGIオーナー実行権限がなくても標準のモジュール版phpの設定を引き継いで動作するとも聞きました。正確には判りませんので質問した次第です。

補足日時:2014/02/19 14:35
    • good
    • 0
この回答へのお礼

回答ありがとうございまいた。回答に関しては即座に理解できませんが、よく調べて参考にさせてただ来ます。

お礼日時:2014/02/19 14:35

>上記環境でphpをCGIのように動かしたいよ思っています。



本当にCGIとして動かしたいのでしょうか?
AddType application/x-httpd-php .php
的なモジュールとして動かす方が一般的だと思いますが

>error_reporting = E_ALL | E_STRICT
深く学習したいテスト用やクライアントへの納品用の厳密なチェック必要な場合は
それでもいいかもしれませんが、下手に厳密チェックをするといろいろエラーを
消しこむのが面倒です。柔軟に処理したいなら
error_reporting = E_ALL ^ E_NOTICE
でも十分かと、もうちょい工夫して
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED
的な処理でもいいかも。

特定スクリプトだけ厳密にチェックしたいならスクリプトごとに
error_reporting(E_ALL | E_STRICT);
などを埋め込んでおけばいいので・・・

この回答への補足

拡張子は.htmlです。そこにphpを組み込んだサイトですが、AddType application/x-httpd-php .phpでサーバー側の処理ができるのか私には判然としませんので、質問させていただきました。

補足日時:2014/02/19 14:47
    • good
    • 0
この回答へのお礼

error_reportingの記述は大変参考になりました。
厳密チェックで多発するエラー判定を順次消していくのは大変、特定スクリプト
で対応すれば…は大変ありがたいアドバイスでした。
ありがとうございました。

お礼日時:2014/02/19 14:46

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!