Impossible d'afficher le php

Bonjour c’est encore moi,

Avant toute chose, je voudrais dire qu’il est très difficile de s’y retrouver dans la jungle des documentations Linux. Mon soucis étant d’avoir un lamp performant et sécurisé, j’ai donc choisi Debian ET cherché un tutoriel adéquat. J’ai pensé trouver la perle rare sur cette page : forge.bearstech.com/trac/wiki/DebianLampLenny
Cependant j’éprouve quelques difficultés. Je pense que l’auteur passe certains détails importants pour un newbie comme moi. Je risque donc de venir vous déranger quelque temps avant d’arriver à mes fins. :blush:

Le problème qui me préoccupe pour l’instant est que les fichiers .php ne sont pas interprétés : le navigateur propose de les télécharger.
Plusieurs solutions s’offrent à moi :

  1. Installer libapache2-mod-php5 et activer le module avec a2enmod php5
  2. Editer le fichier /etc/apache2/apache2.conf et rajouter les lignes :

AddType text/html .php .phps AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

Quelle est la solution la plus propre ? N’y a-t-il pas mieux ?

Si vous avez des conseils ou des des corrections à apporter au tutoriel que je suis, je vous en serai reconnaissant. Si vous avez d’autres liens pour parfaire mon installation, je suis également preneur. :smt002


Le jeu des dépendances devrait t'installer le nécessaire pour un LAMP complet.
Fais une recherche sur ce forum, c'est un sujet aborder régulièrement  :laughing: 


Si ce n'est que pour php (module)
[code]aptitude install libapache2-mod-php5[/code]
++
Cyrille

Le jeu des dépendances devrait t’installer le nécessaire pour un LAMP complet.
Fais une recherche sur ce forum, c’est un sujet aborder régulièrement :laughing:

Si ce n’est que pour php (module)

++
Cyrille

Hello,

je confirme (en tant qu’employé de Bearstech :slightly_smiling:) que aptitude install libapache2-mod-php5 (dans le cas de mod_php) devrait faire l’affaire pour activer PHP sur tes sites web. Le fichier de configuration du module (dans /etc/apache2/mods-available/php5.conf contient par défaut les directives disant à apache de passer les fichiers .php à l’interpréteur php.

Si tu rencontres toujours des problèmes, il y a peut-être autre chose qui bloque (ou alors tu n’es pas en mod_php).

Bonsoir,

En fait lorsque j’ai écrit :

[quote=“jpascal”]1) Installer libapache2-mod-php5 et activer le module avec a2enmod php5[/quote]c’était suite à une recherche sur le net.

Or j’avais bien installé ce paquet puisque j’ai suivi le tuto.
Mais je pense avoir fait une connerie en l’installant avant de faire la mise à jour. :blush:

  1. install libapache2-mod-php5
  2. aptitude safe-update (j’y ai pensé après :blush:)
  3. aptitude safe-upgrade
  4. aptitude install apache2-mpm-worker libapache2-mod-fcgid

    Au final en retapant install libapache2-mod-php5, j’ai obtenu :

machine:/home/toto/sql# aptitude install libapache2-mod-php5 Reading package lists... Done Building dependency tree Reading state information... Done Reading extended state information Initializing package states... Done Reading task descriptions... Done The following NEW packages will be installed: apache2-mpm-prefork{a} libapache2-mod-php5 The following packages will be REMOVED: apache2-mpm-worker{a} 0 packages upgraded, 2 newly installed, 1 to remove and 0 not upgraded. Need to get 2722kB of archives. After unpacking 5554kB will be used. Do you want to continue? [Y/n/?] Y Writing extended state information... Done Get:1 http://mirrors.gandi.net lenny/main apache2-mpm-prefork 2.2.9-10+lenny6 [237kB] Get:2 http://security.debian.org lenny/updates/main libapache2-mod-php5 5.2.6.dfsg.1-1+lenny6 [2484kB] Fetched 2722kB in 0s (5024kB/s) (Reading database ... 17303 files and directories currently installed.) Removing apache2-mpm-worker ... Stopping web server: apache2 ... waiting .. Selecting previously deselected package apache2-mpm-prefork. (Reading database ... 17294 files and directories currently installed.) Unpacking apache2-mpm-prefork (from .../apache2-mpm-prefork_2.2.9-10+lenny6_i386.deb) ... Selecting previously deselected package libapache2-mod-php5. Unpacking libapache2-mod-php5 (from .../libapache2-mod-php5_5.2.6.dfsg.1-1+lenny6_i386.deb) ... Setting up apache2-mpm-prefork (2.2.9-10+lenny6) ... Starting web server: apache2. Setting up libapache2-mod-php5 (5.2.6.dfsg.1-1+lenny6) ... Replacing config file /etc/php5/apache2/php.ini with new version Reloading web server config: apache2. Reading package lists... Done Building dependency tree Reading state information... Done Reading extended state information Initializing package states... Done Writing extended state information... Done Reading task descriptions... Done

C’était donc mieux mais pas encore ça. Pour afficher mes sites j’ai dû éditer le fichier /etc/apache2/ports.conf et activer la ligne :

à la place de

Le fameux

n’est pas pour moi apparemment.

Il me restait un autre soucis. Lorsque j’affichais mon_ip dans mon navigateur, j’obtenais mon premier site au lieu de /var/www
J’imagine que ça venait du fait que le fichier sites-available/default que j’avais remplacé ne contenait plus de vhost. Donc le ls sites-enabled/000-default n’était pas pris en compte comme site par défaut mais plutôt le fichier d’après correspondant à mon premier site. Si vous n’avez pas compris je peux la refaire. :smt005

J’ai donc créé un site a contenant :

[code] 2009-02-19 Debian LAMP Howto

http://forge.bearstech.com/trac/wiki/DebianLampLenny

This is a sample vhost configuration file. Install as

/etc/apache2/sites-available/.

Canonical host

<VirtualHost *>
DocumentRoot /var/www
<Directory /var/www>
# To exec .php scripts via FastCGI, uncomment those 3 lines:
#Options +ExecCGI
#AddHandler fcgid-script .php
#FCGIWrapper /usr/local/bin/php5-fastcgi-wrapper .php

    # Acceptable overrides:
    # - FileInfo (.htacces-based rewrite rules)
    # - AuthConfig (.htaccess-based basic auth)
    AllowOverride FileInfo AuthConfig
</Directory>

# Compress most static files
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/x-shockwave-flash
# Cope with proxies
Header append Vary User-Agent env=!dont-vary
# Cope with several bugs in IE6
BrowserMatch "\bMSIE 6" !no-gzip !gzip-only-text/html

ErrorLog  /var/log/apache2/error.log
CustomLog /var/log/apache2/access.log combined

[/code]
Est-ce une bonne idée ?

@Cyrilleb : merci pour ta réponse.
@lukhas : Tu peux dire merci à tes collègues pour le tuto, même si je n’ai pas tout compris. :unamused:

En fait, dans /etc/apache2/ports.conf, on commente la ligne NameVirtualHost parce qu’on le déclare dans le vhost par défaut en cas de serveur mutualisé, et dans le vhost “canonique” en cas de serveur dédié. Mais il faut bien que cette directive apparaisse quelque part quand même :slightly_smiling:

Si tu héberges plusieurs sites, elle sera très bien à sa place dans le vhost par défaut. D’ailleurs, quand tu parles de “premier site”, qu’entends-tu par là ? Le vhost par défaut devrait être le “premier site”, même s’il ne contient pas grand chose.

Ton vhost a ressemble vachement au vhost par défaut je trouve, tu devrais pouvoir fusionner les deux, non ?

Bonjour lukhas,

Je suis désolé mais j’ai dû mal à comprendre. Reprenons au début. D’après le tutoriel que je suis, je dois avoir ces fichiers :

etc/apache2/ports.conf

[code]# If you just change the port or add more ports here, you will likely also

have to change the VirtualHost statement in

/etc/apache2/sites-enabled/000-default

This is also true if you have upgraded from before 2.2.9-3 (i.e. from

Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and

README.Debian.gz

#NameVirtualHost *:80
Listen 80

# SSL name based virtual hosts are not yet supported, therefore no # NameVirtualHost statement here Listen 443 [/code]

etc/apache2/sites-available/default

[code]# 2009-02-19 Debian LAMP Howto

http://forge.bearstech.com/trac/wiki/DebianLampLenny

This is a typical global Apache conf customisation. Install as

/etc/apache2/sites-available/default. There is NO vhost here.

ServerAdmin webmaster@sample.com
ServerSignature On
ServerTokens Minor

LogLevel warn

Options -Indexes +FollowSymLinks AllowOverride None

<DirectoryMatch /.(svn|cvs|git)>
Order allow,deny
Deny from all
[/code]

Je crée également des fichiers de type etc/apache2/sites-available/site1, site2, etc…

[code]# 2009-02-19 Debian LAMP Howto

http://forge.bearstech.com/trac/wiki/DebianLampLenny

This is a sample vhost configuration file. Install as

/etc/apache2/sites-available/.

Redirects (to canonical host)

<VirtualHost *>
ServerName sample.com
ServerAlias sample2.com www.sample2.com

Redirect / http://www.sample.com/

Canonical host

<VirtualHost *>
ServerName www.sample.com

DocumentRoot /var/www/www.sample.com/root
<Directory   /var/www/www.sample.com/root>
    # To exec .php scripts via FastCGI, uncomment those 3 lines:
    #Options +ExecCGI
    #AddHandler fcgid-script .php
    #FCGIWrapper /usr/local/bin/php5-fastcgi-wrapper .php

    # Acceptable overrides:
    # - FileInfo (.htacces-based rewrite rules)
    # - AuthConfig (.htaccess-based basic auth)
    AllowOverride FileInfo AuthConfig
</Directory>

# Map some private area and have some mandatory auth
Alias /private /var/www/www.sample.com/private
<Location /private>
    AuthName     "Private Area"
    AuthType     Basic

    # Plain user/password
    AuthUserFile /var/www/www.sample.com/private/.htpasswd
    require valid-user

    # Adress-based
    Order Deny,Allow
    Deny from all
    Allow from 12.21.34.67
    Allow from 33.44.55.0/24
    Allow from 66.77.99.96/255.255.255.224
    Allow from home.myname.com
    Allow from .trustee.com

    # The following means that "valid-user" OR "allowed <ip>" is okay
    Satisfy any
</Location>

# Compress most static files
AddOutputFilterByType DEFLATE text/html text/css application/x-javascript application/x-shockwave-flash
# Cope with proxies
Header append Vary User-Agent env=!dont-vary
# Cope with several bugs in IE6
BrowserMatch "\bMSIE 6" !no-gzip !gzip-only-text/html

ErrorLog  /var/log/apache2/www.sample.com/error.log
CustomLog /var/log/apache2/www.sample.com/access.log combined

[/code]

etc/apache2/sites-enabled/000-default pointe sur etc/apache2/sites-available/default
etc/apache2/sites-enabled/site1 pointe sur etc/apache2/sites-available/site1
etc/apache2/sites-enabled/site2 pointe sur etc/apache2/sites-available/site2
etc…

Problème : Lorsque je tape mon_ip, il m’affiche le site défini dans etc/apache2/sites-available/site1
Or je souhaite voir s’afficher le contenu de /var/www.
Faut-il donc que je crée un vhost qui définit le DocumentRoot à /var/www, et qui soit en premier sur la liste (site0 par exemple), où que je modifie le etc/apache2/sites-available/default ?
Où mettre la directive NameVirtualHost si pas dans ports.conf ? Dans etc/apache2/sites-available/default ? Dans etc/apache2/sites-available/site0 ?

Désolé de ne pas comprendre du premier coup. :blush:

P.S. : La veille info ça marche bien car à priori tu t’es enregistré ici grâce/à cause de moi. :mrgreen:

Oups, j’avais oublié ce sujet, désolé.

[quote]Reprenons au début. D’après le tutoriel que je suis, je dois avoir ces fichiers :

etc/apache2/ports.conf

[code]# If you just change the port or add more ports here, you will likely also

have to change the VirtualHost statement in

/etc/apache2/sites-enabled/000-default

This is also true if you have upgraded from before 2.2.9-3 (i.e. from

Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and

README.Debian.gz

#NameVirtualHost *:80
Listen 80

# SSL name based virtual hosts are not yet supported, therefore no # NameVirtualHost statement here Listen 443 [/code] [/quote]

Oui.

Oui. Par contre, c’est mieux si dans sites-enabled, les liens symboliques commencent tous par un numéro. Ça permet d’être sur que le vhost par défaut, avec son “000-” soit bien lu par apache en premier. En général on numérote tous les autres vhosts en “050-”, l’essentiel étant qu’ils soient lus après le vhost par défaut.

Dans ce cas, il te faut un “vrai” vhost par défaut, tu peux rajouter une section VirtualHost dans le vhost “default” mentionné plus haut, en mettant /var/www comme DocumentRoot de ton vhost par défaut. C’est également là que tu pourras mettre le NameVirtualHost.

En passant, si tu as des sites dans /var/www/www.site1.com, site2.net etc., c’est pas l’idéal de mettre aussi des fichiers d’un autre site dans /var/www directement, crée un sous-répertoire default, ça évitera qu’on accède à des fichiers des autres sites depuis le site par défaut en tapant ton_ip/www.site1.com/.

[quote]
P.S. : La veille info ça marche bien car à priori tu t’es enregistré ici grâce/à cause de moi. :mrgreen:[/quote]

N’est-ce pas :slightly_smiling: