2021-04-04 10:59:36 +01:00
|
|
|
|
<?php
|
|
|
|
|
/*
|
|
|
|
|
## Installing
|
|
|
|
|
|
2021-10-22 23:21:45 +02:00
|
|
|
|
:::caution
|
|
|
|
|
Do **not** reload php-fpm. Some user requests could fail or not complete in the
|
|
|
|
|
process of reloading.
|
|
|
|
|
|
|
|
|
|
Instead, configure your server [properly](https://ï.at/avoid-php-fpm-reloading). If you're using Deployer's provision
|
|
|
|
|
recipe, it's already configured the right way and no php-fpm reload is needed.
|
|
|
|
|
:::
|
|
|
|
|
|
2021-04-04 10:59:36 +01:00
|
|
|
|
Add to your _deploy.php_
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
require 'contrib/php-fpm.php';
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## Configuration
|
|
|
|
|
|
|
|
|
|
- `php_fpm_version` – The PHP-fpm version. For example: `8.0`.
|
|
|
|
|
- `php_fpm_service` – The full name of the PHP-fpm service. Defaults to `php{{php_fpm_version}}-fpm`.
|
|
|
|
|
- `php_fpm_command` – The command to run to reload PHP-fpm. Defaults to `echo "" | sudo -S /usr/sbin/service {{php_fpm_service}} reload`.
|
|
|
|
|
|
|
|
|
|
## Usage
|
|
|
|
|
|
|
|
|
|
Start by explicitely providing the current version of PHP-version using the `php_fpm_version`.
|
|
|
|
|
Alternatively, you may use any of the options above to configure how PHP-fpm should reload.
|
|
|
|
|
|
|
|
|
|
Then, add the `php-fpm:reload` task at the end of your deployments by using the `after` method like so.
|
|
|
|
|
|
|
|
|
|
```php
|
|
|
|
|
set('php_fpm_version', '8.0');
|
|
|
|
|
after('deploy', 'php-fpm:reload');
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
namespace Deployer;
|
|
|
|
|
|
|
|
|
|
set('php_fpm_version', function () {
|
|
|
|
|
$phpFpmProcess = run("ps aux | grep php-fpm | grep 'master process'");
|
|
|
|
|
|
|
|
|
|
if (! preg_match('/^.*master process.*(\d\.\d).*$/', $phpFpmProcess, $match)) {
|
|
|
|
|
throw new \Exception('Please provide the PHP-fpm version using the `php_fpm_version` option.');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $match[1];
|
|
|
|
|
});
|
|
|
|
|
set('php_fpm_service', 'php{{php_fpm_version}}-fpm');
|
|
|
|
|
set('php_fpm_command', 'echo "" | sudo -S /usr/sbin/service {{php_fpm_service}} reload');
|
|
|
|
|
|
|
|
|
|
desc('Reload the php-fpm service');
|
|
|
|
|
task('php-fpm:reload', function () {
|
2021-10-22 23:21:45 +02:00
|
|
|
|
warning('Avoid reloading php-fpm [ï.at/avoid-php-fpm-reloading]');
|
2021-04-04 10:59:36 +01:00
|
|
|
|
run('{{php_fpm_command}}');
|
|
|
|
|
});
|