Changing PHP Settings

SpinupWP makes it very easy to switch the version of PHP that runs a site:

  • From a site’s dashboard, select Settings from the left menu.
  • Select your desired version of PHP from the drop-down menu.
  • Click Save

If you select a version of PHP that has not been installed on the server, it will be installed.

If you want to customize your PHP configuration however, it’s more advanced. You need to SSH into the server using a Sudo User and edit configuration files. We plan to have a configuration editor in SpinupWP in the future, but we’re not there yet.

PHP settings are controlled using php.ini files. When you deploy a server via SpinupWP, a default php.ini file is created with sensible default values. However, you are free to update these values.

Each version of PHP has its own php.ini file, which is located here:

/etc/php/{PHP_VERSION}/fpm/php.ini

Any changes made to this file will impact all sites on the server running that version of PHP, unless they are overridden by per-site settings. After you’ve made the desired configuration changes, you must reload PHP for the changes to take effect.

sudo service php{PHP_VERSION}-fpm reload

Per-Site Settings

Each site deployed via SpinupWP is created with its own PHP pool. This means that you can override the settings in your php.ini file on a per-site basis. Any value in your php.ini file can be overridden by adding the value to your /etc/php/{PHP_VERSION}/fpm/pool.d/{SITE_USER}.conf file, like so:

php_value[upload_max_filesize] = 64M
php_value[post_max_size] = 64M

php_value should not be used to set boolean values. Instead, use php_flag:

php_flag[display_errors] = Off

It’s also possible to prevent config values from being overridden by ini_set by using php_admin_value and php_admin_flag.

php_admin_value[upload_max_filesize] = 64M
php_admin_value[post_max_size] = 64M
php_admin_flag[display_errors] = Off

Remember to reload PHP when making any changes to your PHP pool config files.

sudo service php{PHP_VERSION}-fpm reload

Array Based Syntax

Note that per-site configuration files use array based syntax. This is a slightly different syntax than found in default php.ini files.

Setting the upload_max_file_size in a per-site file:

php_value[upload_max_filesize] = 64M

Setting the upload_max_file_size in a default php.ini file:

upload_max_filesize = 64M