mirror of
https://github.com/YunoHost/yunohost.git
synced 2024-09-03 20:06:10 +02:00
[php] Add migration procedure for php7.0 -> php7.3 pool files
This commit is contained in:
parent
5930b6ddf2
commit
2c7b3a1fd1
1 changed files with 70 additions and 0 deletions
70
src/yunohost/data_migrations/0016_php70_to_php73_pools.py
Normal file
70
src/yunohost/data_migrations/0016_php70_to_php73_pools.py
Normal file
|
@ -0,0 +1,70 @@
|
|||
import os
|
||||
import glob
|
||||
from shutil import copy2
|
||||
|
||||
from moulinette.utils.log import getActionLogger
|
||||
|
||||
from yunohost.tools import Migration
|
||||
from yunohost.service import _run_service_command
|
||||
|
||||
logger = getActionLogger('yunohost.migration')
|
||||
|
||||
PHP70_POOLS = "/etc/php/7.0/fpm/pool.d"
|
||||
PHP73_POOLS = "/etc/php/7.3/fpm/pool.d"
|
||||
|
||||
PHP70_SOCKETS_PREFIX = "/run/php/php7.0-fpm"
|
||||
PHP73_SOCKETS_PREFIX = "/run/php/php7.3-fpm"
|
||||
|
||||
MIGRATION_COMMENT = "; YunoHost note : this file was automatically moved from {}".format(PHP70_POOLS)
|
||||
|
||||
|
||||
class MyMigration(Migration):
|
||||
|
||||
"Migrate php7.0-fpm 'pool' conf files to php7.3"
|
||||
|
||||
dependencies = ["migrate_to_buster"]
|
||||
|
||||
def run(self):
|
||||
# Get list of php7.0 pool files
|
||||
php70_pool_files = glob.glob("{}/*.conf".format(PHP70_POOLS))
|
||||
|
||||
# Keep only basenames
|
||||
php70_pool_files = [os.path.basename(f) for f in php70_pool_files]
|
||||
|
||||
# Ignore the "www.conf" (default stuff, probably don't want to touch it ?)
|
||||
php70_pool_files = [f for f in php70_pool_files if f != "www.conf"]
|
||||
|
||||
for f in php70_pool_files:
|
||||
|
||||
# Copy the files to the php7.3 pool
|
||||
src = "{}/{}".format(PHP70_POOLS, f)
|
||||
dest = "{}/{}".format(PHP73_POOLS, f)
|
||||
copy2(src, dest)
|
||||
|
||||
# Replace the socket prefix if it's found
|
||||
c = "sed -i -e 's@{}@{}@g' {}".format(PHP70_SOCKETS_PREFIX, PHP73_SOCKETS_PREFIX, dest)
|
||||
os.system(c)
|
||||
|
||||
# Also add a comment that it was automatically moved from php7.0
|
||||
# (for human traceability and backward migration)
|
||||
c = "sed -i '1i {}' {}".format(MIGRATION_COMMENT, dest)
|
||||
os.system(c)
|
||||
|
||||
# Reload/restart the php pools
|
||||
_run_service_command("restart", "php7.3-fpm")
|
||||
_run_service_command("enable", "php7.3-fpm")
|
||||
os.system("systemctl stop php7.0-fpm")
|
||||
os.system("systemctl disable php7.0-fpm")
|
||||
os.system("rm /etc/logrotate.d/php7.0-fpm") # We remove this otherwise the logrotate cron will be unhappy
|
||||
|
||||
# Get list of nginx conf file
|
||||
nginx_conf_files = glob.glob("/etc/nginx/conf.d/*.d/*.conf")
|
||||
for f in nginx_conf_files:
|
||||
# Replace the socket prefix if it's found
|
||||
c = "sed -i -e 's@{}@{}@g' {}".format(PHP70_SOCKETS_PREFIX, PHP73_SOCKETS_PREFIX, f)
|
||||
os.system(c)
|
||||
# FIXME : should tweak the checksum setting in settings.yml of the app so that the file ain't considered manually modified
|
||||
# Aslo gotta tweak the settings fpm_service and fpm_config_dir ...
|
||||
|
||||
# Reload nginx
|
||||
_run_service_command("reload", "nginx")
|
Loading…
Add table
Reference in a new issue