Problème mise à jour ubuntu 22.04

Bonjour,

après la mise-à-jour vers ubuntu 22.04, http://localhost/dolibarr/ a cessé de fonctionner. J’ai installé php 7.4 puis réinstallé la version 11 de dolibarr (celle que je pense avoir) à partir d’un paquet deb, mais maintenant, lorsque je fais pointer mon navigateur sur http://localhost/dolibarr/, j’ai l’erreur suivante :

Service Unavailable

The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

Apache/2.4.52 (Ubuntu) Server at localhost Port 80

Auriez-vous une idée pour me débloquer ?

Si Apache a été installé avec php-fpm, il fait suivre la requête à un fichier spécial : un socket php
Le socket PHP a peut-être changé de nom, par exemple /var/run/php/php7.4-fpm.sock au lieu de /var/run/php/php7.3-fpm.sock

Il faut vérifier les noms que ça correspond à celui utilisé par php-fpm.

Merci beaucoup pour la réponse. Voilà ce que j’ai:

  1. lilla:~> ll /var/run/php
    totale 8
    -rw-r–r-- 1 root 5 lug 10 14:02 php7.4-fpm.pid
    srw-rw---- 1 www-data 0 lug 10 14:02 php7.4-fpm.sock=
    -rw-r–r-- 1 root 4 lug 10 10:36 php8.1-fpm.pid
    srw-rw---- 1 www-data 0 lug 10 10:36 php8.1-fpm.sock=
    lrwxrwxrwx 1 root 30 lug 10 10:36 php-fpm.sock → /etc/alternatives/php-fpm.sock=

avec :

  1. lilla:~> ll /etc/alternatives/php-fpm.sock
    lrwxrwxrwx 1 root 28 lug 10 14:16 /etc/alternatives/php-fpm.sock → /var/run/php/php7.4-fpm.sock=

les modules actifs sont :

  1. lilla:/etc/alternatives> ls /etc/apache2/mods-enabled/
    access_compat.load@ authz_core.load@ autoindex.load@ env.load@ mime.load@ php7.4.conf@ reqtimeout.conf@ status.conf@
    alias.conf@ authz_host.load@ deflate.conf@ fcgid.conf@ mpm_prefork.conf@ php7.4.load@ reqtimeout.load@ status.load@
    alias.load@ authz_user.load@ deflate.load@ fcgid.load@ mpm_prefork.load@ proxy.conf@ rewrite.load@
    authn_core.load@ auth_basic.load@ dir.conf@ filter.load@ negotiation.conf@ proxy.load@ setenvif.conf@
    authn_file.load@ autoindex.conf@ dir.load@ mime.conf@ negotiation.load@ proxy_fcgi.load@ setenvif.load@
  1. lilla:~> sudo systemctl status php7.4-fpm
    ● php7.4-fpm.service - The PHP 7.4 FastCGI Process Manager
    Loaded: loaded (/lib/systemd/system/php7.4-fpm.service; enabled; vendor preset: enabled)
    Active: active (running) since Sun 2022-07-10 14:02:13 CEST; 25min ago
    Docs: man:php-fpm7.4(8)
    Process: 30508 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/7.4/fpm/pool.d/www.conf 74 (code=exited, status=0/SUCCESS)
    Main PID: 30505 (php-fpm7.4)
    Status: « Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec »
    Tasks: 3 (limit: 18920)
    Memory: 8.6M
    CPU: 168ms
    CGroup: /system.slice/php7.4-fpm.service
    ├─30505 « php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf) » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  »
    ├─30506 « php-fpm: pool www » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  »>
    └─30507 « php-fpm: pool www » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  » «  »>

lug 10 14:02:13 lilla systemd[1]: Starting The PHP 7.4 FastCGI Process Manager…
lug 10 14:02:13 lilla systemd[1]: Started The PHP 7.4 FastCGI Process Manager.

Les pages localhost/info.php et localhost/dolibarr renvoient toujours la même page « Service Unavailable »

La page localhost redirige bien vers la page d’accueil apache d’ubuntu.

Dolibarr est bien activé :

  1. lilla:/etc/apache2/sites-enabled> ll /etc/apache2/sites-enabled/
    lrwxrwxrwx 1 root 35 mar 2 2020 000-default.conf → …/sites-available/000-default.conf
    lrwxrwxrwx 1 root 32 mar 2 2020 dolibarr.conf → …/sites-available/dolibarr.conf

Pour info, les fichiers
/var/log/apache2/dolibarr_access.log
/var/log/apache2/dolibarr_error.log
sont vides.

Il faut regarder le contenu de 000-default.conf et dolibarr.conf

000-default.conf:

<VirtualHost *:80>
	# The ServerName directive sets the request scheme, hostname and port that
	# the server uses to identify itself. This is used when creating
	# redirection URLs. In the context of virtual hosts, the ServerName
	# specifies what hostname must appear in the request's Host: header to
	# match this virtual host. For the default virtual host (this file) this
	# value is not decisive as it is used as a last resort host regardless.
	# However, you must set it for any further virtual host explicitly.
	#ServerName www.example.com

	ServerAdmin webmaster@localhost
	DocumentRoot /var/www/html

	# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
	# error, crit, alert, emerg.
	# It is also possible to configure the loglevel for particular
	# modules, e.g.
	#LogLevel info ssl:warn

	ErrorLog ${APACHE_LOG_DIR}/error.log
	CustomLog ${APACHE_LOG_DIR}/access.log combined

	# For most configuration files from conf-available/, which are
	# enabled or disabled at a global level, it is possible to
	# include a line for only one particular virtual host. For example the
	# following line enables the CGI configuration for this host only
	# after it has been globally disabled with "a2disconf".
	#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

dolibarr.conf:

<VirtualHost *:80>
     ServerAdmin admin@localhost
     DocumentRoot /var/www/html/dolibarr
     ServerName example.com

     <Directory /var/www/html/dolibarr>
          Options +FollowSymlinks
          AllowOverride All
          Require all granted
     </Directory>

     ErrorLog ${APACHE_LOG_DIR}/dolibarr_error.log
     CustomLog ${APACHE_LOG_DIR}/dolibarr_access.log combined

</VirtualHost>

On peut remarquer que le fichier dolibarr.conf sert sans doute à rien vu que ServerName est à example.com et que l’url contient localhost.

Si /var/www/html/dolibarr est un lien symbolique, il faudrait copier la section Directory de dolibarr.conf dans 000-default.conf.

Mais sinon pour l’autre problème, il faut voir comment sont lancés les scripts PHP, je n’utilise que NGINX donc j’essaye de me souvenir pour apache.

Le truc est de savoir si dolibarr était lancé par php-fpm ou un module apache car la suite en dépend.

Est-ce que les fichiers (s’ils existent) de /etc/php/7.3/fpm/pool.d/.conf ont tous été copiés vers /etc/php/7.4/fpm/pool.d/.conf ?

/var/www/html/dolibarr n’est pas un lien symbolique, il contient l’ancienne installation.
Aucune idée si dolibarr est lancé par php-fpm ou un module apache.
Je n’ai pas de répertoire /etc/php/7.3, mais les répertoires /etc/php/7.4 et /etc/php/8.1 contiennent un seul fichier de configuration www.conf avec la même chose (pour ce qui est du non-commenté), hormis la variable listen, qui pointe vers le socket approprié (7.4 ou 8.1)

Je propose de lancer cette commande :

a2enconf php7.4-fpm

pour activer la configuration php-fpm car je ne la vois pas.

Ensuite un fichier /etc/apache2/mods-enabled/php7.4-fpm.conf va apparaitre et il va contenir ce qu’il faut pour connecter le php au socket.

Un grand MERCI ! Votre suggestion m’a poussé à regarder ce qu’il y avait dans /etc/apache2/conf-enabled. La solution était de lancer:

sudo a2disconf php8.0-fpm

(php8.0 n’étant pas installé sur ma machine :crazy_face:)

Et j’ai pu lancer dolibarr de nouveau !

Infiniment MERCI !

1 « J'aime »

Bonjour, après migration vers ubuntu 22.04, quand je tente d’ouvrir Dolibarr, j’ai le message suivnat qui s’affiche sur la page d’acceuil:
Fatal error: Uncaught Error: Class ‹ mysqli › not found in /usr/share/dolibarr/htdocs/core/db/mysqli.class.php:239 Stack trace: #0 /usr/share/dolibarr/htdocs/core/db/mysqli.class.php(93): DoliDBMysqli->connect() #1 /usr/share/dolibarr/htdocs/core/lib/functions.lib.php(126): DoliDBMysqli->__construct() #2 /usr/share/dolibarr/htdocs/master.inc.php(140): getDoliDBInstance() #3 /usr/share/dolibarr/htdocs/main.inc.php(343): require_once(‹ /usr/share/doli… ›) #4 /usr/share/dolibarr/htdocs/index.php(31): require(‹ /usr/share/doli… ›) #5 {main} thrown in /usr/share/dolibarr/htdocs/core/db/mysqli.class.php on line 239

Bonjour,

le paquet php-mysql n’est pas installé.

Bonjour,
merci,
je pense qu’il est installé:

Les modules installés sont pour PHP V8

mais vous utilisez php V7.4 …

ça va pas marcher.

Merci.
J’ai installé php v8,ça ne fonctionne toujours pas.

Bonjour @FanchLV
V11 pas compatible PHP 8
Cordialement
Eric

Bonjour,
merci
Ok , ça ne fonctionne pas avec php 7.4, ni php 8.0, ni php 8.1.
comment dois-je faire ?

Bonjour,

Il faut que vous m’étiez votre serveur « d’équerre » avec PHP 7.4 (car Dolibarr V11 non compatible PHP V8) et toutes les extensions PHP qui vont bien.
Ici, on est sur un forum Dolibarr pas Ubuntu, je vous encourage à aller poser la question la bas.