Compilation d'apache et PHP + PHPMyAdmin sur Debian Etch 4

Bonjour,
Je vous écris car j’essaie actuellement de compiler Apache (dernière version, à savoir : 2.2.11) ainsi que PHP (5.2.9) et PHPMyAdmin (3.1.3.2).
Je précise que je préfère compiler pour plusieurs choses :

  • c’est un serveur de test
  • avoir uniquement ce que je désire
  • comprendre et apprendre les principes de la compilation et les erreurs à ne pas faire.

Pour compiler Apache, j’ai utilisé les commandes suivante :

J’ai ensuite installé les (futurs) dépendances nécessaires aux modules PHP (d’ailleurs, je crois en avoir installé certains totalement inutile) :

Puis j’ai utilisé cette commande pour la compilation de PHP :

D’une part, j’ai un souci avec OpenSSL en fin de compilation :

mais c’est pas la priorité pour l’instant.

Je prend soin d’ajouter bz2.so aux extensions dans mon fichier ini PHP mais j’ai une erreur au démarrage d’Apache :

Le message est clair, il ne trouve pas la librairie.

Après, en lançant l’interface PHPMyAdmin, j’ai droit à pas mal d’erreur (j’en suis au Setup, localhost/phpMyAdmin/setup) :
J’ai plusieurs messages comme ceci :

idem avec Bzip2 (grrr) et ZIP
ainsi qu’un message concernant SSL : connexion non sécurisé…

Bref, j’aimerais bien pouvoir installer/charger ses différents modules pour avoir un PHPMyAdmin correct et aussi comprendre.
J’imagine que cela concerne ma compilation de PHP qui est foireuse ainsi que le fichier php.ini mal renseigné ?!
Merci de m’avoir lu, c’est un peu long désolé!
J’espère trouver des éléments de réponse grâce à vous.

Pour compiler, très bien mais utilise donc les sources debian avec le apt-get build-dep qui t’installera ce qu’il faut pour compiler. Tu edites le fichiers debian/rules pour adapter le paquet à tes voeux et tu lances la compilation. À la louche il te manque une tetrachiée de paquets -dev.

Bonjour :smt006 ,
Tout d’abord, merci de m’avoir lu et de m’avoir répondu.
Alors, je me suis renseigné sur ce fameux build-dep que je connaissais pas et c’est vraiment bien comme principe (comme quoi, en compilant, on apprend:)).
J’ai donc fais un :

apt-get install bluid-dep php5

qui m’a installé ~90mo de paquets!
J’ai relancé la compilation + install de PHP via ces commandes :

./configure --prefix=/usr/local/apache2/php --with-apxs2=/usr/local/apache2/bin/apxs 
--with-config-file-path=/usr/local/apache2/php --enable-zip --with-zlib=/usr 
--with-mysql=/usr/include/mysql/mysql.h --with-bz2=/usr/lib --with-mcrypt=/usr/include/ 
--with-openssl=/usr/ && make clean && make && make install

et c’est passé ! Yahouuuuuuuu
Un grand merci à toi :slightly_smiling:
Avec un info.php, on voit bien bz2, openssl, zip et zlib !
J’ai d’autres erreurs concenrant PHPMyAdmin mais cela provient plus d’un souci de config que de compilation PHP je pense. (comme beaucoup de "Cannot modify header info…, SSL pas active mais c’est normal ça et un problème avec le dossier Config).
Je me penche sur ces differents problèmes.
En tout cas, grand merci à toi. En plus, j’ai (encore) appris un truc ^^
Merci.

En fait tu aurais eu intérêt à faire

$ fakeroot dpkg-buildpackage -b -uc php5

en ayant au préalable édité le fichier debian/rules pour mettre ce que tu veux dans le .configure. Tu aurais fait un paquet que tu aurais installé, cela aurait permis d’être sûr d’avoir une installation cohérente ce qui n’est pas le cas ici (php5 n’est pas installé pour apt)

Mince alors … moi qui voulait faire quelque chose de propre…
Par contre, la commande

apt-get install bluid-dep php5

doit quand même être réalisé pour gérer les dépendances avant le fakeroot?!
Après, je ne connait pas le debian/rule… où est-ce que cela se trouve ? Dans les sources ?! J’ai rien vu pour l’instant. Je me renseigne.
Ensuite, si j’ai bien compris :

fakeroot dpkg-buildpackage -b -uc php5

permet de :

  • lancer une commande dans un environnement super-user
  • construire un paquet .deb en utilisant la source php5 précédemment “dépaqueté”
  • indiquer à APT que PHP5 est installé

Suis-je dans le vrai ?
Merci :slightly_smiling:

[quote=“jon@than”]Mince alors … moi qui voulait faire quelque chose de propre…
Par contre, la commande

apt-get install bluid-dep php5

doit quand même être réalisé pour gérer les dépendances avant le fakeroot?![/quote]
Oui

apt-get build-dep toto

$ apt-get source toto
$ cd toto-1.2-45
$ emacs debian/rules

[quote]
Ensuite, si j’ai bien compris :

fakeroot dpkg-buildpackage -b -uc php5

permet de :

  • lancer une commande dans un environnement super-user
  • construire un paquet .deb en utilisant la source php5 précédemment “dépaqueté”
    [/quote]oui[quote]
  • indiquer à APT que PHP5 est installé

Suis-je dans le vrai ?
Merci :slightly_smiling:[/quote]
Presque, c’est à l’installation que le paquet est déclaré et peut être désinstallé. Au pire, ,il suffit d’installer checkinstall (
deb boisson.homeip.net/debian etch divers
)
et de faire

checkinstall make install

par exemple, ça intercepte l’installation (autant que faire se peut) et créer un paquet qu’il suffit d’installer.

Bonjour bonjour ^^
Je viens aux nouvelles.
J’ai bien télécharger les sources php via la commande :

qui m’a mis crée un répertoire [quote]php5-5.2.0[/quote] (pourquoi 5.2.0 alors que la version php que j’ai télécharger est 5.2.9???).
Donc, actuellement je suis dans : /usr/src/php-5.2.9/php5-5.20
Dans le dossier php5-5.2.0, j’ai bien un dossier debian avec rules dedans.
Je l’ai ouvert et ajouter la ligne suivante :

DEB_BUILD_OPTIONS="--prefix=/usr/local/apache2/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/php --enable-zip --with-zlib=/usr --with-mysql=/usr/include/mysql/mysql.h --with-bz2=/usr/lib --with-mcrypt=/usr/include/ --with-openssl=/usr/"

et sauvé le fichier.
Je retourne dans /usr/src/php-5.2.9/php5-5.20.
J’effectue la compilation via la commande :

fakeroot dpkg-buildpackage -b -uc

qui compile. Mais à la fin, je me retrouve avec plusieurs .deb.

Je pensais en avoir un seul qui contient tout !?
Enfin, si je vire le dossier PHP dans /usr/local/apache2 et que j’install les .deb (pour tester), ça va indiquer à APT que PHP est bel et bien installé ?!
Merci.

Lorsque tu compile php, tout n’est pas forcément utile. L’une des différences de debian par rapport à Suse, RedHat, Mandriva, etc est le hauty niveau de découpage des paquets. Tu peux tout installer ou te contenter d’installer les paquets utiles. Le plus simple est de te faire un dépot local avec une priorité 1001 ce qui assure que tes paquets seront prioritaires sur les mises à jour et ne seront jamais remplacés.

Bonjour,
Alors, j’ai avancé un peu.
J’ai tapé les commandes suivante :

dpkg -i *.deb # installer les paquetages « .deb » qui viennent juste d'être créé.
apt-get -f install # permet de gérer les dépendances des paquets « .deb » et installer ceux qui n'ont pas pu l'être à cause des dépendances manquantes

et j’ai été voir dans Synaptic : ils sont bien pris en compte par APT.
Ce qui va me permettre de pouvoir les désinstallés proprement par la suite si besoin ??!

Sinon, Synaptic m’indique que les paquets peuvent être mis à jour … je le fais ?! Pas forcement, sinon ils vont être “remplacer” non ? ça va peut etre mettre le souk dans le serveur apache ?
Enfin, je ne connais pas la création de dépôts, je vais me renseigner la dessus.
Merci.

ptit up :exclamation:

Sinon, j’ai progresser dans la configuration du serveur mais il doit y avoir une notion que je n’ai pas comprise : en allant sur localhost/phpMyAdmin/setup j’ai la possibilité de configurer un serveur.
J’ai donc créé un serveur de test.
Ensuite, j’ai fais ceci :
[ul]
[li] Création d’un compte MySQL (dans un terminal) : mysql -u root [/li]
[li] Edition du fichier inc.php.config : [/li]
[li] $cfg[‘Servers’][$i][‘controluser’] = ‘root’[/li]
[li] $cfg[‘Servers’][$i][‘controlpass’] = ‘azerty’[/li]
[li]Réalisation d’une requete SQL pour les privilèges :

GRANT USAGE ON mysql.* TO 'root'@'localhost' IDENTIFIED BY 'azerty'; GRANT SELECT ( Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv, Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv, Execute_priv, Repl_slave_priv, Repl_client_priv ) ON mysql.user TO 'root'@'localhost'; GRANT SELECT ON mysql.db TO 'root'@'localhost'; GRANT SELECT ON mysql.host TO 'root'@'localhost'; GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv) ON mysql.tables_priv TO 'root'@'localhost'; [/li][/ul]

Ensuite, je peux me logger sous PHPMyAdmin et créér une nouvelle base de données. Mais, si je retourne dans le setup (localhost/phpMyAdmin/setup), le serveur que j’avais créé (test) n’est plus affiché. Néanmoins, ma base de données est toujours présente. Je ne comprend pas bien le lien entre la création d’un ‘serveur’ et la mise en place d’une BDD MySQL enfait…