From Funtoo
Revision as of 20:53, May 30, 2015 by Threesixes (talk | contribs)
Jump to navigation Jump to search



We welcome improvements to this page. To edit this page, Create a Funtoo account. Then log in and then click here to edit this page. See our editing guidelines to becoming a wiki-editing pro.

PHP is a server-side scripting language designed for web development but also used as a general-purpose programming language.


Use Flags

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-php*.*/php-fpm.conf and /etc/php/fpm-php*.*/php.ini


Unix Socket

   /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 = apache

Change Php Fpm's User/Group

This is for tcp port 9000 mode rather than sockets. 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

Limiting Workers

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
; Defines the default timezone used by the date functions
;date.timezone =

the same procedures can be done for other php implementations at

  • /etc/php/cli-php5.6/php.ini
  • /etc/php/apache2-php5.6/php.ini
  • /etc/php/cgi-php5.6/php.ini