Web

設定

SAPI : Server API / PHPの場合Web serverごとにSAPIが用意されている。CGI/CLIもその一つ(たとえば php-apache2handler.ini等)

現在の順番: php-SAPI.ini > php.ini
過去(PHP4.3.0以前)の順番 : php-SAPI.ini < php.ini

  • php.ini
  • php.ini-dist -> php.ini設定の設定例
  • php.ini-recommended -> 各設定の説明

拡張モジュールの設定

動的にロードする為にphp.iniに記述

extension_dir=/usr/lib/php
extension=php_pgsql.so

読み込みの順番

SAPI用のiniファイル
 ↓×
iniファイルスキャンディレクトリにあるiniファイル
 ↓×
httpd.confのPHP設定
 ↓×
.htaccessのPHP設定
 ↓×
スクリプト内のPHP設定の変更

ショートタ"<?" "?>"はphp.iniで無効にすることが出来る(defaultでは有効)。XHTMLをふくむXHML文書を処理する際に問題がある
ASPタグ"<%" "%>"を利用するにはphp.iniで

asp_tags=On

にする

CGI redirection [#d0a211f8] 直接インタプリタにアクセスせず、CGIを実行する
設定方法

 ./configure --enable-force-cgi-redirect

それかphp.ini

cgi_force_redirect = 1
としてhttpd.conf or apache2.confに
AddType application/x-httpd-php .php
ScriptAlias /cgi-bin/ /var/www/cgi-bin/(ここは個別設定)
Action application/x-httpd-php /cgi-bin/php
AddHandler cgi-sciprt php

とする

変数登録の優先順位
php.iniだとvariables_order = "EGCS"がディフォルト

  1. システム環境変数(env)
  2. GET:ユーザー入力によるもの(get)
  3. POST: ユーザー入力によるもの(post)
  4. COOKIE: ユーザー入力によるもの(cookie)
  5. Webサーバー変数(system) 数が増えれば増えるほど優先順位が高い(5が一番高い!)
    !注意!Webサーバー変数の方が、ユーザー入力による変数よりも必ず優先されるようにする事!

外部ホストアクセスの禁止
include()やfopen()はURL指定でも使える&危険なので
allow_url_fopen = Off
としておく必要あり!

問題あるコードの抽出
変数は型宣言や初期化を行わずに使用出来るがセキュリティー上必要な変数の初期化を怠ることもありえるので
error_report = E_ALL & ^E_NOTEICE & ~E_STRICT
としておく。上記の文はE_NOTICEとE_STRICT以外の全てのエラーメッセージを出力する、という意味。

  • E_NOTIC

内部リンク

エラー

[解決]Call to undefined function mysql_connect()

/etc/php5/apache2/php.iniに以下を追加していたため、エラー

extension_dir = "./usr/share/php5"

これをコメントアウトして、/etc/init.d/apache2 reloadすると直った


Last-modified: 2012-03-12 (月) 17:05:55 (166d)