Comment activer le mode UserDir sous Apache

Rédigé par chris - - Aucun commentaire
Le mode UserDir est une fonctionnalité bien pratique car elle permet de donner la possibilité pour chaque utilisateur de placer ses sources dans un répertoire public_html pour développer un site web et de tester sur l'adresse
http://localhost/~user

Voici un tuto valable pour Ubuntu 16.04 pour les autres versions cela ne devrait pas être trés différent.

1 : Avoir un serveur php qui tourne en local. Plus de détail sur cela dans l'articleInstallation d'un serveur php

2 : Activer le mode userdir avec la commande suivante

sudo a2enmod userdir

3 : Modifier le fichier de configuration de php
/etc/apache2/mods-available/php7.0.conf (pour php 5 il doit avoir un autre fichier pour cela)

Commenter les lignes vers la fin du fichier comme l'exemple ci-dessous


# Running PHP scripts in user directories is disabled by default
#
# To re-enable PHP in user directories comment the following lines
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
# prevents .htaccess files from disabling it.
##<IfModule mod_userdir.c>
##    <Directory /home/*/public_html>
##        php_admin_flag engine Off
##    </Directory>
##</IfModule>
4 : Relancer apache
sudo service apache2 restart
Voilà Si vous mettez un fichier php avec par exemple le code suivant
<?php
   phpinfo();
?>

Dans un répertoire public_html de votre home, vous pouvez tester facilement si ça marche.

Un grand merci à 1f0r de m'avoir aidé.

Installation d'un serveur php sur Ubuntu 16.04

Rédigé par chris - - 1 commentaire
Une mise à jour de Ubuntu 14.04 vers 16.04 s'est bien passée sauf que le serveur php ne fonctionne pas comme avant. Voici une procédure pour tout réinstaller depuis le début.
Donc la première étape a été de tout désinstaller les paquet apache php et mysql.

Puis on lance la ligne de commande
sudo apt-get install apache2 php mysql-server libapache2-mod-php php-mysql
A ce stage on test avec un navigateur avec l'adresse localhost
Maintenant pour tester php on va faire un petit fichier texte avec ce code

<?php
   phpinfo();
?>
on va enregistrer dans le répertoire /var/www/html avec le nom phpinfo.php
et on lance un navigateur
http://localhost/phpinfo.php
On devrait voir l'écran phpinfo donnant des information sur la verison php si  c'est le cas tout va bien.
 
Une petite configuration pour permettre à un utilisateur de mettre les sources dans son propre répertoire
sudo a2enmod userdir
sudo service apache2 restart
Quand on va sur l'adresse http://localhost/~user
On voit bien les fichiers présents dans le répertoire public_html mais le fichier phpinfo.php affiche une page blanche.

Conclusion, il doit avoir un problème avec le module apache userdir et php. Si quelqu'un a une solution je suis preneur d'une piste. L'idée était de mettre ses fichiers php dans le home et non dans /var/www/public_html

Cela fonctionnait trés bien jusqu'à présent. On va essayer de faire un serveur virtuel.

Finalement je m'en suis sortis avec un lien symbolique

cd /var/www/public_html
sudo ln -s /home/user/public_html user


et en faisant localhost/user j'arrive bien à avoir les sources php qui s'executent.

Aprés quelques temps j'ai fini par trouver la solution. Elle est décrite dans l'article suivant Comment activer le mode userdir
Fil RSS des articles de ce mot clé