Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 14/03/2017, à 12:12

sonador

suphp / phpmyadmin / Apache2

Hello,

Je viens d'installer un nouveau serveur, sous Ubuntu. La machine virtuelle hébergeant plusieurs sites web, nous avons installé suphp pour attribuer à chaque site son propre utlisateur Apache. En deux mots, ça fonctionne très bien. En revanche, je dois installer phpmyadmin. Je l'ai déployé à coup d'apt-get mais c'est une fenêtre qui m'indique "Opening - you have chosen to open:  wich is:application/x-httpd-php(18,5KB from http://(l'adresse IP du site) - What should firefox do with this file ?" La fenêtre me propose alors d'ouvrir le fichier ou de le sauvegarder au lieu de l'afficher sur le navigateur. Et j'obtiens le même résultat si j'attaque le site lui-même.

Après avoir cherché, je dirais que le problème provient de la configuration phpmyadmin/suphp. Il manquerait une directive du style "AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml" quelque part pour permettre à apache d'afficher du php5, ici pour phpmyadmin.

J'ai essayé cette configuration, à la base, pour voir, mais ça n'a pas eu l'air de changer grand-chose. Du reste, je ne peux pas faire n'importe quoi, les sites qui sont installés étant en prod.

Bref j'en suis resté là, sur ma configuration, avant de passer à autre chose :

# cat /etc/apache2/mods-available/suphp.conf
<IfModule mod_suphp.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-suphp
    </FilesMatch>
#       AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
        suPHP_AddHandler application/x-httpd-suphp

    <Directory />
        suPHP_Engine on
    </Directory>

    # By default, disable suPHP for debian packaged web applications as files
    # are owned by root and cannot be executed by suPHP because of min_uid.
    <Directory /usr/share>
        suPHP_Engine off
    </Directory>

# # Use a specific php config file (a dir which contains a php.ini file)
#       suPHP_ConfigPath /etc/php5/cgi/suphp/
# # Tells mod_suphp NOT to handle requests with the type <mime-type>.
#       suPHP_RemoveHandler <mime-type>
</IfModule>

Juste pour précision, j'ai commenté AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml, vu que ça ne marchait pas plus.

Si je pige bien, <Directory /> suPHP_Engine on</Directory> = on applique la configuration suphp sur le répertoire root d'apache (mes sites sont dans /var/www/sites).
Et <Directory /usr/share>suPHP_Engine off </Directory> = on ne l'applique pas pour /usr/share, qui contient le fichier de configuration de phpmyadmin. J'imagine dans ce cas que c'est l'utilisateur par défaut d'apache qui doit gérer ça. Du coup, j'ai ajouté la ligne AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml dans le fichier apache2.conf. Sauf que ce n'est pas bon.

Bref je ne suis pas loin d'avoir trouvé (je pense, du moins), mais je ne connais pas encore assez bien ces applications pour maitriser ma configuration. Et je veux pas trop faire de bidouilles, raison pour laquelle je viens demander un petit coup de main. Sauriez-vous me driver, là-dessus, s'il vous plait ?

Cordialement,
Christian


Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Bonjour,

Merci (pour la correction)

Modération : merci à l'avenir d'utiliser les balises code (explications ici).

Cordialement,
Christian

De rien smile - Je combine les deux messages pour que ta question reste dans les "Sans réponse" ce qui te fera plus de chances d'être lu.

Dernière modification par cqfd93 (Le 14/03/2017, à 13:06)

Hors ligne

#2 Le 15/03/2017, à 09:17

bruno

Re : suphp / phpmyadmin / Apache2

Bonjour,

Ton code PHP n'est pas interprété pour phpmyadmin. Je ne me souviens plus du tout comment suphp fonctionne mais cette partie :

    # By default, disable suPHP for debian packaged web applications as files
    # are owned by root and cannot be executed by suPHP because of min_uid.
    <Directory /usr/share>
        suPHP_Engine off
    </Directory>

indique clairement que suPHP ne peut pas être utilisé pour phpmyadmin. Le code de phpmyadmin devrait donc être interprété par l'interpréteur « classique » d'Apache : mod_php. Je te laisse donc vérifié que mod_php est bien installé et activé, à moins que tu n'utilises autre chose…


[hs] suPHP c'est une méthode du moyen âge wink Au niveau performances ce serait bien plus efficace d'utiliser Apache+PHP-FPM+fcgi avec les pools surtout sur une 16.04…[/hs]

Dernière modification par bruno (Le 15/03/2017, à 09:18)

Hors ligne

#3 Le 15/03/2017, à 11:13

sonador

Re : suphp / phpmyadmin / Apache2

Hello,

Ah!! Mais tu as raison, l'option étant sur off, suphp ne va pas prendre les options que j'aurais pu ajouter... :s... Pas pensé... Je vais tester ça. Pour le reste, ok, merci du tuyau. Et ça ne m'étonne pas, du coup. J'ai repris la configuration du serveur d'origine, pour te dire, qui datait d'un bon moment. Par manque de temps et d'expérience, je n'ai pas tenté de chercher plus récent. Je vais creuser ta soluce, pour ma culture personnelle. Je ne crois pas, en revanche, que j'aurais le "loisir" de modifier ma configuration. Bon... On apprend tous les jours... Merci beaucoup! Je vous tiens au courant!

Cordialement,
Christian

Hors ligne

#4 Le 20/03/2017, à 17:19

sonador

Re : suphp / phpmyadmin / Apache2

Hello,

Bon, pardon pour le délai de réponse. Bon, apamarche. D'abord une précision : pour ma configuration, je me suis plus ou moins basé sur cette page :  https://doc.ubuntu-fr.org/suphp. Ca peut-être utile à savoir... Voilà ce que j'ai, actuellement, dans l'ensemble (je précise bien que je liste seulement ce qui me semble pertinent, pour voir si quelque chose déconne. Pas toute la configuration, donc...). Dans apache2.conf :

Include /etc/phpmyadmin/apache.conf
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml

La dernière ligne ne sert à rien, du coup, vu que surphp prend en charge le php.

Ensuite, dans  /etc/suphp/suphp.conf, j'ai :

[global]
;Path to logfile
logfile=/var/log/suphp/suphp.log

;Path all scripts have to be in
docroot=/

[handlers]
;Handler for php-scripts
application/x-httpd-suphp="php:/usr/bin/php-cgi"

Et dans /etc/apache2/mods-available/suphp.conf :

<IfModule mod_suphp.c>
    <FilesMatch "\.ph(p3?|tml)$">
        SetHandler application/x-httpd-suphp
    </FilesMatch>
        AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
        suPHP_AddHandler application/x-httpd-suphp

    <Directory />
        suPHP_Engine on
    </Directory>

    # By default, disable suPHP for debian packaged web applications as files
    # are owned by root and cannot be executed by suPHP because of min_uid.
    <Directory /usr/share>
        suPHP_Engine on
    </Directory>

Bizarrement, sur la page https://doc.ubuntu-fr.org/suphp, il est indiqué qu'on doit avoir cette configuration :

<Directory /usr/share>
    suPHP_Engine off
</Directory>

Ca ne me semble pas logique, du coup. De plus, je n'ai pas cette ligne, de base (Et là, je ne sais pas si c'est normal) :

application/x-httpd-php="php:/usr/bin/php-cgi"

Et enfin, dans le fichier /etc/apache2/mods-available/php5.conf, le fichier qui me semble encore plus mystérieux que les autres, j'ai ceci pour l'instant (et je pense qu'il n'est pas bon, par rapport à ce que je dois faire) :

<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    # Deny access to raw php sources by default
    # To re-enable it's recommended to enable access to the files
    # only in specific virtual host or directory
    Order Deny,Allow
    Deny from all
</FilesMatch>
# Deny access to files without filename (e.g. '.php')
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>

# 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>

#<Directory /usr/share>
#    <IfModule mod_php5.c>
#      AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
#      suPHP_AddHandler application/x-httpd-suphp
#    </IfModule>
#</Directory>

Et dans le cas, de ce dernier fichier, donc, sur la page https://doc.ubuntu-fr.org/suphp, il est indiqué qu'on doit avoir cette configuration :

 Enfin, dans le fichier /etc/apache2/mods-available/php5.conf, encadrez tout le contenu du fichier (qui doit normalement commencer par <IfModule mod_php5.c> et finit par </IfModule>) par les lignes : <Directory /usr/share> et </Directory>

Sauf que je ne peux pas "tout" encadrer, je pense, vu qu'il n'y a pas que /usr/share qui est concerné par suphp. Raison pour laquelle, j'ai d'abord tenté cette configuration, tout en bas, qui est actuellement commenté (et qui bien sûr ne marche pas) :


#<Directory /usr/share>
#    <IfModule mod_php5.c>
#      AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
#      suPHP_AddHandler application/x-httpd-suphp
#    </IfModule>
#</Directory>

A vrai dire, je suis aussi supposé avoir cette configuration :

 Dans /etc/apache2/mods-available/suphp.conf, remplacez :

AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-php

par :

AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml
suPHP_AddHandler application/x-httpd-suphp

Sauf que bien sûr, ça ne marche pas plus... (Et bien sûr, je restart mon apache à chaque change).

Quelqu'un aurait une idée ? (ps sorry, l'applicatif c'est pas mon truc, d'origine... J'apprends! Mais il y a des trucs qui restent encore pas mal flou, pour moi! Essayez d'être patient smile)

Hors ligne

#5 Le 23/03/2017, à 11:22

sonador

Re : suphp / phpmyadmin / Apache2

Hello everyone smile Personne n'a d'idée sur le sujet ? (ou de question, d'ailleurs parce que ma demande peut être un peu flou)

Hors ligne

#6 Le 23/03/2017, à 17:37

sonador

Re : suphp / phpmyadmin / Apache2

Hello,

Hum... Je vois ça dans mes logs :

root@evx2403105:~# cat /var/log/apache2/error.log | grep phpmyadmin
[Sun Mar 19 13:59:41.947342 2017] [:error] [pid 19014] [client 221.203.113.214:55556] SoftException in Application.cpp:350: UID of script "/usr/share/phpmyadmin/index.php" is smaller than min_uid

Je vérifie ma configuration :

# cat /etc/suphp/suphp.conf; Minimum UID
(...)
min_uid=100

; Minimum GID
min_gid=100

En cherchant sur internet, j'ai trouvé cette page : https://forum.ubuntu-fr.org/viewtopic.php?id=406510. Apparemment, il y a un file vhost à créer en plus ? Je dois dire que je pensais que la ligne suivante suffisait :

# cat /etc/apache2/apache2.conf | grep phpmy
#For phpmyadmin
Include /etc/phpmyadmin/apache.conf

Je commence donc à me dire que je devrais aussi créer un vhost avec phpmyadmin disposant d'un UID suffisant pour suphp en user (ce n'est pas indiqué sur la page https://doc.ubuntu-fr.org/phpmyadmin).

Y aurait-il un connaisseur de phpmyadmin, dans la région, s'il vous plait ? tongue

Hors ligne

#7 Le 23/03/2017, à 17:56

mazarini

Re : suphp / phpmyadmin / Apache2

Je suppose que /usr/share/phpmyadmin/index.php appartient à root qui a l'uid 0 (et le gid 0) comme beaucoup de fichier de /usr

Edit, effectivement :

-rw-r--r-- 1 root root 20036 juil. 23  2016 /usr/share/phpmyadmin/index.php

Dernière modification par mazarini (Le 23/03/2017, à 17:57)


S'il existait une école de la politique, les locaux devraient être édifiés rue de la Santé. Les élèves pourraient s'habituer. (Pierre Dac)

Hors ligne

#8 Le 23/03/2017, à 19:00

sonador

Re : suphp / phpmyadmin / Apache2

Hmmmm... Bon ok on reprends à 0... Il me manque des billes, manifestement. On va vérifier ça point par point.

1. Je dois créer un vhost pour phpmyadmin ? Avec un user phpmyadmin, ayant un UID suffisant, et l'activer, right ? Pour être franc, les sites "officiels" que j'ai croisés ne l'indiquaient pas clairement (je ne suis pas forcément tombé sur les bonne pages!). A priori, je pensais créer un vhosts dans /var/www/html. Je précise que mes autres sites sont dans /var/www/sites. Apache2.conf, lui, est configuré comme suit :

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

2. Sur https://doc.ubuntu-fr.org/phpmyadmin, je vois :

ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin

Ce que je n'ai pas fait. Je comprends que cela permet à Apache d'interpréter le contenu des fichiers phpmyadmin (similaire aux fichiers d'un site, quoi). Bon... On est ok sur le fait que ça fait partie des étapes à suivre ? A mon avis oui, du coup!

3. Dans apache2.conf, de mon côté, j'ai ajouté cette directive :

"Include /etc/phpmyadmin/apache.conf"

(je croyais alors que cela suffirait pour que cela fonctionne... Je suis naïf...).

Sur le site https://doc.ubuntu-fr.org/phpmyadmin, je vois en fait :

ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf

Je comprends que ce file est l'équivalent, spécifiquement pour phpmyadmin, du fichier apache2.conf. Bon, un complément du fichier apache2.conf, disons, pour que les directives de l'application soit pris en charge par Apache2. Vu qu'il y a déjà la directive en include dans mon file apache2.conf, on est ok pour dire qu'il n'y a pas besoin de créer en plus ce symlink, right ?

Et 4. Oui, j'ai la même chose que toi :

/usr/share/phpmyadmin/index.php

Merci pour votre aide! Je commence à capter comment fonctionne l'application (petit à petit).

Une fois que je serai sûr de la configuration phpmyadmin, je reverrai pour suphp. Si la base est pourrie, le reste risque pas de fonctionner, hein ? smile

Bonne soirée!
Christian

Hors ligne

#9 Le 24/03/2017, à 11:07

bruno

Re : suphp / phpmyadmin / Apache2

Bon, je n'ai pas tout suivi en détail, mais pour moi tout ceci est du « bidouillage ». Tu te bases sur des documentations obsolètes qui concernent des version très anciennes d'Ubuntu.

Normalement tu ne devrais pas avoir à modifier les fichiers de configuration fournis avec les paquets Ubuntu : apache2.conf notamment, ni faire des liens symboliques totalement inutiles.

Lorsque tu installes le paquet phpmyadmin un lien symbolique est automatiquement créé de /etc/apache2/conf-available/phpmyadmin.conf vers /etc/phpmyadmin/apache.conf
Il n'y a donc aucun besoin d'ajouter ce fichier à coups d'include

Ce fichier, que je t'invite à examiner, donne accès à phpmyadmin via un alias web de /phpmyadmin vers /usr/share/phpmyadmin (donc toute url du type http://example.com/phpmyadmin).
Il n'y a donc aucun besoin de faire des liens symboliques vers  /usr/share/phpmyadmin.

Concernant suPHP, le fichier de configuration suphp.conf t'indique clairement en commentaire que tu ne peux pas utiliser suphp avec phpmyadmin , ou tout autre application web fournie sous forme de paquet Debian, car les fichiers de ces applications appartiennent à root (uid 0) et que suphp ne pourra pas exécuter des fichiers dont le propriétaire à un UID inférieur à 100.

Dernière modification par bruno (Le 24/03/2017, à 11:09)

Hors ligne

#10 Le 24/03/2017, à 12:24

sonador

Re : suphp / phpmyadmin / Apache2

Bonjour,

Tout d'abord, merci pour ton retour.

Ok, effectivement j'ai un lien /etc/apache2/conf-available/phpmyadmin.conf pointant vers /etc/phpmyadmin/apache.conf... :

# ls -l /etc/apache2/conf-available/
total 28
-rw-r--r-- 1 root root  315 Jan  3  2014 charset.conf
-rw-r--r-- 1 root root  127 Aug 11  2013 javascript-common.conf
-rw-r--r-- 1 root root 3224 Jan  3  2014 localized-error-pages.conf
-rw-r--r-- 1 root root  189 Jan  3  2014 other-vhosts-access-log.conf
-rw-r--r-- 1 root root 1344 Oct  3 13:14 php5-cgi.conf
lrwxrwxrwx 1 root root   28 Feb 24 14:38 phpmyadmin.conf -> ../../phpmyadmin/apache.conf
-rw-r--r-- 1 root root 2190 Jan  3  2014 security.conf
-rw-r--r-- 1 root root  455 Jan  7  2014 serve-cgi-bin.conf

Ensuite, en relisant ton retour et la page https://doc.ubuntu-fr.org/suphp, je lis bien ce passage, effectivement :

 À l'heure où j'écris ces lignes, la version actuelle d'Apache est 2.2 et celle de suPHP et 0.6.3 et ces deux versions sont totalement compatibles l'une avec l'autre. Ces informations ont été mises à jour pour la version 0.7.1.1 de suPHP (pour Ubuntu à partir de la version 10.04), qui cohabite toujours aussi bien avec apache et qui corrige notamment une incompatibilité avec phpMyAdmin.

Il faut savoir que suPHP nécessite d'utiliser php dans sa version CGI. Le mod_php restera néanmoins nécessaire pour exécuter les applications php installées dans le système, c'est-à-dire non lié à un utilisateur, telles que phpMyAdmin, car suPHP interdit par défaut l'exécution de scripts php par un utilisateur avec un uid inférieur à 100 (c'est le cas de l'utilisateur www-data utilisé par apache dans Ubuntu). 

Bon... Je suis sur une version d'Apache 2.4.7 et sur un version 0.7.2 de suphp... Mais je t'avouerai que j'avais plutôt compris que ça devait pouvoir fonctionner, justement, avec la mise à jour... Apparemment pas, d'après ce que je comprends maintenant :s

Dernière modification par sonador (Le 24/03/2017, à 12:53)

Hors ligne

#11 Le 24/03/2017, à 12:54

sonador

Re : suphp / phpmyadmin / Apache2

Re,

Bon, tu me parles de "Apache+PHP-FPM+fcgi avec les pools".

Je ne sais pas si je vais pouvoir l'appliquer, étant donné mon contexte (je n'ai pas le droit de me planter!), mais pour être clair, tu me dis que je devrais plutôt utiliser cette configuration.

On parle bien de celle-là ? :

https://www.karolak.fr/blog/2016/06/24/ … ous-apache

Cordialement,
Christian

Hors ligne

#12 Le 24/03/2017, à 14:24

bruno

Re : suphp / phpmyadmin / Apache2

La doc indique ce que je te disais au début : pour phpmyadmin il suffit d'utiliser mod_php.

Le lien que tu indiques me semble effectivement donner une bonne description d'une utilisation possible avec php5.
L’intérêt d'utiliser cette configuration plutôt que suPHP, outre les meilleures performances, est aussi sa pérennité. Cette configuration pourra être assez facilement adaptée à Ubuntu 16.04 (PHP7) alors que suPHP a disparu de cette version.

Hors ligne

#13 Le 24/03/2017, à 15:45

sonador

Re : suphp / phpmyadmin / Apache2

Re,

Hmmmm, actuellement, j'ai ceci :

# dpkg -l | grep mod-php
ii  libapache2-mod-php5              5.5.9+dfsg-1ubuntu4.20               amd64        server-side, HTML-embedded scripting language (Apache 2 module)

# apachectl -t -D DUMP_MODULES
Loaded Modules:
 ...
 php5_module (shared)
suphp_module (shared)

Bon, le serveur fait actuellement tourner 3 sites. Chaque site a son propre utilisateur Apache. Sans doute aurais-je dû tout de suite envisager ta solution, mais à vrai dire je ne la connaissais pas. J'ai donc repris la configuration du serveur initiale, incluant su_php, pour permettre à Apache d'exploiter les fichiers php de chaque site avec son propre utilisateur. Sachant, bien sûr, que les fichiers de chaque site ont pour propriétaire leur utilisateur apache respectif (ex. Pour toto.fr, par exemple, nous avons un utilsateur toto.fr et des fichiers dont le propriétaire est toto.fr).

Donc je suis coincé. Sauf si je suis passé à côté de ton explication, bien sûr.

Sauf erreur d'intérpretation, si je vire su_php et que modifie la configuration pour que mod_php prenne seule en charge l'intérprétation de php, cela voudra dire : retour à l'utilisateur unique Apache2 (par exemple), n'est-ce pas ? Et dans ce cas, il me faudra changer la totalité des owners/groups sur les fichiers et répertoires des sites pour n'avoir qu'un seul utilisateur apache commun, quel que soit son nom.Right ?

Quand à l'autre solution, je crois qu'il va me falloir l'étudier. Je ne peux pas faire de modification à chaud comme ça. Des petites modif', je peux mais là, c'est un peu plus complexe. hmmm... Remarque j'ai peut-être une idée pour maquetter mes actions sans risquer de tout péter. C'est une vm, après tout...

(En passant, j'ai viré "Include /etc/phpmyadmin/apache.conf" de ma configuration apache)

Hors ligne

#14 Le 24/03/2017, à 16:11

bruno

Re : suphp / phpmyadmin / Apache2

Les deux modules mod-php (php5_module) et suphp étant activés, normalement tes sites devraient fonctionner avec suPHP (avec leurs propres utilisateurs) et phpmyadmin devrait également fonctionner avec mod_php (utilisateur www-data).

Hors ligne

#15 Le 24/03/2017, à 17:37

sonador

Re : suphp / phpmyadmin / Apache2

Aaah! On peut donc utiliser les deux de front... Dans ce cas, il faut que je fasse un roll-back sur la conf de suphp :

 <Directory /usr/share>
        suPHP_Engine off
    </Directory>

Je l'avais mis sur on pour que phpmyadmin soit pris en charge par suphp (je n'avais pas encore réalisé que les deux pouvaient fonctionner ensemble sans problème... Et je pensais alors que ta réponse impliquait que je fasse ce change... ). Je fais ça de suite.

Hors ligne

#16 Le 24/03/2017, à 18:05

sonador

Re : suphp / phpmyadmin / Apache2

Ok bon y a du mieux, en un sens. Je reviens au point de départ, à savoir apache qui me propose de télécharger la page root au lieu de l'afficher.

You have chosen to open: 
Wich is: application/x-httpd-php (18,5kb)
from:http:/(mon IP)
Open with (browse)
Save File

Bon, vu ton retour, je dois donc orienter ma recherche non plus sur suphp/phpmyadmin, mais sur la configuration pure de phpmyadmin avec mod_php. Il doit manquer une config quelque part, pour qu'apache puisse lire la configuration php de phpmyadmin, même avec mods_php...

En tout cas, www-data existe bien, au moins :

# cat /etc/passwd | grep data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

Par contre, tous mes files de config sur phpmyadmin ont root pour owner...

Or :

# grep -R www-data /etc/apache2/
/etc/apache2/envvars:export APACHE_RUN_USER=www-data
/etc/apache2/envvars:export APACHE_RUN_GROUP=www-data

# grep -R APACHE_RUN_USER /etc/apache2/
/etc/apache2/envvars:export APACHE_RUN_USER=www-data
/etc/apache2/apache2.conf:User ${APACHE_RUN_USER}

Il me semble que cela tend à confirmer  ce que tu m'as précédemment indiqué. De base, la configuration suphp, via /etc/apache2/mods-available/suphp.conf prend la configuration des sites en charge, sauf pour le contenu de /usr/share (du fait du engine=off), qui contient phpmyadmin. Et le fichier apache2.conf induit que pour les autres sites, disons pour phpmyadmin, l'utilisateur apache doit être www-data. Sauf qu'en l'état actuel des choses le user apache ne peut pas fonctionner avec phpmyadmin puisqu'il n'a pas de droits sur les fichiers de configuration de l'application. Fichiers php inclus, bien sûr. Du coup, au lieu de les "lire" et de les interpréter, apache me propose de les télécharger.

Correct ?

Merci pour tes éclaircissements, encore. J'avais visiblement compris tes retours à l'envers.

Hors ligne

#17 Le 24/03/2017, à 18:31

bruno

Re : suphp / phpmyadmin / Apache2

Est-ce que mod-php est activé ? Retour :

sudo a2enmod php5

Hors ligne

#18 Le 24/03/2017, à 18:36

sonador

Re : suphp / phpmyadmin / Apache2

Vi, il est actif :

# a2enmod php5
Module php5 already enabled
#

Dernière modification par sonador (Le 24/03/2017, à 18:36)

Hors ligne

#19 Le 24/03/2017, à 19:16

bruno

Re : suphp / phpmyadmin / Apache2

Alors, si tu n'as pas modifié les fichiers de configuration, je ne comprend pas pourquoi cela ne fonctionne pas.

Hors ligne

#20 Le 27/03/2017, à 10:44

sonador

Re : suphp / phpmyadmin / Apache2

Hi,

No sé. Je ne crois pas avoir modifié la configuration phpmyadmin.

Pour l'instant, j'ai ça, dans mon /etc/apache2/conf-available/phpmyadmin.conf :

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
        Options FollowSymLinks
        DirectoryIndex index.php

        <IfModule mod_php5.c>
                AddType application/x-httpd-php .php 

                php_flag magic_quotes_gpc Off
                php_flag track_vars On
                php_flag register_globals Off
                php_admin_flag allow_url_fopen Off
                php_value include_path .
                php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
                php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/javascript/
        </IfModule>

</Directory>

# Authorize for setup
<Directory /usr/share/phpmyadmin/setup>
    <IfModule mod_authn_file.c>
    AuthType Basic
    AuthName "phpMyAdmin Setup"
    AuthUserFile /etc/phpmyadmin/htpasswd.setup
    </IfModule>
    Require valid-user
</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/libraries>
    Order Deny,Allow
    Deny from All
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Order Deny,Allow
    Deny from All
</Directory>

Sinon le phpmyadmin me parait activé :

# locate phpmyadmin.conf
/etc/apache2/conf-available/phpmyadmin.conf
/etc/apache2/conf-enabled/phpmyadmin.conf
/etc/dbconfig-common/phpmyadmin.conf
/var/lib/dpkg/info/phpmyadmin.conffiles
/var/lib/dpkg/info/phpmyadmin.config
/var/lib/ucf/cache/:etc:dbconfig-common:phpmyadmin.conf

Dans les logs d'access.log, j'ai ça :

::1 - - [27/Mar/2017:07:07:15 +0000] "OPTIONS * HTTP/1.0" 200 125 "-" "Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.20 OpenSSL/1.0.1f (internal dummy connection)"
191.96.249.97 - - [27/Mar/2017:07:15:32 +0000] "GET /phpmyadmin/scripts/setup.php HTTP/1.0" 404 491 "-" "-"
::1 - - [27/Mar/2017:07:31:18 +0000] "OPTIONS * HTTP/1.0" 200 125 "-" "Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.20 OpenSSL/1.0.1f (internal dummy connection)"

Côté configuration php5, j'ai ça :

2# cat /etc/apache2/mods-enabled/php5.conf | grep -v "#"
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
    SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
    SetHandler application/x-httpd-php-source
    Order Deny,Allow
    Deny from all
</FilesMatch>
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
    Order Deny,Allow
    Deny from all
</FilesMatch>

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

Mon fichier apache2.conf :

# cat /etc/apache2/apache2.conf | grep -v "#"
Mutex file:${APACHE_LOCK_DIR} default
PidFile ${APACHE_PID_FILE}
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
User ${APACHE_RUN_USER}
Group ${APACHE_RUN_GROUP}
HostnameLookups Off
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf
Include ports.conf
<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>
<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
AccessFileName .htaccess
<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy all
</FilesMatch>
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %O" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
IncludeOptional conf-enabled/*.conf
IncludeOptional sites-enabled/*.conf
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_worker_module>
    StartServers          2
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxClients          150
    MaxRequestsPerChild   0
</IfModule>
<IfModule mpm_event_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadLimit          64
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>
AddType application/x-httpd-php .php .php3 .php4 .php5 .phtml

Après, bon... je peux toujours tenter un :

#apt-get purge phpmyadmin
#apt-get install phpmyadmin

(ou aptitude, quoi, mais bon, peu importe)

Tu vois un autre fichier à vérifier, de ton côté ?

Bonne journée!
Chris

Hors ligne