PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language.
By default php does not have the cgi, FPM/FastCGI, mysql, mysqli, apache2 use flag turned on. Many packages are php aware, set the php global use flag so other applications can interact with php.
/usr/portage/make.conf- insert desired use flags
USE="php mysql mysqli apache2 fpm cgi......"
root # emerge php
Fpm is a php handler. It is php daemonized.
To start the php-fpm service:
root # rc-service php-fpm start
To start the php-fpm service at boot:
root # rc-update add php-fpm
Php-fpm is controlled by
/etc/php/fpm-php5.6/php-fpm.conf- use a unix socket for speed, security, and not consuming a port.
listen = /var/run/php-fpm/php-fpm.sock listen.backlog = -1 listen.owner = apache listen.group = apache listen.mode=0660
Change Php Fpm's User/Group
This is for php-fpm worker processes permissions. Making php-fpm workers work as the apache user makes most apache permission configurations work with out a bother.
/etc/php/fpm-php5.6/php-fpm.conf- make workers run as another user
;user = nobody ;group = nobody user = apache group = apache
Limit worker numbers to 20 max. When your server is behind a reverse proxy it doesn't need many workers.
/etc/php/fpm-php5.6/php-fpm.conf- limit workers
pm.max_children = 20 pm.start_servers = 1 pm.min_spare_servers = 1 pm.max_spare_servers = 19
Date & Time
Set the time and date for php web applications. full list of php timezones
/etc/php/fpm-php5.6/php.ini- set date and time
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone ;date.timezone =
the same procedures can be done for other php implementations at