Je suis en cours d'upgrade d'un serveur avec ispConfig3 installé.
Je vais détaillé ma "technique" pour discussion car j'ai eu des surprises...
ATTENTION (1): Inutile de vous rappeler qu'un backup (Fichiers et bases de données) est incontournable avant de vous lancer dans les manipulations qui suivent...
ATTENTION (2), pour ne pas vous retrouver avec un serveur inaccessible par ssh, prévoyez AVANT l'upgrade de générer une nouvelle paire de clef ssh solide!
$ ssh-keygen -t ed25519 -a 100 -f ~/.ssh/id_serveur1
Puis ajoutez votre clef publique comme d'habitude au fichier ~/.ssh/authorized_keys
Et pensez à tester...

J'avais compilé plusieurs PHP7, mes vhosts sont déjà configurés pour l'utiliser:

1) Avant le mise à niveau et le changement de sources.list:
Code : Tout sélectionner
apt update && apt upgrade -y
Code : Tout sélectionner
deb http://deb.debian.org/debian stretch main contrib non-free
deb http://deb.debian.org/debian stretch-updates main contrib non-free
deb http://security.debian.org/ stretch/updates main contrib non-free
deb http://deb.debian.org/debian/ stretch-proposed-updates main contrib non-free
apt update
apt install -y debian-keyring debian-archive-keyring
apt update && apt upgrade -y
Nano change de nid:
Code : Tout sélectionner
# nano
-bash: /usr/bin/nano: Aucun fichier ou dossier de ce type
# /bin/nano
Code : Tout sélectionner
Des erreurs ont été rencontrées pendant l'exécution :
stunnel4
# /bin/nano /etc/default/stunnel4
...
ENABLED=0
5) Petit état des lieux:
Code : Tout sélectionner
php -v
PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies
6) J'ai tenté un update de ispconfig à ce niveau, inutile cat trop tôt.
Code : Tout sélectionner
# ispconfig_update.sh
Code : Tout sélectionner
cd /tmp && wget http://www.ispconfig.org/downloads/ISPConfig-3.1.5.tar.gz && tar xfz ISPConfig-3.1.5.tar.gz
cd ispconfig3_install/install && php -q update.php
php5 est toujours ACTIF. et apache ne tourne pas avec php7
Code : Tout sélectionner
# ls /etc/php5/
apache2 cgi cli fpm mods-available
Code : Tout sélectionner
# ls /etc/php/7.0/
cli mods-available
Code : Tout sélectionner
apt update && apt dist-upgrade
Code : Tout sélectionner
Les paquets suivants seront ENLEVÉS :
apache2-mpm-prefork apache2-mpm-worker apache2-suexec apache2.2-common coinor-libcoinmp1 coinor-libcoinutils3 coinor-libosi1
fonts-droid libasprintf0c2 libavfilter5 libboost-date-time1.55.0 libclucene-contribs1 libclucene-core1 libcmis-0.4-4 libcwidget3
libgltf-0.0-0 libjpeg62-turbo-dbg libkadm5clnt-mit9 libkadm5srv-mit9 libkdb5-7 libkyotocabinet16 libmagickcore-6.q16-2
libmagickcore-6.q16-2-extra libmagickwand-6.q16-2 libmailutils4 libopencv-core2.4 libopencv-imgproc2.4 libpcrecpp0 libperl5.20
libpng12-dev libpython3.4 libpython3.4-minimal libpython3.4-stdlib libsigc++-2.0-0c2a libsnappy1 mysql-client-5.5 mysql-server-5.5
mysql-server-core-5.5 node-gyp nodejs-dev npm perl-modules php5-imagick python-chardet-whl python-colorama-whl python-distlib-whl
python-html5lib-whl python-requests-whl python-setuptools-whl python-six-whl python-urllib3-whl python3.4 python3.4-minimal
Code : Tout sélectionner
Les NOUVEAUX paquets suivants seront installés :
coinor-libcoinmp1v5 coinor-libcoinutils3v5 coinor-libosi1v5 default-mysql-client default-mysql-server dirmngr fonts-droid-fallback
fonts-noto-mono g++-6 galera-3 gcc-6 gnupg-l10n icu-devtools imagemagick-6-common libann0 libapache2-mod-php libapache2-mod-php7.0
libapt-inst2.0 libapt-pkg5.0 libasan3 libasprintf0v5 libbind9-140 libboost-date-time1.62.0 libboost-filesystem1.62.0
libboost-iostreams1.62.0 libboost-system1.62.0 libcc1-0 libcgi-fast-perl libcgi-pm-perl libclucene-contribs1v5 libclucene-core1v5
libcmis-0.5-5v5 libcwidget3v5 libdns162 libfcgi-bin libfcgi-perl libffms2-4 libgcc-6-dev libgltf-0.0-0v5 libgmime-2.6-0
libhunspell-1.4-0 libicu-dev libicu57 libilmbase12 libirs141 libisccfg140 libjemalloc1 libjxr-tools libjxr0 libkadm5clnt-mit11
libkadm5srv-mit11 libkdb5-8 libkyotocabinet16v5 libllvm3.9 libmagickcore-6.q16-3 libmagickcore-6.q16-3-extra libmagickwand-6.q16-3
libmailutils5 libmariadbclient18 libmpg123-0 libmpx2 libnotmuch4 libopencv-core2.4v5 libopencv-imgproc2.4v5 libopenexr22
libopenmpt0 liborcus-0.11-0 libpcrecpp0v5 libperl5.24 libpgm-5.2-0 libpng-dev libpng-tools libpoppler64 libsigc++-2.0-0v5
libsnappy1v5 libsodium18 libstdc++-6-dev libvdpau-va-gl1 libvorbisfile3 libwps-0.4-4 libxapian30 libzmq5 mariadb-client-10.1
mariadb-client-core-10.1 mariadb-common mariadb-server-10.1 mariadb-server-core-10.1 mesa-vdpau-drivers passenger perl-modules-5.24
perl-openssl-defaults php php-intl php7.0 php7.0-intl postfix-sqlite python3-apt python3-cffi-backend python3-cryptography
python3-pyasn1 python3-systemd socat vdpau-driver-all xxd
J'ai rencontré un problème avec fail2ban (que je n'ai pas encore réglé:
Code : Tout sélectionner
Fichier de configuration « /etc/fail2ban/jail.conf »
==> Modifié (par vous ou par un script) depuis l'installation.
==> Le distributeur du paquet a fourni une version mise à jour.
Que voulez-vous faire ? Vos options sont les suivantes :
Y ou I : installer la version du responsable du paquet
N ou O : garder votre version actuellement installée
D : afficher les différences entre les versions
Z : suspendre ce processus pour examiner la situation
L'action par défaut garde votre version actuelle.
*** jail.conf (Y/I/N/O/D/Z) [défaut=N] ?
Installation de la nouvelle version du fichier de configuration /etc/init.d/fail2ban ...
Created symlink /etc/systemd/system/multi-user.target.wants/fail2ban.service → /lib/systemd/system/fail2ban.service.
Job for fail2ban.service failed because the control process exited with error code.
See "systemctl status fail2ban.service" and "journalctl -xe" for details.
invoke-rc.d: initscript fail2ban, action "start" failed.
● fail2ban.service - Fail2Ban Service
Loaded: loaded (/lib/systemd/system/fail2ban.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: exit-code) since Sun 2017-07-02 08:40:04 UTC; 11ms ago
Docs: man:fail2ban(1)
Process: 5137 ExecStart=/usr/bin/fail2ban-client -x start (code=exited, status=255)
juil. 02 08:40:04 master.emediaplace.com systemd[1]: fail2ban.service: Unit entered failed state.
juil. 02 08:40:04 master.emediaplace.com systemd[1]: fail2ban.service: Failed with result 'exit-code'.
dpkg: erreur de traitement du paquet fail2ban (--configure) :
le sous-processus script post-installation installé a retourné une erreur de sortie d'état 1
N'acceptez pas la nouvelle configuration du fichier apache2.conf.
Si par inadvertance vous l'acceptez ispConfig et vos vhost ne seront plus accessible (La nouvelle configuration par défaut de Apache2 ne prend plus en compte que les fichiers qui terminent en .conf (C'est donc mort pour vos fichiers .vhost):
Code : Tout sélectionner
Fichier de configuration « /etc/apache2/apache2.conf »
...
*** apache2.conf (Y/I/N/O/D/Z) [défaut=N] ? N
9) A ce niveau j'ai voulu ré-configurer ispConfig car je n'avais plus accès à aucuns services web (Serveur Web, Webmail, Interface Ispconfig, etc.)...
Code : Tout sélectionner
# cd /tmp && wget http://www.ispconfig.org/downloads/ISPConfig-3.1.5.tar.gz && tar xfz ISPConfig-3.1.5.tar.gz && cd ispconfig3_install/install && php -q update.php
Code : Tout sélectionner
Checking ISPConfig database .. OK
Wrong SQL-mode. You should use NO_ENGINE_SUBSTITUTION. Add
sql-mode="NO_ENGINE_SUBSTITUTION"
to the mysqld-section in your mysql-config on this server and restart mysqld afterwards
Code : Tout sélectionner
# nano /etc/mysql/mariadb.conf.d/50-server.cnf
...
[mysqld]
...
#bind-address = 127.0.0.1
sql-mode="NO_ENGINE_SUBSTITUTION"...
# service mysql restart
┌─master.emediaplace.com - 09:29:49
└─root@[/tmp/ispconfig3_install/install]# service mysql status
● mariadb.service - MariaDB database server
...
10) Modifier la façon dont php-fpm écoute:
Code : Tout sélectionner
nano /etc/php/7.0/fpm/pool.d/www.conf
...
;listen = /run/php/php7.0-fpm.sock
listen = 127.0.0.1:9000
Code : Tout sélectionner
# /etc/init.d/php7.0-fpm restart
# netstat -laputen | grep fpm
tcp 0 0 127.0.0.1:8998 0.0.0.0:* LISTEN 0 2775249 21650/php-fpm: mast
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 0 2774238 21674/php-fpm: mast
Il faut installer les modules php7 manquants:
Code : Tout sélectionner
# apt install php7.0-cgi php7.0-fpm php-apcu php-cgi php-cli php-curl php-geoip php-imap php-memcache php-memcached php-mysqlnd php-xmlrpc php-xsl
Code : Tout sélectionner
PHP Settings
Apache php.ini path: /etc/php5/apache2/php.ini
CGI php.ini path: /etc/php5/cgi/php.ini
PHP-FPM init script: php5-fpm
PHP-FPM php.ini path: /etc/php5/fpm/php.ini
PHP-FPM pool directory: /etc/php5/fpm/pool.d
PHP-FPM start port: 9010
PHP-FPM socket directory: /var/lib/php5-fpm
PHP open_basedir: [website_path]/web:[website_path]/private:[website_path]/tmp:/var/www/[website_domain]/web:/srv/www/[website_domain]/web:/usr/share/php5:/usr/share/php:/tmp:/usr/share/phpmyadmin:/etc/phpmyadmin:/var/lib/phpmyadmin
Check php.ini every X minutes for changes: 1 (0 = no check)
Default PHP Handler Disabled
FAST CGI
FastCGI starter path: /var/www/php-fcgi-scripts/[system_user]/
FastCGI starter script: .php-fcgi-starter
FastCGI Alias: /php/
FastCGI php.ini Path: /etc/php5/cgi/
FastCGI Children: 8
FastCGI max. Requests: 5000
FastCGI Bin: /usr/bin/php-cgi
FastCGI config syntax: Old (apache 2.0)
Code : Tout sélectionner
PHP Settings
Apache php.ini path /etc/php/7.0/apache2/php.ini
CGI php.ini path /etc/php/7.0/cgi/php.ini
PHP-FPM init script php7.0-fpm
PHP-FPM php.ini path /etc/php/7.0/fpm/php.ini
PHP-FPM pool directory /etc/php/7.0/fpm/pool.d
PHP-FPM start port 9010
PHP-FPM socket directory /var/lib/php7.0-fpm
PHP open_basedir Laissez tel quel
Check php.ini every X minutes for changes 1
Default PHP Handler Disabled
FAST CGI
FastCGI starter path /var/www/php-fcgi-scripts/[system_user]/
FastCGI starter script php-fcgi-starter
FastCGI Alias /php/
FastCGI php.ini Path /etc/php/7.0/cgi/
FastCGI Children 8
FastCGI max Requests : 5000
FastCGI Bin /usr/bin/php-cgi
FastCGI config syntax New (Apache 2.2)
Par acquis de conscience j'ai créé le répertoire qui n'existait pas:
Code : Tout sélectionner
# mkdir /var/lib/php7.0-fpm

Voilà ou j'en suis...
Je n'ai pas tout réglé mais le serveur tourne et les différents sites sont accessibles.
Je savais que ce serait galère...
