# [apache] php5 et mysql

## bosozoku

Bonjour, 

je developpe en php mais je suis obligé d'uploader mes fichiers à chaque fois sur mon hébergeur. J'aimerai pouvoir faire des tests en local. J'avais essayé d'installer apache et php une fois mais ya longtemps et d'après mes souvenirs ça avait foiré...

Bon la je me lance sérieusement, je voudrais installer apache avec php5 et pouvoir utiliser mysql (donc phpmyadmin je suppose).

 J'ai pas trouvé de tutoriel sérieux sur le sujet, quelqu'un aurait des liens à me filer ou carrément me donner la démarche à suivre siouplé ?

----------

## blasserre

```
echo "=dev-php/mod_php-5.X.X" >> /etc/portage/package.keywords

echo "dev-php/mod_php mysql" >> /etc/portage/package.use

emerge mod_php
```

apache et mysql devraient en être des dépendances...

EDIT: ton FAI propose php5 ? c'est qui ?

----------

## bosozoku

Non justement il ne propose pas php5, je travaille en php4 mais quite à installer php et apache autant prendre le 5  :Smile: 

Merci pour ces infos mais il me faudrait un truc plus précis pour la configuration de mysql, phpmyadmin etc. J'y connais rien ! Je sais les utiliser mais les installer et configurer c'est autre chose...

----------

## blasserre

oula !

voila bien longtemps que j'ai pas fait ça....

et j'ai jamais installé phpmyadmin via emerge... 

je vais faire ça à la maison (c'est à dire tout bientôt) 

ça fait partie de mon plan de charge  :Wink:  et je te tiens au courant

sauf si quelqu'un à la réponse toute prête  :Smile: 

EDIT: pour la compatibilité je suis pas sur que tout fonctionne 

le modèle objet a été complètement revu et est assez peu compatible avec le 4

(c'est ce que j'ai lu, je n'ai pas vraiment d'expérience en la matière)

alors ne prend pas trop vite de bonnes habitudes  :Wink: 

----------

## manu.acl

Install du bazar :

```
# emerge apache

# echo "dev-php/mod_php ~x86" >> /etc/portage/package.keywords (pour php5)

# echo "dev-php/php ~x86" >> /etc/portage/package.keywords

# emerge mod_php (avec USE="apache2 mysql" si besoin est)
```

Config d'apache :

```
# vi /etc/conf.d/apache2

APACHE2_OPTS="-D PHP5"
```

et ... c'est tout  :Smile: 

et aussi bien sur :

```
# emerge phpmyadmin
```

----------

## bosozoku

Ok merci ! 

Par contre tu as oublié comment créer une base de donnée et utiliser phpmyadmin (enfin je sais l'utiliser mais je l'ai jamais utiliser que sur mon hébergeur, je sais pas comment ça se passe en local).

Merci d'avance !

edit : et puis aussi pourquoi ya php et mod_php ? Ce sont deux choses différentes ?

----------

## bong

"php_mod", c'est le module dynamique pour apache, qui est chargé et déchargé au besoin alors que "php" ne te donnera que des lib statiques, bonnes pour faire un cgi (solution peu recommandée).

----------

## marvin rouge

attention : apache est en pleine ré-organisation en ce moment:

http://dev.gentoo.org/~vericgar/doc/apache-package-refresh.html

le dernier ebuild php  ne fonctionne pas avec le derniers ebuild apache. Fait un search sur les forums anglophones.

----------

## bosozoku

Bah c'est simple je vais attendre un peu  :Smile: 

edit : en fait non je vais pas me casser la tete je vais installer php4 !

----------

## blasserre

chez moi ça marche....

avec le petit ajout de manu.acl :

```
 APACHE2_OPTS="-D PHP5"
```

mais effectivement je crois que j'ai mal choisi ma saison =(

je passe à phpmyadmin....

un emerge phpmyadmin plus tard

tin c'est une installation pour les manchots  :Laughing:  y'a rien à faire 

(si ce n'est lire les dernières lignes de l'emerge : 2 lignes à copier coller dans un term)

c'est fait  =)

----------

## manu.acl

Ben ouais, ça marche tout seul, y'a même pas de quoi en faire un tuto  :Surprised: 

----------

## babykart

 *marvin rouge wrote:*   

> attention : apache est en pleine ré-organisation en ce moment:
> 
> http://dev.gentoo.org/~vericgar/doc/apache-package-refresh.html
> 
> le dernier ebuild php  ne fonctionne pas avec le derniers ebuild apache. Fait un search sur les forums anglophones.

 

la ré-organisation m'a mis un foutoir tel que je suis repassé à apache-2.0.52-r2, d'autant que sur l'autre serveur en 2.0.52-r3, il veut plus manger de php, et au lancement du démon, il met 3 plombes (5/10 minutes) à être accéssible...  :Evil or Very Mad: 

bref, mon humble avis est: apache-2.0.52-r2 + php et mod_php en 4.3.10  + mysql-4.0.22-r2 si tu veux un truc stable... et effectivement un emerge de tout le truc et ça marche... :Wink: 

----------

## blasserre

 *babykart wrote:*   

>  et effectivement un emerge de tout le truc et ça marche...

 

c'est vrai que je fais le mariole, mais je sens que bientôt je vais me les prendres et me les mordre

----------

## bosozoku

Bon ça commence mal...

J'ai donc installé apache + php + mysql + phpmyadmin et le tout en version stable comme l'a conseillé babykart.

A la fin du phpmyadmin, je fais ce qui est demandé (je suppose que c'est la création d'une base de données)

 *Quote:*   

>  mysql -u root -p < /usr/share/webapps/phpmyadmin/2.6.1_rc1/sqlscripts/mysql/2.6.1_rc1_create.sql 
> 
> Enter password:   
> 
> ERROR 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.soc                                                       k' (2)
> ...

 

Heu...

edit : je voudrais créer une base de données et pouvoir l'utiliser via phpmyadmin et php bien sur.

----------

## blasserre

as-tu lu la fin de l'emerge de mysql ?

il faut démarrer le démon et saisir le pass root

c'est pt être ça.... mais je sens que c'est autre chose....

----------

## bosozoku

 *blasserre wrote:*   

> as-tu lu la fin de l'emerge de mysql ?
> 
> il faut démarrer le démon et saisir le pass root
> 
> c'est pt être ça.... mais je sens que c'est autre chose....

 

heu non j'ai pas lu l'emerge de mysql, je le refais  :Smile: 

----------

## bosozoku

Bon je suis vraiment pas gaté ! 

Je fais exactement comme ils le demande, arrivé à ça : 

 *Quote:*   

> # /usr/bin/mysqladmin -u root -h genbox password '171605'                   
> 
> /usr/bin/mysqladmin: connect to server at 'genbox' failed
> 
> error: 'Lost connection to MySQL server during query'

 

Voila normalement ensuite je dois faire /usr/bin/mysqladmin -u root password 'new-password'

Mon hostname est bel et bien genbox...

edit : j'ai donc remplacé genbox par localhost.

Voila : 

 *Quote:*   

> genbox lucky # /usr/bin/mysqladmin -u root -h localhost password '171605'
> 
> genbox lucky # /usr/bin/mysqladmin -u root password '171605'                             
> 
> /usr/bin/mysqladmin: connect to server at 'localhost' failed
> ...

 

Aidez moi siouplé !

----------

## manu.acl

et si tu fais localhost ?

----------

## bosozoku

 *manu.acl wrote:*   

> et si tu fais localhost ?

 

up

----------

## blasserre

/etc/init.d/mysql start ?

----------

## blasserre

 *bosozoku wrote:*   

> 
> 
> genbox lucky # /usr/bin/mysqladmin -u root password '171605'                             
> 
> /usr/bin/mysqladmin: connect to server at 'localhost' failed
> ...

 

ajoute -p et tapes ton premier password quand il te le demande 

```
# /usr/bin/mysqladmin -u root -p password '171605' 
```

----------

## NiLuJe

Experience perso : J'me suis aussi foiré à mon premier emerge de mysql sur le password root ... J'en suis rendu au point de jarter en dur les fichier des tables contenant les infos sur les users mysql, réemerge mysql, puis suivre à la lettre les infos de l'emerge .. J'ai toujours pas vraiment compris ce que j'avais foiré le premier coup, m'enfin ^^

----------

## blasserre

 *NiLuJe wrote:*   

>  J'ai toujours pas vraiment compris ce que j'avais foiré le premier coup, m'enfin ^^

 

ba si tu lui a donné un password avec le première commande, si tu lui donne pas ce pass pour les commandes suivantes il te jette.... logique. mais je crois qu'ils se sont planté la dessus dans les messages de fin d'emerge...

bon alors bosozoku... c'est pas l'heure de couler un bronze...

le suspense est insoutenable   :Very Happy: 

----------

## bosozoku

C'est bon ! 

Enfin  :Very Happy:  Merci à tous, je vais pouvoir travailler en local, c'est cool ça  :Very Happy: 

edit : je vous présenterai le petit forum une fois qu'il sera terminé (en php4 et non en php5 finalement).

edit2 : j'ai ce message au lancement d'apache apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName

C'est pas très embetant mais je voudrais savoir ou ça se configure, c'est dans /etc/apache/conf/apache2.conf ?

----------

## blasserre

 *bosozoku wrote:*   

> 
> 
> C'est pas très embetant mais je voudrais savoir ou ça se configure, c'est dans /etc/apache/conf/apache2.conf ?

 

oui c'est le fichier qui commence par 

 *apache2.conf wrote:*   

> ### Main Configuration Section
> 
> ### You really shouldn't change these settings unless you're a guru

 

fin moi je dis ça....  :Laughing: 

sinon commences par vérifier que tes /etc/hostname 

et /etc/dnsdomainname vont bien

----------

## bosozoku

Bon voila mon /etc/hosts : 127.0.0.1       localhost genbox (j'ai mis que la ligne en cause bien sur).

Second petit problème, je n'ai pas l'url rewrite. 

J'ai pris le .htaccess d'origine mais ça ne marche pas en local, dois je ajouter un module ou quelque chose à apache pour qu'il le prenne en compte ?

----------

## blasserre

 *bosozoku wrote:*   

> Bon voila mon /etc/hosts : 127.0.0.1       localhost genbox (j'ai mis que la ligne en cause bien sur).

 

je pensais à /etc/dnsdomainname (/etc/hostname aussi mais je crois que c'est le premier)

il y a un truc automatique qui écrase la variable FQDN d'apache au démarrage avec le contenu des deux fichiers précités

 *bosozoku wrote:*   

> Second petit problème, je n'ai pas l'url rewrite. 

 

connais pas  :Embarassed: 

j'ai matté vaguement, il faur bricoler un script dans /etc/apache2/conf/modules.d

et ajouter l'option dans /etc/conf.d/apache2

 *bosozoku wrote:*   

> 
> 
> J'ai pris le .htaccess d'origine mais ça ne marche pas en local, dois je ajouter un module ou quelque chose à apache pour qu'il le prenne en compte ?

 

- de quel .htaccess parles-tu ?

- est-il lié au fichier contenant les users:hashpass ?

- que veux tu faire exactement ?

pour info, chez moi je fais :

```
# htpasswd2 -c /var/www/localhost/passfile user
```

et je saisis le pass (si tu as d'autres users supprime le -c pour les suivants)

ensuite dans le répertoire à protéger je crée un .htaccess qui contient :

```
AuthUserFile /var/www/localhost/passfile

AuthName "Verboten !"

AuthType Basic

Require valid-user
```

et c'est tout, c'est peut être la méthode old school, 

il y a plein d'autres moyens de restreindre les accès

voir dans /etc/apache2/conf/commonapache2.conf

----------

## NiLuJe

Pour l'erreur du nom du serveur, en mettant mon hostname au paramètre "ServerName" dans la conf apache, ca passe ... (Commenté sur localhost ou 127.0.0.1 par défaut si mes souvenirs sont bons)

Pour l'url_rewrite, pas essayé, j'men sers pas ^^

----------

## bosozoku

Merci pour ces infos, je vais essayer pour le hostname.

Non Blassere tu n'a pas compris, l'url rewrite se definit dans le .htaccess  :Smile: 

Donc j'ai pris celui du site stationlinux.org et il n'est pas pris en compte par apache, c'est pour ça que je me dis qu'il doit manquer quelque chose à apache.

Si quelqu'un sait  :Smile: 

----------

## bosozoku

Alors personne ne sait comment activer l'url rewrite pour apache ? (pas l'utiliser mais vraiment l'activer ca la ça marche sur mon hebergeur et pas en local).

----------

## manu.acl

Je vois vraiment pas ce que c'est  :Confused: 

----------

## bosozoku

 *manu.acl wrote:*   

> Je vois vraiment pas ce que c'est 

 

C'est connu pourtant  :Smile: 

----------

## manu.acl

Pas de moi  :Neutral:  à moins que je connaisse ça d'un autre nom ...

----------

## DomiX

=> http://httpd.apache.org/docs-2.0/mod/mod_rewrite.html <=

manu.acl: en gros ce module permet de réécrire une url selon un modèle (regex) définit  :Wink: 

----------

## blasserre

suis tombé hier sur une page des forums hardware.fr 

que je retrouve pas...

en gros pour que ça marche il faut ajouter dans les fichiers de conf apache

```
AddModule mod_rewrite
```

et il faut que pour le dossier où tu veux utiliser le bouzin ta variable

AllowOverride contienne FileInfo ou soit à All

tout ça c'est de tête, alors pas à prendre pour argent comptant

----------

## bosozoku

J'ai trouvé ça dans le fichier /etc/apache2/conf/commonapache2.conf : 

 *Quote:*   

> <Directory />
> 
>   Options -All -Multiviews
> 
>   AllowOverride FileInfo
> ...

 

J'ai modifié en FileInfo ou en All ça ne marche toujours pas.

Et dans le fichier /etc/apache2/conf/apache2.conf j'ai cette ligne : 

 *Quote:*   

> LoadModule rewrite_module                modules/mod_rewrite.so

 

Ca marche toujours pas :'(

----------

## blasserre

 :Evil or Very Mad:   :Evil or Very Mad: 

 *moi même wrote:*   

> 
> 
> en gros pour que ça marche il faut ajouter dans les fichiers de conf apache
> 
> ```
> ...

 

oui ok il semblait manquer le .c

----------

## bosozoku

Que je mette ça dans le directory /var/www/localhost/htdocs du fichier commonapache2.conf ou dans le fichier apache2.conf ça me met erreur de syntaxe, je dois mettre ça ou ?  :Sad: 

edit : grep rewrite /etc/apache2/apache2-builtin-mods                            

mod_rewrite shared

----------

## blasserre

essaye à la fin de commonapache2.conf....

j'en sais trop rien en fait...  :Embarassed: 

mais ce soir je pourrai te filer ce que j'ai trouvé hier

EDIT autant pour moi  :Embarassed: 

AddModule c'est pour apache 1

pour apache 2 seul le LoadModule est nécessaire et est présent par défaut

----------

## Marsu

ça tombe bien ce topic, je suis justement entrain d'installer php (mais le 5), et le fait est que ça ne veut pas marcher, le serveur se lance correctement, les pages html s'affichent, mais les pages php ne sont pas interprétées et le navigateur me propose de les telecharger (j'ai fait un fichier tout con : <? phpinfo(); ?>)  

pour info, j'ai bien ajouté le -D PHP5 dans le fichier de conf

vous avez une idée d'ou ça peut venir ?

----------

## bosozoku

 *marvin rouge wrote:*   

> attention : apache est en pleine ré-organisation en ce moment:
> 
> http://dev.gentoo.org/~vericgar/doc/apache-package-refresh.html
> 
> le dernier ebuild php ne fonctionne pas avec le derniers ebuild apache. Fait un search sur les forums anglophones.

 

Voila ton problème je pense.

----------

## marvin rouge

 *bosozoku wrote:*   

>  *marvin rouge wrote:*   attention : apache est en pleine ré-organisation en ce moment:
> 
> http://dev.gentoo.org/~vericgar/doc/apache-package-refresh.html
> 
> le dernier ebuild php ne fonctionne pas avec le derniers ebuild apache. Fait un search sur les forums anglophones. 
> ...

 

plus d'infos:

bug 77556 et ce thread

----------

## Marsu

bon, j'ai suivi vos conseils et j'ai retrogradé à la v 2.0.52 mais ça ne marche toujours pas

EDIT : en fait, maintenant, ça affiche la page, mais ça n'iterprete pas le code ("<? phpinfo(); ?>")

----------

## blasserre

j'ai eu le même souci hier et j'ai cherché looongtemps avant de trouver ceci :

j'avais bien changé les options dans /etc/conf.d/apache2

mais je n'avais pas vu que la ligne était commentée par défaut

un "décommentage" un /etc/init.d/apache2 restart et ça repartait  :Rolling Eyes: 

on a pas toujours les yeux en face des trous, alors je dis ça au cas où..  :Cool: 

----------

## Marsu

enfin... en fait, j'ai oublié de remodifier le fichier apres etc-update (ça m'était déjà arrivé l'histoire du décommentage, j'en avais chié 2 semaines avant de le voir, ce tout petit # de rien du tout (donc ton conseil était tout à fait justifié))

merci (j'ai vérifié grace à toi quand même (on sait jamais))

----------

## bosozoku

 *blasserre wrote:*   

> 
> 
> EDIT autant pour moi 
> 
> AddModule c'est pour apache 1
> ...

 

Oui il est présent, le problème est que ça marche pas...

Voila mon .htaccess : 

 *Quote:*   

> RewriteEngine on
> 
> RewriteRule (.+)\.(.+)\.html$ /css/index.php?type=$1&num=$2
> 
> 

 

Pourquoi cela ne marche t'il pas ?  :Sad:  (la règle est bonne  car ça marche sur mon hébergeur).

----------

## bosozoku

Bonjour, j'ai du réinstaller apache et mod_php5 à cause de la réorganisation des dev gentoo. Bon maintenant ça marche.

Le seul truc est qu'il m'affiche la liste des fichiers à la racine. Il interprete bien index.php ou index.php5 mais je suis obligé de lui spécifier à la main.

Par contre si je met un index.html il l'affiche directement. Le problème est bien dans la config d'apache qui doit reconnaitre que les .html mais je sais pas du tout ou ça se trouve  :Sad: 

----------

## blasserre

 *bosozoku wrote:*   

> Le problème est bien dans la config d'apache qui doit reconnaitre que les .html mais je sais pas du tout ou ça se trouve 

 

normalement c'est là :

 *commonapache.conf wrote:*   

> 
> 
> <IfModule mod_dir.c>
> 
>     DirectoryIndex index.html index.html.var index.php index.php3 index.shtml in
> ...

 

----------

## bosozoku

J'ai bien ça : 

```
<IfModule mod_dir.c>

    DirectoryIndex index.php index.php5 index.html index.html.var index.shtml index.cgi index.pl index.htm Default.htm default.htm

</IfModule>
```

 (j'ai rajouté le php5) mais ça fait toujours pareil... Il reconnait que le .html.

Si je supprime l'index.html il affiche la liste de fichiers. Si je lui indique index.php, aucun problème ! mais il le fait pas tout seul  :Sad: 

----------

## blasserre

mod_dir se charge-t'il bien ?

tu vois ça avec phpinfo() section apache2handler > loaded modules

EDIT : problème de casse ?Last edited by blasserre on Sat Mar 19, 2005 9:59 am; edited 1 time in total

----------

## bosozoku

 *blasserre wrote:*   

> mod_dir se charge-t'il bien ?
> 
> tu vois ça avec phpinfo() section apache2handler > loaded modules

 

Affirmatif, le module est bien chargé !

----------

