diff --git a/wo/cli/plugins/site_functions.py b/wo/cli/plugins/site_functions.py index a3914a5..a0a55ec 100644 --- a/wo/cli/plugins/site_functions.py +++ b/wo/cli/plugins/site_functions.py @@ -872,95 +872,43 @@ def site_package_check(self, stype): wo_nginx.write('fastcgi_param \tSCRIPT_FILENAME ' '\t$request_filename;\n') - if ((pargs.php and pargs.php73) or (pargs.php and pargs.php74) or - (pargs.php and pargs.php72) or (pargs.php and pargs.php80) or - (pargs.php and pargs.php81) or (pargs.php and pargs.php82) or - (pargs.php72 and pargs.php73) or (pargs.php72 and pargs.php74) or - (pargs.php72 and pargs.php80) or (pargs.php72 and pargs.php81) or - (pargs.php72 and pargs.php82) or - (pargs.php73 and pargs.php74) or (pargs.php73 and pargs.php80) or - (pargs.php73 and pargs.php81) or (pargs.php73 and pargs.php82) or - (pargs.php74 and pargs.php80) or (pargs.php74 and pargs.php81) or - (pargs.php74 and pargs.php82) or - (pargs.php80 and pargs.php81) or (pargs.php80 and pargs.php82) or - (pargs.php81 and pargs.php82)): - Log.error( - self, "Error: two different PHP versions cannot be " - "combined within the same WordOps site") + php_versions = ['php72', 'php73', 'php74', 'php80', 'php81', 'php82'] + + selected_versions = [version for version in php_versions if getattr(pargs, version)] + if len(selected_versions) > 1: + Log.error(self, "Error: two different PHP versions cannot be " + "combined within the same WordOps site") + + php_versions = { + 'php72': '7.2', + 'php73': '7.3', + 'php74': '7.4', + 'php80': '8.0', + 'php81': '8.1', + 'php82': '8.2', + } if ((not pargs.php72) and (not pargs.php73) and (not pargs.php74) and (not pargs.php80) and (not pargs.php81) and (not pargs.php82) and stype in ['php', 'mysql', 'wp', 'wpsubdir', 'wpsubdomain']): Log.debug(self, "Setting apt_packages variable for PHP") - php_check = 'php8.0-fpm' - php_to_setup = WOVar.wo_php80 - if self.app.config.has_section('php'): - config_php_ver = self.app.config.get( - 'php', 'version') - if config_php_ver == '7.2': - php_check = 'php7.2-fpm' - php_to_setup = WOVar.wo_php72 - elif config_php_ver == '7.3': - php_check = 'php7.3-fpm' - php_to_setup = WOVar.wo_php73 - elif config_php_ver == '7.4': - php_check = 'php7.4-fpm' - php_to_setup = WOVar.wo_php74 - elif config_php_ver == '8.0': - php_check = 'php8.0-fpm' - php_to_setup = WOVar.wo_php80 - elif config_php_ver == '8.1': - php_check = 'php8.1-fpm' - php_to_setup = WOVar.wo_php81 - elif config_php_ver == '8.2': - php_check = 'php8.2-fpm' - php_to_setup = WOVar.wo_php82 - else: - php_check = 'php8.1-fpm' - php_to_setup = WOVar.wo_php81 - else: - php_check = 'php8.1-fpm' - php_to_setup = WOVar.wo_php81 - if not (WOAptGet.is_installed(self, php_check)): - apt_packages = apt_packages + php_to_setup + WOVar.wo_php_extra + for version_key, version_number in php_versions.items(): + if (self.app.config.has_section('php') and + self.app.config.get('php', 'version') == version_number): + Log.debug( + self, + f"Setting apt_packages variable for PHP {version_number}") + if not WOAptGet.is_installed(self, f'php{version_number}-fpm'): + apt_packages += getattr( + WOVar, f'wo_{version_key}') + WOVar.wo_php_extra - if pargs.php72 and stype in ['php72', 'mysql', 'wp', - 'wpsubdir', 'wpsubdomain']: - Log.debug(self, "Setting apt_packages variable for PHP 7.2") - if not WOAptGet.is_installed(self, 'php7.2-fpm'): - apt_packages = apt_packages + WOVar.wo_php72 + WOVar.wo_php_extra - - if pargs.php73 and stype in ['php73', 'mysql', 'wp', - 'wpsubdir', 'wpsubdomain']: - Log.debug(self, "Setting apt_packages variable for PHP 7.3") - if not WOAptGet.is_installed(self, 'php7.3-fpm'): - apt_packages = apt_packages + WOVar.wo_php73 + WOVar.wo_php_extra - - if pargs.php74 and stype in ['php74', 'mysql', 'wp', - 'wpsubdir', 'wpsubdomain']: - Log.debug(self, "Setting apt_packages variable for PHP 7.4") - if not WOAptGet.is_installed(self, 'php7.4-fpm'): - apt_packages = apt_packages + WOVar.wo_php74 + WOVar.wo_php_extra - - if pargs.php80 and stype in ['php80', 'mysql', 'wp', - 'wpsubdir', 'wpsubdomain']: - Log.debug(self, "Setting apt_packages variable for PHP 8.0") - if not WOAptGet.is_installed(self, 'php8.0-fpm'): - apt_packages = apt_packages + WOVar.wo_php80 + WOVar.wo_php_extra - - if pargs.php81 and stype in ['php81', 'mysql', 'wp', - 'wpsubdir', 'wpsubdomain']: - Log.debug(self, "Setting apt_packages variable for PHP 8.1") - if not WOAptGet.is_installed(self, 'php8.1-fpm'): - apt_packages = apt_packages + WOVar.wo_php81 + WOVar.wo_php_extra - - if pargs.php82 and stype in ['php82', 'mysql', 'wp', - 'wpsubdir', 'wpsubdomain']: - Log.debug(self, "Setting apt_packages variable for PHP 8.2") - if not WOAptGet.is_installed(self, 'php8.2-fpm'): - apt_packages = apt_packages + WOVar.wo_php82 + WOVar.wo_php_extra + for version_key, version_number in php_versions.items(): + if getattr(self.pargs, version_key) and stype in [version_key, 'mysql', 'wp', 'wpsubdir', 'wpsubdomain']: + Log.debug(self, f"Setting apt_packages variable for PHP {version_number}") + if not WOAptGet.is_installed(self, f'php{version_number}-fpm'): + apt_packages += getattr(WOVar, f'wo_{version_key}') + WOVar.wo_php_extra if stype in ['mysql', 'wp', 'wpsubdir', 'wpsubdomain']: Log.debug(self, "Setting apt_packages variable for MySQL")