Package:PHP

From Funtoo
Jump to navigation Jump to search

PHP

   Tip

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.

Install

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.

   /etc/portage/make.conf - insert desired use flags
USE="php mysql mysqli apache2 fpm cgi......"

Emerge

root # emerge php

Fpm

Fpm is a php handler. It is php daemonized.

init

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

Configuration

Php-fpm is controlled by /etc/php/fpm-php*.*/php-fpm.conf and /etc/php/fpm-php*.*/php.ini

tips

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
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

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
[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

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

Media

Programming