gentoo/PHP.md

1.7 KiB

#Setting up PHP

Use Flags

In order for PHP to be most useful, it should have as many of the modules installed as will be used. I recommend installing it using the FPM sapi, which manages php session spawning.

Here are some recommended flags:

mysql mysqli utf8 threads -readline libssh2 -cgi fpm xcache postgres 
mysqlnd reflection session simplexml sockets spl pdo mbstring sqlite3  
soap spell firebird exif cjk sqlite mssql xpm tidy calendar xmlrpc doc

PHP_TARGETS

The PHP_TARGETS setting in /etc/make.conf lets you select which versions of PHP to compile. If possible, I recommend always using the latest stable version.

As of the time this is written, php 5.4 is the latest version, so I would add this line to /etc/make.conf

PHP_TARGETS="php5-4"

Please note that you can have multiple PHP_TARGETS:

PHP_TARGETS="php5-3 php5-4"

As of this writing, PHP compiles with clang reliably.

php.ini and php-fpm.conf

php.ini

This file is going to be under /etc/php/[sapi]-php[version]/php.ini

So, if I'm running php 5.3, and I want to adjust cli settings, the file is /etc/php/cli-php5.3/php.ini

Mandatory settings

  • date.timezone - set to your default timezone, for example, America/Detroit
  • short_open_tag = On - Allow short tags <? and <?=
  • expose_php = Off - With this enabled, a pointless server header is sent out, and some magic urls are enabled. There's no reason to enable this.

php-fpm.conf

When compiling PHP with FPM, there is another config file, php-fpm.conf.

When starting php, it will throw an annoying message if you don't have the pm.start_servers setting configured.

A good default is to set pm.start_servers = 20