wiki:Packages/php5

Version 3 (modified by tomop, 9 years ago) (diff)

--

php5

Vine Linux独自の仕様

  •  strict sessionパッチを独自にPHP-5.3.xに対応させたものを適用しています。
  •  bug#60373修正をrevert。
    • Vine LinuxではZTSを有効にしていないのでこのバグは発現せず、error_logのタイムスタンプがUTCに固定されてしまう( bug#60723)害の方が大きいためrevertしました。

初期設定

Vine LinuxのPHPでは。Web経由での利用法に以下の3通りを用意しています。

  1. ApacheにDSOモジュールとして組み込む
  2. Apache管理下のFastCGIプロセスとして動作
  3. 独立起動のFastCGIプロセスとして動作(nginx, lighttpd等からの利用)

Apache2モジュールを利用する場合

VinePlusで提供しているphp5-apache2パッケージでは、Apacheをprefork MPMで起動していないと動作しません。

  1. 以下のパッケージをインストールする。
    • apache2
    • php5-apache2
  2. Apacheをprefork MPMに切り替える。
    $ sudo /sbin/update-alternatives --config apache2
    
    2 プログラムがあり 'apache2' を提供します。
    
      選択       コマンド
    -----------------------------------------------
     + 1           /usr/sbin/apache2.worker
    *  2           /usr/sbin/apache2.prefork
    Enter を押して現在の選択 [+] を保持するか、選択番号を入力します:2
    

Apache2でFastCGIを利用する場合

こちらではApacheのMPM制限はなく、お好みのものを利用できます (worker推奨)。

  1. 以下のパッケージをインストールする。
    • apache2
    • mod_fcgid-apache2
    • php5 (php5-apache2は不要)
  2. /etc/apache2/conf.d/mod_fcgid.confを以下のように編集する。
    <IfModule !mod_fcgid.c>
      LoadModule fcgid_module modules/mod_fcgid.so
    </IfModule>
    <IfModule mod_fcgid.c>
      FcgidIPCDir /tmp/fcgid_sock/
    </IfModule>
    
  3. httpd.confの必要な箇所(バーチャルホスト定義内、等)に以下の記述を追加する。
    <IfModule mod_fcgid.c>
      AddHandler   fcgid-script      .php
      FcgidWrapper /usr/bin/php5-cgi .php
    </IfModule>
    

nginxでFastCGIを利用する場合

  1. 以下のパッケージをインストールする。
    • nginx
    • php5-fpm
  2. /etc/nginx/php.confを以下の内容で作成する。
    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE   nginx;
    
    fastcgi_param QUERY_STRING      $query_string;
    fastcgi_param REQUEST_METHOD    $request_method;
    fastcgi_param CONTENT_TYPE      $content_type;
    fastcgi_param CONTENT_LENGTH    $content_length;
    
    fastcgi_split_path_info         ^(.+\.php)(/.+)?$;
    fastcgi_param PATH_INFO         $fastcgi_path_info;
    fastcgi_param PATH_TRANSLATED   $document_root$fastcgi_path_info;
    fastcgi_param SCRIPT_FILENAME   $document_root$fastcgi_script_name;
    fastcgi_param SCRIPT_NAME       $fastcgi_script_name;
    fastcgi_param REQUEST_URI       $request_uri;
    fastcgi_param DOCUMENT_URI      $document_uri;
    fastcgi_param DOCUMENT_ROOT     $document_root;
    fastcgi_param SERVER_PROTOCOL   $server_protocol;
    
    fastcgi_param REMOTE_ADDR       $remote_addr;
    fastcgi_param REMOTE_PORT       $remote_port;
    fastcgi_param SERVER_ADDR       $server_addr;
    fastcgi_param SERVER_PORT       $server_port;
    fastcgi_param SERVER_NAME       $server_name;
    
    # PHP only, required if PHP was built with –enable-force-cgi-redirect
    fastcgi_param REDIRECT_STATUS   200;
    
    fastcgi_pass                    unix:/tmp/php-fpm.sock;
    fastcgi_ignore_client_abort     on;
    
  3. nginx設定ファイルの必要な箇所(http, server, locationブロック)に以下の記述を追加する。
    location ~ \.php
    {
        include php.conf;
    }
    
  4. 必要に応じて/etc/php5/php-fpm.conf, /etc/php5/fpm.d/*の設定を変更する。