Je viens de mettre à jour de 14.10 à 16.04 et je ne suis pas sûr de savoir comment configurer PHP 7 dans Apache. J'ai modifié le fichier php7.0.conf pour commenter les dernières lignes, redémarrer apache2 et aucune modification.
Dois-je modifier la configuration de apache2 pour autoriser php?
PHP fonctionne à partir de la ligne de commande, donc je suis sûr que le php est correctement installé.
De plus, j'obtiens une erreur sur phpadmin disant que la chaîne de caractères est manquante.
php
commande) est orthogonale aux autres SAPI de PHP (apache2, FPM, CGI, ...), de sorte que la ligne de commande de travail PHP ne dit rien sur le travail de PHP sur le serveur HTTP.sudo apt-get install php-mbstring
(qui aurait pensé, non?)Réponses:
Comme avant, vous devez installer PHP pour Apache.
Dans le Guide du serveur :
Cette commande installera PHP et le module PHP Apache 2. Configurez simplement Apache comme avant (
sudo a2enmod php7.0
je pense que le module sera activé).Votre
mbstring
problème est similaire - vous devez installer cette extension:Pour les autres modules manquants, des tâches similaires devront également être installées.
la source
sudo a2enmod php7.0
(ou alors déterminé par désactivation et réactivation sur mon ordinateur.) Intéressant, j'ai reçu ce message:Considering conflict php5 for php7.0: Enabling module php7.0.
sudo a2enmod php
ne fonctionnera pas, je l'ai essayé. Cependantsudo a2enmod php7.0
fonctionnera.Pour configurer php7 avec votre serveur, vous devez effectuer certaines configurations:
1. Assurez-vous de supprimer toute trace de
php/php5
Ouvrir un terminal Ctrl+ Alt+ Tet:
La sortie ne doit contenir ni
php5.conf
niphp5.load
, mais si c'est le cas, procédez comme suit:Maintenant, ajoutez le
php7.0.conf
et à laphp7.0.load
place:Le résultat de
ls -la php*
devrait ressembler à ceci:Après avoir traité avec les modules, nous arrivons maintenant au
/etc/apache2/conf-enabled
répertoire. Supprimez toutes les traces de php / php5 ici aussi parsudo rm <name>
Ensuite, si nécessaire, faites:
Le résultat de
ls -la php*
devrait ressembler à ceci:2. Redémarrer Apache2
Avant de redémarrer Apache, assurez-vous de nettoyer Apache,
error.log
puis redémarrez:Maintenant, vérifiez le
error.log
par émissioncat /var/log/apache2/error.log | less
(le passage par moins vous permet de faire défiler facilement vers le haut et vers le bas,q
quitte la sortie).Si vous en avez
error.log
beaucoup (et je parle littéralement de tas ),MIBS not found
procédez comme suit:Le contrôle à nouveau le
error.log
it now ne devrait contenir que 3 lignes:Votre Apache avec php7.0 devrait maintenant être correctement configuré.
la source
a2enmod
eta2dismod
au lieu de bricoler manuellement les liens dansmods-available
/mods-enabled
(de la même manièrea2enconf
eta2disconf
pourconf-{available,enabled}
).a2enmod
,a2dismod
rappelez-vous de l’état des modules dans le registre interne des paquets apache2. Par conséquent, la création / suppression manuelle des liens peut endommager votre système lors de futures mises à niveau, car les scripts de mise à niveau examinent l’état de cette base de données interne.J'ai aussi ce problème.
Cela m'a aidé à supprimer tout PHP et à réinstaller php7.
Tout ce qui était nécessaire était:
php7 sera supprimé, juste après pour réinstaller:
la source
sudo apt-get purge php*
supprimera également votre phpMyAdmin, si vous en avez un.Im mon cas, non seulement le php ne fonctionnait pas, mais phpmyadmin aussi je l'ai fait étape par étape comme ça
Et ensuite:
Dans la dernière ligne, j'ajoute
Include /etc/phpmyadmin/apache.conf
Cela fait face à tous les problèmes
la source
La solution que j'ai trouvée pour résoudre ce problème était le paramètre PHP.INI par défaut pour short_open_tag. Par défaut, cette option est définie sur 'Off'. Mon code PHP a commencé avec
au lieu de
Si activé, short_open_tag (en changeant 'Off' sur 'On' dans mon php.ini) et réinitialise le serveur Apache (
sudo service apache2 restart
) et PHP est revenu vivant.la source
https://wiki.archlinux.org/index.php/Apache_HTTP_Server
la source
Moi aussi, je pouvais exécuter des scripts php avec succès à partir de la ligne de commande sous Ubuntu 16.04, mais dans aucun navigateur. Pour tenter de résoudre le problème, j'ai purgé mes copies existantes de php7.0 et d'apache2. Par la suite, j'ai réinstallé les deux à partir de la ligne de commande, y compris de la bibliothèque php d'apache2. La frustration a suivi lorsque j'ai tenté d'exécuter "a2enmod php7.0", qui m'a informé que le module php7.0 n'existait pas malgré le fait qu'une fois encore j'ai pu exécuter des scripts php à partir de la ligne de commande. L’instinct a commencé. En ouvrant Synaptic, j’ai découvert que lorsque j’ai installé la bibliothèque apache2 php à partir de la ligne de commande, j’installais uniquement libapache2-mod-php7.0, et que j’avais oublié d’installer le "wrapper" libapache2-mod- php, sans quoi l'ancien ne fonctionnerait pas.
la source