Merge pull request #338 from cytopia/default-example-configurations

Feature Release: Performance, Timeouts and PHP 5.2
This commit is contained in:
cytopia 2018-08-05 05:17:22 +02:00 committed by GitHub
commit 9a4538bb37
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
91 changed files with 3393 additions and 239 deletions

12
.gitignore vendored
View File

@ -25,6 +25,9 @@
# Ignore Certificate Authority
/ca/*
# Ignore emails
/mail/*
# Ignore compose override file
docker-compose.override.yml
@ -48,30 +51,39 @@ docker-compose.override.yml
/cfg/percona-5.7/*.cnf
# Ignore custom PHP.ini configs
/cfg/php-ini-5.2/*.ini
/cfg/php-ini-5.3/*.ini
/cfg/php-ini-5.4/*.ini
/cfg/php-ini-5.5/*.ini
/cfg/php-ini-5.6/*.ini
/cfg/php-ini-7.0/*.ini
/cfg/php-ini-7.1/*.ini
/cfg/php-ini-7.2/*.ini
/cfg/php-ini-7.3/*.ini
#/cfg/hhvm-latest/*.ini
# Ignore custom PHP-FPM configs
/cfg/php-fpm-5.2/php-fpm.xml
/cfg/php-fpm-5.3/*.conf
/cfg/php-fpm-5.4/*.conf
/cfg/php-fpm-5.5/*.conf
/cfg/php-fpm-5.6/*.conf
/cfg/php-fpm-7.0/*.conf
/cfg/php-fpm-7.1/*.conf
/cfg/php-fpm-7.2/*.conf
/cfg/php-fpm-7.3/*.conf
#/cfg/hhvm-latest/*.conf
# Ignore custom PHP-FPM modules
/mod/php-fpm-5.2/*.so
/mod/php-fpm-5.3/*.so
/mod/php-fpm-5.4/*.so
/mod/php-fpm-5.5/*.so
/mod/php-fpm-5.6/*.so
/mod/php-fpm-7.0/*.so
/mod/php-fpm-7.1/*.so
/mod/php-fpm-7.2/*.so
/mod/php-fpm-7.3/*.so
#/mod/hhvm-latest/*.so
# Ignore custom bash and other confi files

171
README.md
View File

@ -18,16 +18,22 @@
[![Build Status](https://travis-ci.org/cytopia/devilbox.svg?branch=master)](https://travis-ci.org/cytopia/devilbox)
[![Documentation Status](https://readthedocs.org/projects/devilbox/badge/?version=latest)](https://devilbox.readthedocs.io)
![Tag](https://img.shields.io/github/tag/cytopia/devilbox.svg)
[![type](https://img.shields.io/badge/type-Docker-orange.svg)](https://www.docker.com/)
[![type](https://img.shields.io/badge/type-Docker-red.svg)](https://www.docker.com/)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)
<img width="200" style="width:200px;" src="docs/_includes/figures/https/https-ssl-address-bar.png" />
The devilbox is a modern and highly customisable **dockerized PHP stack** supporting full **LAMP** and **MEAN** and running on all major platforms. The main goal is to easily switch and combine any version required for local development. It supports an **unlimited number of projects** for which vhosts, **SSL certificates** and **DNS records** are created automatically. Email catch-all and popular development tools will be at your service as well. Configuration is not necessary, as everything is pre-setup with mass virtual hosting.
The Devilbox is a modern and highly customisable **dockerized PHP stack** supporting full **LAMP** and **MEAN** and running on all major platforms. The main goal is to easily switch and combine any version required for local development. It supports an **unlimited number of projects** for which **vhosts**, **SSL certificates** and **DNS records** are created automatically. Email catch-all and popular development tools will be at your service as well. Configuration is not necessary, as everything is already pre-setup.
Furthermore, the Devilbox provides an **identical** and **reproducable development environment** for different host operating systems.
**Requirements**
![Linux](https://raw.githubusercontent.com/cytopia/icons/master/64x64/linux.png) ![Windows](https://raw.githubusercontent.com/cytopia/icons/master/64x64/windows.png) ![OSX](https://raw.githubusercontent.com/cytopia/icons/master/64x64/osx.png)
![Linux](https://raw.githubusercontent.com/cytopia/icons/master/64x64/linux.png)
![OSX](https://raw.githubusercontent.com/cytopia/icons/master/64x64/osx.png)
![Windows](https://raw.githubusercontent.com/cytopia/icons/master/64x64/windows.png)
![Plus](https://raw.githubusercontent.com/cytopia/icons/master/64x64/plus.png)
![Docker](https://raw.githubusercontent.com/cytopia/icons/master/64x64/docker.png)
* [Docker Engine 1.12.0+](https://docs.docker.com/compose/compose-file/compose-versioning/#version-21)
* [Docker Compose 1.9.0+](https://docs.docker.com/compose/compose-file/compose-versioning/#version-21)
@ -75,10 +81,15 @@ Find documentation and help here
#### Quick start
You are up and running in four simple steps:
> **Documentation:**
> [Install the Devilbox](https://devilbox.readthedocs.io/en/latest/getting-started/install-the-devilbox.html) |
> [Start the Devilbox](https://devilbox.readthedocs.io/en/latest/getting-started/start-the-devilbox.html) |
> [.env file](https://devilbox.readthedocs.io/en/latest/configuration-files/env-file.html)
```shell
# Get the devilbox
##### Linux and MacOS
```bash
# Get the Devilbox
$ git clone https://github.com/cytopia/devilbox
$ cd devilbox
@ -92,13 +103,28 @@ $ vim .env
$ docker-compose up
```
##### Windows
1. Clone https://github.com/cytopia/devilbox to `C:\devilbox` with [Git for Windows](https://git-scm.com/download/win)
2. Copy `C:\devilbox\env-example` to `C:\devilbox\.env`
3. Adjust `C:\devilbox\.env` with your favourite editor
4. [Open terminal on Windows](https://devilbox.readthedocs.io/en/latest/howto/terminal/open-terminal-on-win.html) and type:
```bash
C:\> cd C:\devilbox
C:\devilbox> docker-compose up
```
#### Selective start
The above will start all containers, you can however also just start the containers you actually need. This is achieved by simply specifying them in the docker-compose command.
```shell
```bash
$ docker-compose up httpd php mysql redis
```
> **Documentation:**
> [Start only some container](https://devilbox.readthedocs.io/en/latest/getting-started/start-the-devilbox.html#start-some-container)
![Devilbox](docs/img/devilbox-dash-selective.png)
#### Run different versions
@ -124,7 +150,7 @@ Every single attachable container comes with many different versions. In order t
<tr>
<td><a target="_blank" title="Apache 2.2" href="https://github.com/devilbox/docker-apache-2.2">2.2</a></td>
<td><a target="_blank" title="Nginx stable" href="https://github.com/devilbox/docker-nginx-stable">stable</a></td>
<td><a target="_blank" title="PHP 5.3" href="https://github.com/devilbox/docker-php-fpm">5.3</a></td>
<td><a target="_blank" title="PHP 5.2" href="https://github.com/devilbox/docker-php-fpm">5.2</a><sup>[1]</sup></td>
<td><a target="_blank" title="MySQL 5.5" href="https://github.com/cytopia/docker-mysql-5.5">5.5</a></td>
<td><a target="_blank" title="MariaDB 5.5" href="https://github.com/cytopia/docker-mariadb-5.5">5.5</a></td>
<td><a target="_blank" title="PerconaDB 5.5" href="https://github.com/cytopia/docker-percona-5.5">5.5</a></td>
@ -136,7 +162,7 @@ Every single attachable container comes with many different versions. In order t
<tr>
<td><a target="_blank" title="Apache 2.4" href="https://github.com/devilbox/docker-apache-2.4">2.4</a></td>
<td><a target="_blank" title="Nginx mainline" href="https://github.com/devilbox/docker-nginx-mainline">mainline</a></td>
<td><a target="_blank" title="PHP 5.4" href="https://github.com/devilbox/docker-php-fpm">5.4</a></td>
<td><a target="_blank" title="PHP 5.3" href="https://github.com/devilbox/docker-php-fpm">5.3</a></td>
<td><a target="_blank" title="MySQL 5.6" href="https://github.com/cytopia/docker-mysql-5.6">5.6</a></td>
<td><a target="_blank" title="MariaDB 10.0" href="https://github.com/cytopia/docker-mariadb-10.0">10.0</a></td>
<td><a target="_blank" title="PerconaDB 5.6" href="https://github.com/cytopia/docker-percona-5.6">5.6</a></td>
@ -148,7 +174,7 @@ Every single attachable container comes with many different versions. In order t
<tr>
<td></td>
<td></td>
<td><a target="_blank" title="PHP 5.5" href="https://github.com/devilbox/docker-php-fpm">5.5</a></td>
<td><a target="_blank" title="PHP 5.4" href="https://github.com/devilbox/docker-php-fpm">5.4</a></td>
<td><a target="_blank" title="MySQL 5.7" href="https://github.com/cytopia/docker-mysql-5.7">5.7</a></td>
<td><a target="_blank" title="MariaDB 10.1" href="https://github.com/cytopia/docker-mariadb-10.1">10.1</a></td>
<td><a target="_blank" title="PerconaDB 5.7" href="https://github.com/cytopia/docker-percona-5.7">5.7</a></td>
@ -160,7 +186,7 @@ Every single attachable container comes with many different versions. In order t
<tr>
<td></td>
<td></td>
<td><a target="_blank" title="PHP 5.6" href="https://github.com/devilbox/docker-php-fpm">5.6</a></td>
<td><a target="_blank" title="PHP 5.5" href="https://github.com/devilbox/docker-php-fpm">5.5</a></td>
<td><a target="_blank" title="MySQL 8.0" href="https://github.com/cytopia/docker-mysql-8.0">8.0</a></td>
<td><a target="_blank" title="MariaDB 10.2" href="https://github.com/cytopia/docker-mariadb-10.2">10.2</a></td>
<td></td>
@ -172,7 +198,7 @@ Every single attachable container comes with many different versions. In order t
<tr>
<td></td>
<td></td>
<td><a target="_blank" title="PHP 7.0" href="https://github.com/devilbox/docker-php-fpm">7.0</a></td>
<td><a target="_blank" title="PHP 5.6" href="https://github.com/devilbox/docker-php-fpm">5.6</a></td>
<td></td>
<td><a target="_blank" title="MariaDB 10.3" href="https://github.com/cytopia/docker-mariadb-10.3">10.3</a></td>
<td></td>
@ -184,7 +210,7 @@ Every single attachable container comes with many different versions. In order t
<tr>
<td></td>
<td></td>
<td><a target="_blank" title="PHP 7.1" href="https://github.com/devilbox/docker-php-fpm">7.1</a></td>
<td><a target="_blank" title="PHP 7.0" href="https://github.com/devilbox/docker-php-fpm">7.0</a></td>
<td></td>
<td></td>
<td></td>
@ -196,7 +222,7 @@ Every single attachable container comes with many different versions. In order t
<tr>
<td></td>
<td></td>
<td><a target="_blank" title="PHP 7.2" href="https://github.com/devilbox/docker-php-fpm">7.2</a></td>
<td><a target="_blank" title="PHP 7.1" href="https://github.com/devilbox/docker-php-fpm">7.1</a></td>
<td></td>
<td></td>
<td></td>
@ -205,6 +231,18 @@ Every single attachable container comes with many different versions. In order t
<td><a target="_blank" title="Memcached latest" href="https://github.com/docker-library/memcached">latest</a></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td><a target="_blank" title="PHP 7.2" href="https://github.com/devilbox/docker-php-fpm">7.2</a></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
@ -220,23 +258,38 @@ Every single attachable container comes with many different versions. In order t
</tbody>
</table>
<strong><sup>[1]</sup></strong> <strong>PHP 5.2</strong> is available to use, but it is not officially supported. The Devilbox intranet does not work with this version as PHP 5.2 does not support namespaces.
Furthermore PHP 5.2 does only work with Apache 2.4, Nginx stable and Nginx mainline. It does not work with Apache 2.2. Use at your own risk.
> **Documentation:**
> [Change container versions](https://devilbox.readthedocs.io/en/latest/getting-started/change-container-versions.html)
#### Enter the container
You can also work directly inside the php container. Simply use the bundled scripts `shell.sh`. The `PS1` will automatically be populated with current chosen php version.
```shell
# Enter as user devilbox (normal operation / development)
You can also work directly inside the php container. Simply use the bundled scripts `shell.sh` (or `shell.bat` for Windows).
The `PS1` will automatically be populated with current chosen php version.
Navigate the the Devilbox directory and type the below listed command:
##### Linux and MacOS
```bash
host> ./shell.sh
devilbox@php-7.0.19 in /shared/httpd $
```
```shell
# Enter as root user (do root stuff)
host> ./shell.sh
devilbox@php-7.0.19 in /shared/httpd $ sudo su -
root@php-7.0.19 in /shared/httpd $
##### Windows
```bash
C:\devilbox> shell.bat
devilbox@php-7.0.19 in /shared/httpd $
```
Your projects can be found in `/shared/httpd`. DNS records are automatically available inside the php container. Also every other service will be available on `127.0.0.1` inside the php container (tricky socat port-forwarding).
> **Documentation:**
> [Work inside the PHP container](https://devilbox.readthedocs.io/en/latest/intermediate/work-inside-the-php-container.html) |
> [Directory overview](https://devilbox.readthedocs.io/en/latest/getting-started/directory-overview.html)
#### Quick Video intro
[![Devilbox setup and workflow](docs/img/devilbox_01-setup-and-workflow.png "devilbox - setup and workflow")](https://www.youtube.com/watch?v=reyZMyt2Zzo)
@ -245,7 +298,10 @@ Your projects can be found in `/shared/httpd`. DNS records are automatically ava
## Feature overview
The devilbox has everything setup for you. The only thing you will have to install is [docker](https://docs.docker.com/engine/installation/) and [docker-compose](https://docs.docker.com/compose/install/). Virtual hosts and DNS entries will be created automatically, just by adding new project folders.
The Devilbox has everything setup for you. The only thing you will have to install is [Docker](https://docs.docker.com/engine/installation/) and [Docker Compose](https://docs.docker.com/compose/install/). Virtual hosts and DNS entries will be created automatically, just by adding new project folders.
> **Documentation:**
> [Devilbox Prerequisites](https://devilbox.readthedocs.io/en/latest/getting-started/prerequisites.html)
#### Features
@ -261,7 +317,7 @@ The devilbox has everything setup for you. The only thing you will have to insta
</tr>
<tr>
<td>:star: Unlimited vhosts</td>
<td>Run as many projects as you need with a single instance of the devilbox.</td>
<td>Run as many projects as you need with a single instance of the Devilbox.</td>
</tr>
<tr>
<td>:star: Custom vhosts</td>
@ -302,6 +358,11 @@ The devilbox has everything setup for you. The only thing you will have to insta
</tbody>
</table>
> **Documentation:**
> [Setup Auto DNS](https://devilbox.readthedocs.io/en/latest/intermediate/setup-auto-dns.html) |
> [Setup valid HTTPS](https://devilbox.readthedocs.io/en/latest/intermediate/setup-valid-https.html) |
> [Configure Xdebug](https://devilbox.readthedocs.io/en/latest/intermediate/configure-php-xdebug.html) |
> [Customize PHP](https://devilbox.readthedocs.io/en/latest/advanced/customize-php-globally.html)
#### Batteries
@ -426,10 +487,16 @@ Well-known and popular tools will be at your service as well:
#### Available PHP Modules
The devilbox is a development stack, so it is made sure that a lot of PHP modules are available out of the box in order to work with many different frameworks.
The Devilbox is a development stack, so it is made sure that a lot of PHP modules are available out of the box in order to work with many different frameworks.
> *amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, sodium, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib*
PHP modules can be enabled or disabled on demand to reflect the state of your target environment.
> **Documentation:**
> [Enable/disable PHP modules](https://devilbox.readthedocs.io/en/latest/intermediate/enable-disable-php-modules.html)
#### Custom PHP Modules
You can also copy any custom modules into `mod/(php-fpm)-<VERSION>` and add a custom `*.ini` file to load them.
@ -438,26 +505,43 @@ You can also copy any custom modules into `mod/(php-fpm)-<VERSION>` and add a cu
As far as tested there are no limitations and you can use any Framework or CMS just as you would on your live environment. Below are a few examples of extensively tested Frameworks and CMS:
[![CakePHP](docs/img/logo_fw/cake.png)](https://cakephp.org)
[![CakePHP](docs/img/logo_fw/codeigniter.png)](https://www.codeigniter.com/)
[![Drupal](docs/img/logo_fw/drupal.png)](https://www.drupal.org)
[![Joomla](docs/img/logo_fw/joomla.png)](https://www.joomla.org)
[![Laravel](docs/img/logo_fw/laravel.png)](https://laravel.com)
[![Magento](docs/img/logo_fw/magento.png)](https://magento.com)
[![Phalcon](docs/img/logo_fw/phalcon.png)](https://phalconphp.com)
[![PhotonCMS](docs/img/logo_fw/photoncms.png)](https://www.photonics.com/)
[![PrestaShop](docs/img/logo_fw/prestashop.png)](https://www.prestashop.com/en)
[![Shopware](docs/img/logo_fw/shopware.png)](https://en.shopware.com/)
[![Symfony](docs/img/logo_fw/symfony.png)](https://symfony.com)
[![Typo3](docs/img/logo_fw/typo3.png)](https://typo3.org/)
[![Wordpress](docs/img/logo_fw/wordpress.png)](https://wordpress.org)
[![Yii](docs/img/logo_fw/yii.png)](http://www.yiiframework.com)
[![Zend](docs/img/logo_fw/zend.png)](https://framework.zend.com)
<a target="_blank" title="CakePHP" href="https://cakephp.org"><img width="64" style="width:64px" src="docs/img/logo_fw/cake.png" alt="Devilbox"/></a>
<a target="_blank" title="CodeIgniter" href="https://www.codeigniter.com"><img width="64" style="width:64px" src="docs/img/logo_fw/codeigniter.png" alt="Devilbox"/></a>
<a target="_blank" title="Drupal" href="https://www.drupal.org"><img width="64" style="width:64px" src="docs/img/logo_fw/drupal.png" alt="Devilbox"/></a>
<a target="_blank" title="Joomla" href="https://www.joomla.org"><img width="64" style="width:64px" src="docs/img/logo_fw/joomla.png" alt="Devilbox"/></a>
<a target="_blank" title="Laravel" href="https://laravel.com"><img width="64" style="width:64px" src="docs/img/logo_fw/laravel.png" alt="Devilbox"/></a>
<a target="_blank" title="Magento" href="https://magento.com"><img width="64" style="width:64px" src="docs/img/logo_fw/magento.png" alt="Devilbox"/></a>
<a target="_blank" title="PhalconPHP" href="https://phalconphp.com"><img width="64" style="width:64px" src="docs/img/logo_fw/phalcon.png" alt="Devilbox"/></a>
<a target="_blank" title="PhotonCMS" href="https://photoncms.com"><img width="64" style="width:64px" src="docs/img/logo_fw/photoncms.png" alt="Devilbox"/></a>
<a target="_blank" title="PrestaShop" href="https://www.prestashop.com/en"><img width="64" style="width:64px" src="docs/img/logo_fw/prestashop.png" alt="Devilbox"/></a>
<a target="_blank" title="Shopware" href="https://en.shopware.com"><img width="64" style="width:64px" src="docs/img/logo_fw/shopware.png" alt="Devilbox"/></a>
<a target="_blank" title="Symfony" href="https://symfony.com"><img width="64" style="width:64px" src="docs/img/logo_fw/symfony.png" alt="Devilbox"/></a>
<a target="_blank" title="Typo3" href="https://typo3.org"><img width="64" style="width:64px" src="docs/img/logo_fw/typo3.png" alt="Devilbox"/></a>
<a target="_blank" title="Wordpress" href="https://wordpress.org"><img width="64" style="width:64px" src="docs/img/logo_fw/wordpress.png" alt="Devilbox"/></a>
<a target="_blank" title="Yii" href="http://www.yiiframework.com"><img width="64" style="width:64px" src="docs/img/logo_fw/yii.png" alt="Devilbox"/></a>
<a target="_blank" title="Zend" href="https://framework.zend.com"><img width="64" style="width:64px" src="docs/img/logo_fw/zend.png" alt="Devilbox"/></a>
> **Documentation:**<br/>
> [Setup CakePHP](https://devilbox.readthedocs.io/en/latest/examples/setup-cakephp.html) |
> [Setup CodeIgniter](https://devilbox.readthedocs.io/en/latest/examples/setup-codeigniter.html) |
> [Setup Drupal](https://devilbox.readthedocs.io/en/latest/examples/setup-drupal.html) |
> [Setup Joomla](https://devilbox.readthedocs.io/en/latest/examples/setup-joomla.html) |
> [Setup Laravel](https://devilbox.readthedocs.io/en/latest/examples/setup-laravel.html) |
> [Setup Magento](https://devilbox.readthedocs.io/en/latest/examples/setup-magento.html) |
> [Setup PhalconPHP](https://devilbox.readthedocs.io/en/latest/examples/setup-phalcon.html) |
> [Setup PhotonCMS](https://devilbox.readthedocs.io/en/latest/examples/setup-photon-cms.html) |
> [Setup PrestaShop](https://devilbox.readthedocs.io/en/latest/examples/setup-presta-shop.html) |
> [Setup Shopware](https://devilbox.readthedocs.io/en/latest/examples/setup-shopware.html) |
> [Setup Symfony](https://devilbox.readthedocs.io/en/latest/examples/setup-symfony.html) |
> [Setup Typo3](https://devilbox.readthedocs.io/en/latest/examples/setup-typo3.html) |
> [Setup Wordpress](https://devilbox.readthedocs.io/en/latest/examples/setup-wordpress.html) |
> [Setup Yii](https://devilbox.readthedocs.io/en/latest/examples/setup-yii.html) |
> [Setup Zend](https://devilbox.readthedocs.io/en/latest/examples/setup-zend.html)
## Intranet overview
The devilbox comes with a pre-configured intranet on `http://localhost`. This can be explicitly disabled or password-protected. The intranet will not only show you, the chosen configuration, but also validate the status of the current configuration, such as if **DNS records** exists (on host and container), are directories properly set-up. Additionally it provides external tools to let you interact with databases and emails.
The Devilbox comes with a pre-configured intranet on `http://localhost` and `https://localhost`. This can be explicitly disabled or password-protected. The intranet will not only show you, the chosen configuration, but also validate the status of the current configuration, such as if **DNS records** exists (on host and container), are directories properly set-up. Additionally it provides external tools to let you interact with databases and emails.
* **Virtual Host overview** (validates directories and DNS)
* **Database overview** (MySQL, PgSQL, Redis, Memcache, ...)
@ -467,6 +551,9 @@ The devilbox comes with a pre-configured intranet on `http://localhost`. This ca
* **[Adminer](https://www.adminer.org)**
* **[OpcacheGUI](https://github.com/PeeHaa/OpCacheGUI)**
> **Documentation:**
> [Devilbox Intranet](https://devilbox.readthedocs.io/en/latest/getting-started/devilbox-intranet.html)
## Screenshots
@ -505,7 +592,7 @@ To increase visibility and bug-free operation:
* Open up issues for bugs and feature requests
* Clone this project and submit fixes or features
Additionally you can [subscribe to devilbox on CodeTriage](https://www.codetriage.com/cytopia/devilbox),
Additionally you can [subscribe to Devilbox on CodeTriage](https://www.codetriage.com/cytopia/devilbox),
read up on [CONTRIBUTING.md](CONTRIBUTING.md) and check the [ROADMAP](https://github.com/cytopia/devilbox/issues/23) about what is already planned for the near future.

0
cfg/php-fpm-5.2/.keepme Normal file
View File

View File

@ -0,0 +1,25 @@
# PHP-FPM 5.2 config directory
**This is different from all other PHP-FPM versions**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change PHP-FPM settings for PHP-FPM 5.2 you need to adjust the main configuration file.
The currently enabled configuration file is bundled in this directory: `php-fpm.xml-default`.
In order to make adjustments, copy it to `php-fpm.xml` and change values.
## How to enable
Settings are only enabled if a file named `php-fpm.xml` is present.
All other files are ignoed.
## Important
Do not simply add anything in that file. You must copy php-fpm.xml-default and adjust values
step by step.
The `php-fpm.xml` will completely overwrite PHP-FPM configuration.

View File

@ -0,0 +1,156 @@
<?xml version="1.0" ?>
<configuration>
All relative paths in this config are relative to php's install prefix
<section name="global_options">
Pid file
<value name="pid_file">/var/run/php-fpm.pid</value>
Error log file
<value name="error_log">/proc/self/fd/2</value>
Log level
<value name="log_level">notice</value>
When this amount of php processes exited with SIGSEGV or SIGBUS ...
<value name="emergency_restart_threshold">10</value>
... in a less than this interval of time, a graceful restart will be initiated.
Useful to work around accidental curruptions in accelerator's shared memory.
<value name="emergency_restart_interval">1m</value>
Time limit on waiting child's reaction on signals from master
<value name="process_control_timeout">5s</value>
Set to 'no' to debug fpm
<value name="daemonize">no</value>
</section>
<workers>
<section name="pool">
Name of pool. Used in logs and stats.
<value name="name">www</value>
Address to accept fastcgi requests on.
Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket'
<value name="listen_address">0.0.0.0:9000</value>
<value name="listen_options">
Set listen(2) backlog
<value name="backlog">1024</value>
Set permissions for unix socket, if one used.
In Linux read/write permissions must be set in order to allow connections from web server.
Many BSD-derrived systems allow connections regardless of permissions.
<value name="owner"></value>
<value name="group"></value>
<value name="mode">0666</value>
</value>
Additional php.ini defines, specific to this pool of workers.
<value name="php_defines">
<value name="error_reporting">-1</value>
<value name="xmlrpc_errors">0</value>
<value name="report_memleaks">1</value>
<value name="display_errors">1</value>
<value name="display_startup_errors">1</value>
<value name="track_errors">1</value>
<value name="log_errors">1</value>
<value name="html_errors">1</value>
</value>
Unix user of processes
<value name="user">devilbox</value>
Unix group of processes
<value name="group">devilbox</value>
Process manager settings
<value name="pm">
Sets style of controling worker process count.
Valid values are 'static' and 'apache-like'
<value name="style">apache-like</value>
Sets the limit on the number of simultaneous requests that will be served.
Equivalent to Apache MaxClients directive.
Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi
Used with any pm_style.
<value name="max_children">5</value>
Settings group for 'apache-like' pm style
<value name="apache_like">
Sets the number of server processes created on startup.
Used only when 'apache-like' pm_style is selected
<value name="StartServers">3</value>
Sets the desired minimum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MinSpareServers">2</value>
Sets the desired maximum number of idle server processes.
Used only when 'apache-like' pm_style is selected
<value name="MaxSpareServers">4</value>
</value>
</value>
The timeout (in seconds) for serving a single request after which the worker process will be terminated
Should be used when 'max_execution_time' ini option does not stop script execution for some reason
'0s' means 'off'
<value name="request_terminate_timeout">120s</value>
The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file
'0s' means 'off'
<value name="request_slowlog_timeout">0s</value>
The log file for slow requests
<value name="slowlog">/proc/self/fd/2</value>
Set open file desc rlimit
<value name="rlimit_files">1024</value>
Set max core size rlimit
<value name="rlimit_core">0</value>
Chroot to this directory at the start, absolute path
<value name="chroot"></value>
Chdir to this directory at the start, absolute path
<value name="chdir"></value>
Redirect workers' stdout and stderr into main error log.
If not set, they will be redirected to /dev/null, according to FastCGI specs
<value name="catch_workers_output">yes</value>
How much requests each process should execute before respawn.
Useful to work around memory leaks in 3rd party libraries.
For endless request processing please specify 0
Equivalent to PHP_FCGI_MAX_REQUESTS
<value name="max_requests">500</value>
Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect.
Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+)
Makes sense only with AF_INET listening socket.
<!-- <value name="allowed_clients">127.0.0.1</value> -->
Pass environment variables like LD_LIBRARY_PATH
All $VARIABLEs are taken from current environment
<value name="environment">
<value name="HOSTNAME">$HOSTNAME</value>
<value name="PATH">/usr/local/bin:/usr/bin:/bin</value>
<value name="TMP">/tmp</value>
<value name="TMPDIR">/tmp</value>
<value name="TEMP">/tmp</value>
<value name="OSTYPE">$OSTYPE</value>
<value name="MACHTYPE">$MACHTYPE</value>
<value name="MALLOC_CHECK_">2</value>
</value>
</section>
</workers>
</configuration>

54
cfg/php-fpm-5.3/README.md Normal file
View File

@ -0,0 +1,54 @@
# PHP-FPM config directory
## General
* Add you custom php-fpm.conf files into this directory.
* Only files ending by `.conf` will be enabled
* Only files ending by `.conf` are ignored by git
## Example files
This directory also holds three example files:
| File | Description |
|---------------------------------|---------------------------------------------|
| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Worker configuration
When changing worker processes or scheduler, the following commands will come in handy
to monitor number of processes and memory consumption.
```bash
# Show current PHP-FPM child memory consumption in MB
ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
# (repeatedly) show current PHP-FPM child memory consumption in MB
watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
# (repeatedly) Current number of PHP-FPM childs
watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
```
## Overwriting
If multiple `.conf` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.
## Compatibility
**Note:**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
See `php-fpm-5.2/` directory.

View File

@ -0,0 +1,80 @@
; ############################################################
; Devilbox php-fpm.conf: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### PHP-FPM global settings
; ###
;
[global]
; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
log_level = notice
; ###
; ### Pool configuratoin
; ###
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

View File

@ -0,0 +1,46 @@
; ############################################################
; # Devilbox php-fpm.conf: dynamic example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible dynamic example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; dynamic - the number of child processes is set dynamically based on the following directives:
pm = dynamic
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; vim: set ft=dosini:

View File

@ -0,0 +1,39 @@
; ############################################################
; # Devilbox php-fpm.conf: ondemand example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible ondemand example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed.
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

54
cfg/php-fpm-5.4/README.md Normal file
View File

@ -0,0 +1,54 @@
# PHP-FPM config directory
## General
* Add you custom php-fpm.conf files into this directory.
* Only files ending by `.conf` will be enabled
* Only files ending by `.conf` are ignored by git
## Example files
This directory also holds three example files:
| File | Description |
|---------------------------------|---------------------------------------------|
| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Worker configuration
When changing worker processes or scheduler, the following commands will come in handy
to monitor number of processes and memory consumption.
```bash
# Show current PHP-FPM child memory consumption in MB
ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
# (repeatedly) show current PHP-FPM child memory consumption in MB
watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
# (repeatedly) Current number of PHP-FPM childs
watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
```
## Overwriting
If multiple `.conf` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.
## Compatibility
**Note:**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
See `php-fpm-5.2/` directory.

View File

@ -0,0 +1,80 @@
; ############################################################
; Devilbox php-fpm.conf: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### PHP-FPM global settings
; ###
;
[global]
; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
log_level = notice
; ###
; ### Pool configuratoin
; ###
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

View File

@ -0,0 +1,46 @@
; ############################################################
; # Devilbox php-fpm.conf: dynamic example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible dynamic example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; dynamic - the number of child processes is set dynamically based on the following directives:
pm = dynamic
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; vim: set ft=dosini:

View File

@ -0,0 +1,39 @@
; ############################################################
; # Devilbox php-fpm.conf: ondemand example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible ondemand example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed.
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

54
cfg/php-fpm-5.5/README.md Normal file
View File

@ -0,0 +1,54 @@
# PHP-FPM config directory
## General
* Add you custom php-fpm.conf files into this directory.
* Only files ending by `.conf` will be enabled
* Only files ending by `.conf` are ignored by git
## Example files
This directory also holds three example files:
| File | Description |
|---------------------------------|---------------------------------------------|
| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Worker configuration
When changing worker processes or scheduler, the following commands will come in handy
to monitor number of processes and memory consumption.
```bash
# Show current PHP-FPM child memory consumption in MB
ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
# (repeatedly) show current PHP-FPM child memory consumption in MB
watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
# (repeatedly) Current number of PHP-FPM childs
watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
```
## Overwriting
If multiple `.conf` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.
## Compatibility
**Note:**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
See `php-fpm-5.2/` directory.

View File

@ -0,0 +1,80 @@
; ############################################################
; Devilbox php-fpm.conf: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### PHP-FPM global settings
; ###
;
[global]
; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
log_level = notice
; ###
; ### Pool configuratoin
; ###
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

View File

@ -0,0 +1,46 @@
; ############################################################
; # Devilbox php-fpm.conf: dynamic example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible dynamic example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; dynamic - the number of child processes is set dynamically based on the following directives:
pm = dynamic
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; vim: set ft=dosini:

View File

@ -0,0 +1,39 @@
; ############################################################
; # Devilbox php-fpm.conf: ondemand example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible ondemand example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed.
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

54
cfg/php-fpm-5.6/README.md Normal file
View File

@ -0,0 +1,54 @@
# PHP-FPM config directory
## General
* Add you custom php-fpm.conf files into this directory.
* Only files ending by `.conf` will be enabled
* Only files ending by `.conf` are ignored by git
## Example files
This directory also holds three example files:
| File | Description |
|---------------------------------|---------------------------------------------|
| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Worker configuration
When changing worker processes or scheduler, the following commands will come in handy
to monitor number of processes and memory consumption.
```bash
# Show current PHP-FPM child memory consumption in MB
ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
# (repeatedly) show current PHP-FPM child memory consumption in MB
watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
# (repeatedly) Current number of PHP-FPM childs
watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
```
## Overwriting
If multiple `.conf` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.
## Compatibility
**Note:**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
See `php-fpm-5.2/` directory.

View File

@ -0,0 +1,80 @@
; ############################################################
; Devilbox php-fpm.conf: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### PHP-FPM global settings
; ###
;
[global]
; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
log_level = notice
; ###
; ### Pool configuratoin
; ###
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

View File

@ -0,0 +1,46 @@
; ############################################################
; # Devilbox php-fpm.conf: dynamic example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible dynamic example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; dynamic - the number of child processes is set dynamically based on the following directives:
pm = dynamic
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; vim: set ft=dosini:

View File

@ -0,0 +1,39 @@
; ############################################################
; # Devilbox php-fpm.conf: ondemand example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible ondemand example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed.
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

54
cfg/php-fpm-7.0/README.md Normal file
View File

@ -0,0 +1,54 @@
# PHP-FPM config directory
## General
* Add you custom php-fpm.conf files into this directory.
* Only files ending by `.conf` will be enabled
* Only files ending by `.conf` are ignored by git
## Example files
This directory also holds three example files:
| File | Description |
|---------------------------------|---------------------------------------------|
| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Worker configuration
When changing worker processes or scheduler, the following commands will come in handy
to monitor number of processes and memory consumption.
```bash
# Show current PHP-FPM child memory consumption in MB
ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
# (repeatedly) show current PHP-FPM child memory consumption in MB
watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
# (repeatedly) Current number of PHP-FPM childs
watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
```
## Overwriting
If multiple `.conf` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.
## Compatibility
**Note:**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
See `php-fpm-5.2/` directory.

View File

@ -0,0 +1,80 @@
; ############################################################
; Devilbox php-fpm.conf: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### PHP-FPM global settings
; ###
;
[global]
; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
log_level = notice
; ###
; ### Pool configuratoin
; ###
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

View File

@ -0,0 +1,46 @@
; ############################################################
; # Devilbox php-fpm.conf: dynamic example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible dynamic example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; dynamic - the number of child processes is set dynamically based on the following directives:
pm = dynamic
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; vim: set ft=dosini:

View File

@ -0,0 +1,39 @@
; ############################################################
; # Devilbox php-fpm.conf: ondemand example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible ondemand example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed.
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

54
cfg/php-fpm-7.1/README.md Normal file
View File

@ -0,0 +1,54 @@
# PHP-FPM config directory
## General
* Add you custom php-fpm.conf files into this directory.
* Only files ending by `.conf` will be enabled
* Only files ending by `.conf` are ignored by git
## Example files
This directory also holds three example files:
| File | Description |
|---------------------------------|---------------------------------------------|
| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Worker configuration
When changing worker processes or scheduler, the following commands will come in handy
to monitor number of processes and memory consumption.
```bash
# Show current PHP-FPM child memory consumption in MB
ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
# (repeatedly) show current PHP-FPM child memory consumption in MB
watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
# (repeatedly) Current number of PHP-FPM childs
watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
```
## Overwriting
If multiple `.conf` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.
## Compatibility
**Note:**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
See `php-fpm-5.2/` directory.

View File

@ -0,0 +1,80 @@
; ############################################################
; Devilbox php-fpm.conf: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### PHP-FPM global settings
; ###
;
[global]
; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
log_level = notice
; ###
; ### Pool configuratoin
; ###
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

View File

@ -0,0 +1,46 @@
; ############################################################
; # Devilbox php-fpm.conf: dynamic example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible dynamic example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; dynamic - the number of child processes is set dynamically based on the following directives:
pm = dynamic
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; vim: set ft=dosini:

View File

@ -0,0 +1,39 @@
; ############################################################
; # Devilbox php-fpm.conf: ondemand example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible ondemand example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed.
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

54
cfg/php-fpm-7.2/README.md Normal file
View File

@ -0,0 +1,54 @@
# PHP-FPM config directory
## General
* Add you custom php-fpm.conf files into this directory.
* Only files ending by `.conf` will be enabled
* Only files ending by `.conf` are ignored by git
## Example files
This directory also holds three example files:
| File | Description |
|---------------------------------|---------------------------------------------|
| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Worker configuration
When changing worker processes or scheduler, the following commands will come in handy
to monitor number of processes and memory consumption.
```bash
# Show current PHP-FPM child memory consumption in MB
ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
# (repeatedly) show current PHP-FPM child memory consumption in MB
watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
# (repeatedly) Current number of PHP-FPM childs
watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
```
## Overwriting
If multiple `.conf` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.
## Compatibility
**Note:**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
See `php-fpm-5.2/` directory.

View File

@ -0,0 +1,80 @@
; ############################################################
; Devilbox php-fpm.conf: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### PHP-FPM global settings
; ###
;
[global]
; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
log_level = notice
; ###
; ### Pool configuratoin
; ###
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

View File

@ -0,0 +1,46 @@
; ############################################################
; # Devilbox php-fpm.conf: dynamic example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible dynamic example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; dynamic - the number of child processes is set dynamically based on the following directives:
pm = dynamic
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; vim: set ft=dosini:

View File

@ -0,0 +1,39 @@
; ############################################################
; # Devilbox php-fpm.conf: ondemand example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible ondemand example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed.
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

54
cfg/php-fpm-7.3/README.md Normal file
View File

@ -0,0 +1,54 @@
# PHP-FPM config directory
## General
* Add you custom php-fpm.conf files into this directory.
* Only files ending by `.conf` will be enabled
* Only files ending by `.conf` are ignored by git
## Example files
This directory also holds three example files:
| File | Description |
|---------------------------------|---------------------------------------------|
| `devilbox-fpm.conf-default` | Represents current PHP-FPM default settings |
| `devilbox-fpm.conf-pm_dynamic` | Example settings for dynamic workers |
| `devilbox-fpm.conf-pm_ondemand` | Example settings for ondemand workers |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Worker configuration
When changing worker processes or scheduler, the following commands will come in handy
to monitor number of processes and memory consumption.
```bash
# Show current PHP-FPM child memory consumption in MB
ps -ylC php-fpm --sort:rss | awk '!/RSS/ { s+=$8 } END { printf "%dM\n", s/1024 }'
# (repeatedly) show current PHP-FPM child memory consumption in MB
watch --interval=1 "ps -ylC php-fpm --sort:rss | awk '"'!'"/RSS/ { s+=\$8 } END { printf \"%dM\n\", s/1024 }'"
# (repeatedly) Current number of PHP-FPM childs
watch --interval=1 "ps auxw | grep -E 'php-(cgi|fpm)' | grep -vE 'grep|master' | wc -l"
```
## Overwriting
If multiple `.conf` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.
## Compatibility
**Note:**
PHP-FPM 5.2 uses XML-style configuration and does not allow includes.
If you want to change php-fpm.conf for PHP-FPM 5.2 you need to adjust the main configuration file.
See `php-fpm-5.2/` directory.

View File

@ -0,0 +1,80 @@
; ############################################################
; Devilbox php-fpm.conf: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### PHP-FPM global settings
; ###
;
[global]
; Error log level. Possible values: alert, error, warning, notice, debug. Default value: notice.
log_level = notice
; ###
; ### Pool configuratoin
; ###
[www]
; The timeout for serving a single request after which the worker process will be killed.
; This option should be used when the 'max_execution_time' ini option does not stop script
; execution for some reason.
request_terminate_timeout = 120s
; A maximum of backlog incoming connections will be queued for processing.
; If a connection request arrives with the queue full the client may receive an error with an
; indication of ECONNREFUSED, or, if the underlying protocol supports retransmission,
; the request may be ignored so that retries may succeed.
; This should not be greater than `cat /proc/sys/net/core/somaxconn`, otherwise connections
; are silently truncated
listen.backlog = 1024
; static - the number of child processes is fixed (pm.max_children).
;
; dynamic - the number of child processes is set dynamically based on the following directives:
; pm.max_children, pm.start_servers, pm.min_spare_servers, pm.max_spare_servers.
;
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed. Used only when pm is set to ondemand
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

View File

@ -0,0 +1,46 @@
; ############################################################
; # Devilbox php-fpm.conf: dynamic example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible dynamic example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; dynamic - the number of child processes is set dynamically based on the following directives:
pm = dynamic
; The maximum number of child processes to be created
pm.max_children = 50
; The number of child processes created on startup. Used only when pm is set to dynamic.
; Default Value: min_spare_servers + (max_spare_servers - min_spare_servers) / 2.
pm.start_servers = 4
; The desired minimum number of idle server processes.
pm.min_spare_servers = 2
; The desired maximum number of idle server processes.
pm.max_spare_servers = 6
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; vim: set ft=dosini:

View File

@ -0,0 +1,39 @@
; ############################################################
; # Devilbox php-fpm.conf: ondemand example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible ondemand example configuration
; * If this file is enabled, it will overwrite the current worker settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".conf" extension
; * Only files with ".conf" extensions will be applied by PHP-FPM
; ###
; ### Pool configuratoin
; ###
[www]
; ondemand - the processes spawn on demand (when requested, as opposed to dynamic, where
; pm.start_servers are started when the service is started.
pm = ondemand
; The maximum number of child processes to be created
pm.max_children = 50
; The number of requests each child process should execute before respawning.
; This can be useful to work around memory leaks in 3rd party libraries.
; For endless request processing specify '0'. Equivalent to PHP_FCGI_MAX_REQUESTS.
; Default value: 0.
pm.max_requests = 500
; The number of seconds after which an idle process will be killed.
pm.process_idle_timeout = 10s
; vim: set ft=dosini:

0
cfg/php-ini-5.2/.keepme Normal file
View File

26
cfg/php-ini-5.2/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -0,0 +1,63 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

26
cfg/php-ini-5.3/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -1,18 +0,0 @@
[PHP]
; Memory
memory_limit = 4096M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
post_max_size = 1990M
upload_max_filesize = 1990M
; Vars
max_input_vars = 8000
; Error reporting
error_reporting = E_ALL
display_errors = On
track_errors = On

View File

@ -0,0 +1,63 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

26
cfg/php-ini-5.4/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -1,18 +0,0 @@
[PHP]
; Memory
memory_limit = 4096M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
post_max_size = 1990M
upload_max_filesize = 1990M
; Vars
max_input_vars = 8000
; Error reporting
error_reporting = E_ALL
display_errors = On
track_errors = On

View File

@ -0,0 +1,64 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

26
cfg/php-ini-5.5/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -1,18 +0,0 @@
[PHP]
; Memory
memory_limit = 4096M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
post_max_size = 1990M
upload_max_filesize = 1990M
; Vars
max_input_vars = 8000
; Error reporting
error_reporting = E_ALL
display_errors = On
track_errors = On

View File

@ -0,0 +1,64 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

26
cfg/php-ini-5.6/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -1,18 +0,0 @@
[PHP]
; Memory
memory_limit = 4096M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
post_max_size = 1990M
upload_max_filesize = 1990M
; Vars
max_input_vars = 8000
; Error reporting
error_reporting = E_ALL
display_errors = On
track_errors = On

View File

@ -0,0 +1,64 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

26
cfg/php-ini-7.0/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -1,18 +0,0 @@
[PHP]
; Memory
memory_limit = 4096M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
post_max_size = 1990M
upload_max_filesize = 1990M
; Vars
max_input_vars = 8000
; Error reporting
error_reporting = E_ALL
display_errors = On
track_errors = On

View File

@ -0,0 +1,64 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

26
cfg/php-ini-7.1/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -1,18 +0,0 @@
[PHP]
; Memory
memory_limit = 4096M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
post_max_size = 1990M
upload_max_filesize = 1990M
; Vars
max_input_vars = 8000
; Error reporting
error_reporting = E_ALL
display_errors = On
track_errors = On

View File

@ -0,0 +1,64 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
track_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

26
cfg/php-ini-7.2/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -1,18 +0,0 @@
[PHP]
; Memory
memory_limit = 4096M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
post_max_size = 1990M
upload_max_filesize = 1990M
; Vars
max_input_vars = 8000
; Error reporting
error_reporting = E_ALL
display_errors = On
track_errors = On

View File

@ -0,0 +1,63 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

26
cfg/php-ini-7.3/README.md Normal file
View File

@ -0,0 +1,26 @@
# PHP ini directory
## General
* Add you custom php.ini files into this directory.
* Only files ending by `.ini` will be enabled
* Only files ending by `.ini` are ignored by git
## Example files
This directory also holds two example files:
| File | Description |
|----------------------------|-----------------------------------------|
| `devilbox-php.ini-default` | Represents current PHP default settings |
| `devilbox-php.ini-xdebug ` | Example settings for Xdebug |
* Do not edit these example files!
* Copy them to a new file (in case you want to use them)
## Overwriting
If multiple `.ini` files are present in this directory specifying different values for the
same settings, the last file (alphabetically by filename) will overwrite any previous values.

View File

@ -1,18 +0,0 @@
[PHP]
; Memory
memory_limit = 4096M
; Timeouts
max_execution_time = 180
max_input_time = 180
; Uploads
post_max_size = 1990M
upload_max_filesize = 1990M
; Vars
max_input_vars = 8000
; Error reporting
error_reporting = E_ALL
display_errors = On
track_errors = On

View File

@ -0,0 +1,63 @@
; ############################################################
; # Devilbox php.ini: Current default settings
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file shows example settings that are currently effective
; * If this file is enabled, nothing will change as it reflects the current default settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Memory
; Note: "memory_limit" should be larger than "post_max_size"
memory_limit = 512M
; Timeouts
max_execution_time = 120
max_input_time = 120
; Uploads
; Note: "post_max_size" should be greater than "upload_max_filesize"
post_max_size = 72M
upload_max_filesize = 64M
max_file_uploads = 20
; Vars
variables_order = EGPCS
max_input_vars = 8000
max_input_nesting_level = 64
; Error reporting
; Note: error_log is dynamic and handled during start to set appropriate setting
error_reporting = E_ALL | E_NOTICE | E_STRICT | E_DEPRECATED
xmlrpc_errors = Off
report_memleaks = On
display_errors = On
display_startup_errors = On
log_errors = On
html_errors = On
; Xdebug settings
xdebug.default_enable = Off
xdebug.profiler_enable = Off
xdebug.remote_enable = Off
xdebug.remote_autostart = Off
; vim: set ft=dosini:

View File

@ -0,0 +1,36 @@
; ############################################################
; # Devilbox php.ini: Xdebug example
; ############################################################
;
; Information
; -----------
; * Do not edit this file (it belongs to git)
; * This file show a possible Xdebug example configuration
; * If this file is enabled, it will overwrite the current Xdebug settings
;
; How to enable?
; --------------
; * Copy this file to another file with ".ini" extension
; * Only files with ".ini" extensions will be applied by PHP
;
; PHP.ini configuration
;
[PHP]
; Xdebug
; Use these settings to enable Xdebug for PHP
; Make sure to read up on Xdebug some settings might significantly slow down requests.
; The following is just an example configuration and should be adjusted
xdebug.default_enable = On
xdebug.profiler_enable = On
xdebug.remote_enable = On
xdebug.remote_autostart = On
xdebug.remote_handler = dbgp
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM
xdebug.remote_log = /var/log/php/xdebug.log
; vim: set ft=dosini:

View File

@ -94,7 +94,7 @@ services:
# PHP / HHVM
# ------------------------------------------------------------
php:
image: devilbox/php-fpm:${PHP_SERVER:-7.0}-work
image: devilbox/php-fpm:${PHP_SERVER:-7.0}-work-0.29
##
## All .env variables
@ -173,7 +173,7 @@ services:
- ${DEVILBOX_PATH}/log/php-fpm-${PHP_SERVER}:/var/log/php
# Mount Mail directory
#- ${DEVILBOX_PATH}/run/mail:/var/mail
- ${DEVILBOX_PATH}/mail:/var/mail
# Mount DB Backup directory
- ${DEVILBOX_PATH}/backups:/shared/backups
@ -204,7 +204,7 @@ services:
# Web Server
# ------------------------------------------------------------
httpd:
image: devilbox/${HTTPD_SERVER:-nginx-stable}:0.18
image: devilbox/${HTTPD_SERVER:-nginx-stable}:0.21
environment:
@ -249,9 +249,11 @@ services:
##
## PHP-FPM Remote Server
##
- COMPAT=${PHP_SERVER:-7.0}
- PHP_FPM_ENABLE=1
- PHP_FPM_SERVER_ADDR=php
- PHP_FPM_SERVER_PORT=9000
- PHP_FPM_TIMEOUT=${HTTPD_TIMEOUT_TO_PHP_FPM:-180}
ports:
# ---- Format: ----

View File

@ -223,12 +223,6 @@ this project visible to everyone in your corporate LAN.
+-------------+----------------+---------------------------+
| www.test | ``local`` | ``http://www.test.local`` |
+-------------+----------------+---------------------------+
| my-test | ``net`` | ``http://my-test.net`` |
+-------------+----------------+---------------------------+
| example | ``com`` | ``http://example.com`` |
+-------------+----------------+---------------------------+
| www.test | ``org`` | ``http://www.test.org`` |
+-------------+----------------+---------------------------+
.. warning::
Do not use ``dev`` as a domain suffix (I know, it's tempting).
@ -246,6 +240,15 @@ this project visible to everyone in your corporate LAN.
**See also:** |ext_lnk_domain_rfc_localhost| and |ext_lnk_domain_docker_rel_notes_localhost|
.. warning::
**Do not use official domain endings** such as ``.com``, ``.org``, ``.net``, etc.
If you do, all name resolutions to any ``.com`` address (e.g.: google.com) will be resolved
to the Devilbox's PHP server IP address.
The bundled DNS server does a catch-all on the given TLD_SUFFIX and resolves everything
below it to the PHP container.
.. _env_extra_hosts:
EXTRA_HOSTS
@ -525,20 +528,28 @@ PHP_SERVER
This variable choses your desired PHP-FPM version to be started.
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
| Name | Allowed values | Default value |
+=========================+====================================================================================================================================================================+=================+
| ``PHP_SERVER`` | ``php-fpm-5.3`` |br| ``php-fpm-5.4`` |br| ``php-fpm-5.5`` |br| ``php-fpm-5.6`` |br| ``php-fpm-7.0`` |br| ``php-fpm-7.1`` |br| ``php-fpm-7.2`` |br| ``php-fpm-7.2`` | ``php-fpm-7.1`` |
+-------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
| Name | Allowed values | Default value |
+=========================+=========================================================================================================================================================================================+=================+
| ``PHP_SERVER`` | ``php-fpm-5.2`` |br| ``php-fpm-5.3`` |br| ``php-fpm-5.4`` |br| ``php-fpm-5.5`` |br| ``php-fpm-5.6`` |br| ``php-fpm-7.0`` |br| ``php-fpm-7.1`` |br| ``php-fpm-7.2`` |br| ``php-fpm-7.3`` | ``php-fpm-7.1`` |
+-------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+
.. important::
**PHP 5.2** is available to use, but it is not officially supported. The Devilbox intranet does
not work with this version as PHP 5.2 does not support namespaces. Furthermore PHP 5.2 does only
work with Apache 2.4, Nginx stable and Nginx mainline. It does not work with Apache 2.2.
**Use at your own risk.**
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
.. code-block:: bash
:caption: .env
:emphasize-lines: 7
:emphasize-lines: 9
host> grep PHP_SERVER .env
#PHP_SERVER=php-fpm-5.2
#PHP_SERVER=php-fpm-5.3
#PHP_SERVER=php-fpm-5.4
#PHP_SERVER=php-fpm-5.5
@ -1390,6 +1401,32 @@ changing the server name or adding locations to other assets.
..
* :ref:`customize_all_virtual_hosts_globally`
.. _env_httpd_timeout_to_php_fpm:
HTTPD_TIMEOUT_TO_PHP_FPM
^^^^^^^^^^^^^^^^^^^^^^^^
This variable specifies after how many seconds the webserver should quit an unanswered connection
to PHP-FPM.
Ensure that this value is higher than PHP's ``max_execution_time``, otherwise the PHP script
could still run and the webserver will simply drop the connection before getting an answer
by PHP.
If ``HTTPD_TIMEOUT_TO_PHP_FPM`` is smaller then ``max_execution_time`` and a script runs longer
than ``max_execution_time``, you will get a: ``504 Gateway timeout`` in the browser.
If ``HTTPD_TIMEOUT_TO_PHP_FPM`` is greater then ``max_execution_time`` and a script runs longer
than ``max_execution_time``, you will get a proper PHP error message in the browser.
+------------------------------+-------------------+------------------+
| Name | Allowed values | Default value |
+==============================+===================+==================+
| ``HTTPD_TIMEOUT_TO_PHP_FPM`` | positive integer | ``180`` |
+------------------------------+-------------------+------------------+
MySQL
-----

View File

@ -31,6 +31,7 @@ See the directory structure for PHP-FPM configuration directories inside ``./cfg
host> ls -l path/to/devilbox/cfg/ | grep 'php-fpm'
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-fpm-5.5/
@ -43,12 +44,30 @@ See the directory structure for PHP-FPM configuration directories inside ``./cfg
Customization is achieved by placing a file into ``cfg/php-fpm-X.X/`` (where ``X.X`` stands for
your PHP version). The file must end by ``.conf`` in order to be sourced by the PHP-FPM server.
Each of the PHP-FPM conf configuration directories already contain an example file:
``devilbox-custom.conf-example``, that can simply be renamed to ``devilbox-custom.conf``.
This file holds some example values that can be adjusted or commented out.
Each of the PHP-FPM conf configuration directories already contains three example file:
``devilbox-fpm.conf-default``, ``devilbox-fpm.conf-pm_dynamic`` and ``devilbox-fpm.conf-pm_ondemand``.
**devilbox-fpm.conf-default**
This file holds the exact settings that are currently in place by each PHP-FPM container.
Copy it (do not simply rename it) to a different file ending by ``.conf`` and start adjusting it.
**devilbox-fpm.conf-pm_dynamic**
This file holds some sane example configuration to switch PHP-FPM scheduler to ``dynamic``
(The default is ``ondemand``).
Copy it (do not simply rename it) to a different file ending by ``.conf`` and start adjusting it.
**devilbox-fpm.conf-pm_ondemand**
This file holds the current default values for the PHP-FPM scheduler which is using ``ondemand``.
Copy it (do not simply rename it) to a different file ending by ``.conf`` and start adjusting it.
**How to apply the settings**
In order for the changes to be applied, you will have to restart the Devilbox.
.. seealso::
To find out about all available PHP-FPM directives, global or pool specific have a look
at its documentation: https://secure.php.net/manual/en/install.fpm.configuration.php

View File

@ -24,6 +24,7 @@ See the directory structure for PHP configuration directories inside ``./cfg/``
host> ls -l path/to/devilbox/cfg/ | grep 'php-ini'
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 php-ini-5.5/
@ -36,9 +37,22 @@ See the directory structure for PHP configuration directories inside ``./cfg/``
Customization is achieved by placing a file into ``cfg/php-ini-X.X/`` (where ``X.X`` stands for
your PHP version). The file must end by ``.ini`` in order to be sourced by the PHP-FPM server.
Each of the PHP ini configuration directories already contain an example file:
``devilbox-custom.ini-example``, that can simply be renamed to ``devilbox-custom.ini``.
This file holds some example values that can be adjusted or commented out.
Each of the PHP ini configuration directories already contains two example files:
``devilbox-php.ini-default`` and ``devilbox-php.ini-xdebug``.
**devilbox-php.ini-default**
This file holds the exact settings that are currently in place by each PHP-FPM container.
Copy it (do not simply rename it) to a different file ending by ``.ini`` and start adjusting it.
**devilbox-php.ini-xdebug**
This file holds some sane example configuration to get you started with Xdebug.
Copy it (do not simply rename it) to a different file ending by ``.ini`` and start adjusting it.
.. important:: For Xdebug to work, there are other changes requires as well: :ref:`configure_php_xdebug`
**How to apply the settings**
In order for the changes to be applied, you will have to restart the Devilbox.

View File

@ -178,4 +178,7 @@ host operating systems ``/etc/hosts`` file (or ``C:\Windows\System32\drivers\etc
All set now, you can visit http://my-magento.loc or https://my-magento.loc in your browser
and follow the installation steps.
.. important::
Use ``127.0.0.1`` for the MySQL database hostname.
.. seealso:: :ref:`setup_valid_https`

View File

@ -37,13 +37,13 @@ imported into your local browser to make all certificates valid and trusted.
Automated DNS records
^^^^^^^^^^^^^^^^^^^^^
The built-in DNS server will automatically make any DNS record available to your host system by
using a wild-card DNS record.
using a wild-card DNS record. This removes the need to create developer DNS records
in ``/etc/hosts``.
Email catch-all
^^^^^^^^^^^^^^^
All outgoing emails originating from your projects are intercepted, stored locally and
can be viewed within the bundled intranet. This removes the need to create developer DNS records
in ``/etc/hosts``.
can be viewed within the bundled intranet.
Log files
^^^^^^^^^
@ -53,8 +53,8 @@ separetely.
Virtual host domains
^^^^^^^^^^^^^^^^^^^^
Each of your virtual host will have its own domain. TLD can be freely chosen, such as ``*.loc``,
``*.local``, ``*.com``, ``*.org`` or whatever you require.
Each of your virtual host will have its own domain. TLD can be freely chosen, such as ``*.loc`` or
``*.local``. Be aware that some TLD's can cause problems. Read more here: :ref:`env_tld_suffix`.
Service and version choice

View File

@ -77,8 +77,9 @@ It will look something like this:
.. code-block:: bash
:caption: .env
:emphasize-lines: 6
:emphasize-lines: 7
#PHP_SERVER=5.2
#PHP_SERVER=5.3
#PHP_SERVER=5.4
#PHP_SERVER=5.5
@ -99,8 +100,9 @@ In order to enable PHP 5.5, you would change the ``.env`` file like this:
.. code-block:: bash
:caption: .env
:emphasize-lines: 3
:emphasize-lines: 4
#PHP_SERVER=5.2
#PHP_SERVER=5.3
#PHP_SERVER=5.4
PHP_SERVER=5.5
@ -216,8 +218,9 @@ Consider this ``.env`` file:
.. code-block:: bash
:caption: .env
:emphasize-lines: 3,5
:emphasize-lines: 4,6
#PHP_SERVER=5.2
#PHP_SERVER=5.3
#PHP_SERVER=5.4
PHP_SERVER=5.5

View File

@ -51,9 +51,10 @@ The following example show how to configure PHP Xdebug for PHP 5.6:
.. code-block:: ini
:caption: xdebug.ini
:emphasize-lines: 6,10
:emphasize-lines: 7,11
# Defaults
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_port=9000

View File

@ -75,9 +75,10 @@ The following example show how to configure PHP Xdebug for PHP 5.6:
.. code-block:: ini
:caption: xdebug.ini
:emphasize-lines: 6-7,11
:emphasize-lines: 7-8,12
# Defaults
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_port=9000
@ -138,9 +139,10 @@ The following example show how to configure PHP Xdebug for PHP 5.6:
.. code-block:: ini
:caption: xdebug.ini
:emphasize-lines: 6-7,11
:emphasize-lines: 7-8,12
# Defaults
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_port=9000

View File

@ -68,9 +68,10 @@ The following example show how to configure PHP Xdebug for PHP 5.6:
.. code-block:: ini
:caption: xdebug.ini
:emphasize-lines: 6-7,11
:emphasize-lines: 7-8,12
# Defaults
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_port=9000
@ -137,9 +138,10 @@ The following example show how to configure PHP Xdebug for PHP 5.6:
.. code-block:: ini
:caption: xdebug.ini
:emphasize-lines: 6-7,11
:emphasize-lines: 7-8,12
# Defaults
xdebug.default_enable=1
xdebug.remote_enable=1
xdebug.remote_port=9000

View File

@ -125,6 +125,7 @@ you want. See :ref:`env_tld_suffix`.
.. warning::
Be aware not to use ``dev`` or ``localhost``. See :ref:`env_tld_suffix` for more details.
Also do not use any official domain TLDs such as ``com``, ``net``, ``org``, etc.
Can I just start PHP and MySQL instead of all container?

View File

@ -136,6 +136,32 @@ This error occurs when using ``localhost`` as the :ref:`env_tld_suffix`.
* https://github.com/cytopia/devilbox/issues/291
SSL issues
==========
unable to get local issuer certificate
--------------------------------------
.. code-block:: bash
Errors occurred when trying to connect to www.example.com:
cURL error 77: error setting certificate verify locations: CAfile: certificate ./ca/cacert.pem CApath: /etc/ssl/certs
This issue might arise if you set :ref:`env_tld_suffix` to an official top level domain such as ``.com``.
What happens is that the bundled DNS server does a catch-all on the TLD and redirects all name
resolution to the Devilbox's PHP container IP address.
If you want to access ``https://www.example.com`` in that case, the request goes to the PHP
container which does not have a valid SSL certificate for that domain.
**Do not user official TLD's** for :ref:`env_tld_suffix`.
.. seealso::
* :ref:`env_tld_suffix`
* https://github.com/cytopia/devilbox/issues/275
Web server issues
=================
@ -181,10 +207,12 @@ Check your Docker settings to allow shared volumes for the path of the Devilbox
This error occurs when the upstream PHP-FPM server takes longer to execute a script,
than the timeout value set in the web server for PHP-FPM to answer.
For that to fix one must increase the PHP-FPM/Proxy timeout settings on the virtual host.
For that to fix one must increase the PHP-FPM/Proxy timeout settings in the ``.env`` file.
:ref:`env_httpd_timeout_to_php_fpm`
.. seealso::
* :ref:`env_httpd_timeout_to_php_fpm`
* https://github.com/cytopia/devilbox/issues/280
* https://github.com/cytopia/devilbox/issues/234

View File

@ -22,21 +22,21 @@ Simple sub domains for one project
When you just want to serve your project under different sub domains, you simply name your project
directory by the name of it. See the following examples how you build up your project URL.
+----------------+----------------+-------------------------------+
| Project dir | ``TLD_SUFFIX`` | Project URL |
+================+================+===============================+
| my-test | ``loc`` | ``http://my-test.loc`` |
+----------------+----------------+-------------------------------+
| www.my-test | ``loc`` | ``http://www.my-test.loc`` |
+----------------+----------------+-------------------------------+
| t1.www.my-test | ``loc`` | ``http://t1.www.my-test.loc`` |
+----------------+----------------+-------------------------------+
| my-test | ``com`` | ``http://my-test.com`` |
+----------------+----------------+-------------------------------+
| www.my-test | ``com`` | ``http://www.my-test.com`` |
+----------------+----------------+-------------------------------+
| t2.www.my-test | ``com`` | ``http://t2.www.my-test.com`` |
+----------------+----------------+-------------------------------+
+----------------+----------------+---------------------------------+
| Project dir | ``TLD_SUFFIX`` | Project URL |
+================+================+=================================+
| my-test | ``loc`` | ``http://my-test.loc`` |
+----------------+----------------+---------------------------------+
| www.my-test | ``loc`` | ``http://www.my-test.loc`` |
+----------------+----------------+---------------------------------+
| t1.www.my-test | ``loc`` | ``http://t1.www.my-test.loc`` |
+----------------+----------------+---------------------------------+
| my-test | ``local`` | ``http://my-test.local`` |
+----------------+----------------+---------------------------------+
| www.my-test | ``local`` | ``http://www.my-test.local`` |
+----------------+----------------+---------------------------------+
| t2.www.my-test | ``local`` | ``http://t2.www.my-test.local`` |
+----------------+----------------+---------------------------------+
Whatever name you want to have in front of the ``TLD_SUFFIX`` is actually just the directory you
create. Generically, it looks like this:

View File

@ -219,6 +219,11 @@ DEVILBOX_UI_ENABLE=1
###
### 1.1 Choose PHP Server Image
###
### Note: PHP 5.2 is not officially supported. Intranet won't work (due to lack of namespace support).
### PHP 5.2 only works with Apache 2.4, Nginx stable and Nginx mainline.
### Use at your own risk.
###
#PHP_SERVER=5.2
#PHP_SERVER=5.3
#PHP_SERVER=5.4
#PHP_SERVER=5.5
@ -473,6 +478,16 @@ HTTPD_DOCROOT_DIR=htdocs
HTTPD_TEMPLATE_DIR=.devilbox
###
### Webserver timeout (in seconds) to upstream PHP-FPM server
###
### This value should be greater than PHP's max_execution_time,
### otherwise the php script could still run and the webserver will
### simply drop the connection before getting an answer by PHP.
###
HTTPD_TIMEOUT_TO_PHP_FPM=180
################################################################################
###

0
mail/.keepme Normal file
View File

View File

@ -120,7 +120,7 @@ features:
# PHP-FPM will not be applied to a reverse proxy!
php_fpm: |
# PHP-FPM Definition
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://__PHP_ADDR__:__PHP_PORT____DOCUMENT_ROOT__/$1
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://__PHP_ADDR__:__PHP_PORT____DOCUMENT_ROOT__/$1 timeout=__PHP_TIMEOUT__
alias: |
# Alias Definition

View File

@ -120,14 +120,19 @@ features:
# PHP-FPM will not be applied to a reverse proxy!
php_fpm: |
# In case for PHP-FPM 5.2 compatibility use 'GENERIC' instead of 'FPM'
# https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html#proxyfcgibackendtype
ProxyFCGIBackendType FPM
# PHP-FPM Definition
<FilesMatch \.php$>
Require all granted
SetHandler proxy:fcgi://__PHP_ADDR__:__PHP_PORT__
</FilesMatch>
# enablereuse requires Apache 2.4.11 or later
<Proxy "fcgi://__PHP_ADDR__:__PHP_PORT__/" enablereuse=on max=10>
<Proxy "fcgi://__PHP_ADDR__:__PHP_PORT__/">
ProxySet timeout=__PHP_TIMEOUT__
ProxySet connectiontimeout=__PHP_TIMEOUT__
</Proxy>
# If the php file doesn't exist, disable the proxy handler.

View File

@ -112,10 +112,14 @@ features:
try_files $uri = 404;
include fastcgi_params;
# https://stackoverflow.com/questions/1733306/nginx-errors-readv-and-recv-failed/51457613#51457613
fastcgi_keep_conn off;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_pass __PHP_ADDR__:__PHP_PORT__;
fastcgi_read_timeout __PHP_TIMEOUT__;
fastcgi_index index.php;
fastcgi_intercept_errors on;