web-dev-qa-db-fra.com

sudo a2enmod php5.6, php -v montre toujours un conflit php 7.01

J'essaie de changer de version php, j'obtiens la réponse suivante. J'ai essayé de démonter mpm_prefork et mpm_worker toujours pas de joie, des idées s'il vous plaît.

sur Ubuntu 16.04

Sudo a2enmod php5.6

 Considering dependency mpm_prefork for php5.6:
 Considering conflict mpm_event for mpm_prefork:
 Considering conflict mpm_worker for mpm_prefork:
 Enabling module mpm_prefork.
 Considering conflict php5 for php5.6:
 Enabling module php5.6.
 To activate the new configuration, you need to run:
 service Apache2 restart
14
GAV

Vos commandes semblent correctes. Avez-vous redémarré Apache avant de tester?

Sudo service Apache2 restart

Le PHP module php5.6 fabriqué par Ondřej Surý ne peut être activé que par:

Sudo a2dismod php7.0
Sudo a2dismod php7.1
Sudo a2dismod php7.2
Sudo a2dismod php7.3
Sudo a2enmod php5.6
Sudo update-alternatives --set php /usr/bin/php5.6
Sudo service Apache2 restart

J'ai constaté que cette configuration n'est compatible avec aucun autre module MPM que PREFORK. Vous devez vous assurer de désactiver TOUS les autres modules MPM avant d'activer le mod php5.6.

Si le mod ne le permet pas, vous devrez peut-être essayer de désactiver les autres MPM.

Sudo a2dismod mpm_prefork
Sudo a2dismod mpm_worker
Sudo a2dismod mpm_event

Puis essayez à nouveau d'activer le mod, car il devrait activer automatiquement le MPM correct.

$ Sudo a2enmod php5.6
Considering dependency mpm_prefork for php5.6:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php5.6:
Enabling module php5.6.
To activate the new configuration, you need to run:
  service Apache2 restart

Pour votre information, j'aime bien mettre ces commandes dans mes ".bash_aliases", donc je les ai toujours à portée de main pour le travail de DEV.

# Aliases - PHP
alias php.info='php -i'
alias php5.6='Sudo a2dismod php7.0 && Sudo a2dismod php7.1 && Sudo a2dismod php7.2 && Sudo a2dismod php7.3 && Sudo a2enmod php5.6 && Sudo update-alternatives --set php /usr/bin/php5.6 && Sudo service Apache2 restart'
alias php7.0='Sudo a2dismod php5.6 && Sudo a2dismod php7.1 && Sudo a2dismod php7.2 && Sudo a2dismod php7.3 && Sudo a2enmod php7.0 && Sudo update-alternatives --set php /usr/bin/php7.0 && Sudo service Apache2 restart'
alias php7.1='Sudo a2dismod php5.6 && Sudo a2dismod php7.0 && Sudo a2dismod php7.2 && Sudo a2dismod php7.3 && Sudo a2enmod php7.1 && Sudo update-alternatives --set php /usr/bin/php7.1 && Sudo service Apache2 restart'
alias php7.2='Sudo a2dismod php5.6 && Sudo a2dismod php7.0 && Sudo a2dismod php7.1 && Sudo a2dismod php7.3 && Sudo a2enmod php7.2 && Sudo update-alternatives --set php /usr/bin/php7.2 && Sudo service Apache2 restart'
alias php7.3='Sudo a2dismod php5.6 && Sudo a2dismod php7.0 && Sudo a2dismod php7.1 && Sudo a2dismod php7.2 && Sudo a2enmod php7.3 && Sudo update-alternatives --set php /usr/bin/php7.3 && Sudo service Apache2 restart'

Gist: https://Gist.github.com/djravine/376e81a018ba2b980750a5578deb3935

32
Adan Rehtla

php -v (valeur par défaut PHP version)

De PHP 7.0 à PHP 5.6: =

Sudo a2dismod php7.0

Sudo a2enmod php5.6

Sudo update-alternatives --set php /usr/bin/php5.6

Sudo service Apache2 restart

De PHP 5.6 à PHP 7.0: =

Sudo a2dismod php5.6

Sudo a2enmod php7.0

Sudo update-alternatives --set php /usr/bin/php7.0

Sudo service Apache2 restart
13
Matias

Pour configurer php7 afin qu'il fonctionne avec votre serveur, vous devez procéder à certaines configurations: 1. Assurez-vous de supprimer toute trace de php/php5. Ouvrez un terminal et:

cd /etc/Apache2/mods-enabled
ls -la

La sortie ne doit contenir aucun php5.conf ou php5.load, mais si c'est le cas, procédez comme suit:

# this is the proper way of disabling modules
Sudo a2dismod php5

# run this only if the above command didn't remove the php5 sym-links
Sudo rm php5.load
Sudo rm php5.con

Ajoutez maintenant les fichiers php7.0.conf et php7.0.load:

# this is the proper way of enabling modules
Sudo a2enmod php7.0

# run this only if the above command didn't create the php7.0 sym-links
Sudo ln -s php7.0.conf ../mods-available/php7.0.conf
Sudo ln -s php7.0.load ../mods-available/php7.0.load

La sortie de ls -la php * devrait ressembler à ceci:

lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.conf -> ../mods-available/php7.0.conf
lrwxrwxrwx 1 root root 29 Apr 15 03:55 php7.0.load -> ../mods-available/php7.0.load

Après avoir traité les modules, nous arrivons maintenant au répertoire/etc/Apache2/conf-enabled. Supprimez toutes les traces de php/php5 ici aussi par Sudo rm

Ensuite, si nécessaire, faites:

# the proper way of enabling configs
Sudo a2enconf php7.0-cgi
Sudo a2enconf php7.0-fpm

# do those commands only if the above didn't work out
Sudo ln -s php7.0-cgi.conf ../conf-available/php7.0-cgi.conf
Sudo ln -s php7.0-fpm.conf ../conf-available/php7.0-fpm.conf

La sortie de ls -la php * devrait ressembler à ceci:

lrwxrwxrwx 1 root root 33 Apr 21 17:00 php7.0-cgi.conf -> ../conf-available/php7.0-cgi.conf
lrwxrwxrwx 1 root root 33 Apr 21 17:01 php7.0-fpm.conf -> ../conf-available/php7.0

Et redémarrez Apache.

Je viens de résoudre en suivant ces étapes.

5
Sufiyan Malek