This is a generic PHP engine used to launch PHP web and worker services on Nanobox. It exposes a wide collection configuration options generally handled in the php.ini and other configuration files. Both PHP settings and web server settings are available.
To use this engine, specify in the boxfile.yml:
run.config:
engine: phpThis engine uses Composer to manage dependencies. If a composer.json file exists at the root of your application, dependencies will be fetched during a build. The composer install command can be customized during the build process using a setting in the boxfile.yml.
run.config:
engine: php
engine.config:
composer_install: "composer install --no-interaction --prefer-source"This engine exposes configuration options through the boxfile.yml, a yaml config file used to provision and configure your app's platform.
This Readme outlines only the most basic and commonly used settings. For the full list of available configuration options, view the Advanced PHP Configuration options.
run.config:
engine.config:
# PHP Settings
runtime: 'php-7.0'
extensions:
- curl
- gd
- mbstring
- pdo_mysql
zend_extensions:
- ioncube_loader
- opcache
max_execution_time: 30
max_input_time: 30
error_reporting: E_ALL
display_errors: 'stderr'
post_max_size: '8M'
upload_max_filesize: '2M'
file_uploads: true
# Web Server Settings
webserver: 'apache'
# Apache Settings
apache_document_root: '/'
apache_php_interpreter: fpm
apache_access_log: falseWeb Server Settings
PHP Settings
Apache Settings
The following setting is used to select which web server to use in your application.
The following web servers are available:
- apache (default)
- nginx
- builtin (PHP's built-in web server available in 5.4+)
run.config:
engine.config:
webserver: 'apache'Web server specific settings are available in the following sections of the Advanced PHP Configuration doc:
Apache Settings
Nginx Settings
Built-In PHP Web Server Settings
The following settings are typically configured in the php.ini. When using Nanobox, these are configured in the boxfile.yml.
- runtime
- extensions
- zend_extensions
- max_execution_time
- max_input_time
- error_reporting
- display_errors
- post_max_size
- upload_max_filesize
- file_uploads
- date_timezone
Specifies which PHP runtime and version to use. The following runtimes are available:
- php-5.3
- php-5.4
- php-5.5
- php-5.6
- php-7.0 (default)
- php-7.1
- php-7.2
run.config:
engine.config:
runtime: 'php-7.0'Specifies what PHP extensions should be included in your app's environment. To see what PHP extensions are available, view the full list of available PHP extensions.
run.config:
engine.config:
extensions:
- curl
- gd
- mbstring
- pdo_mysqlSpecifies what Zend extensions should be included in your app's environment. To see what Zend extensions are available, view the Zend Extensions section of the PHP extensions list.
run.config:
engine.config:
zend_extensions:
- ioncube_loader
- opcacheSets the max_execution_time PHP setting.
run.config:
engine.config:
max_execution_time: 30Sets the max_input_time PHP setting.
run.config:
engine.config:
max_input_time: 60Sets the error_reporting PHP setting.
run.config:
engine.config:
error_reporting: E_ALLSets the display_errors PHP setting.
run.config:
engine.config:
display_errors: 'stderr'Sets the post_max_size PHP setting.
run.config:
engine.config:
post_max_size: '8M'Sets the upload_max_filesize PHP setting.
run.config:
engine.config:
upload_max_filesize: '2M'Sets the file_uploads PHP setting.
run.config:
engine.config:
file_uploads: trueSets the date.timezone PHP setting.
run.config:
engine.config:
date_timezone: 'US/central'The following settings are used to configure Apache. These only apply when using apache as your webserver.
Specify which PHP interpreter you would like Apache to use.
- fpm (default)
- mod_php
run.config:
engine.config:
apache_php_interpreter: fpmEnables or disables the Apache Access log.
run.config:
engine.config:
apache_access_log: falseThis is a generic (non-framework-specific) PHP engine provided by Nanobox. If you need help with this engine, you can reach out to us in the #nanobox IRC channel. If you are running into an issue with the engine, feel free to create a new issue on this project.