Jeudi 14 Février 2002 Installation de PHP3 et MYSQL pour APACHE sur vega (Debian 2.2) Modules chargés: dbf libdbf1.6 libdbi-perl libgd-gif1 libmysqlclient6 libpgsql2 mysql-client mysql-doc mysql-server php3 php3-cgi php3-dbase php3-doc php3-gd php3-mysql php3-pgsql ------------ Initialisation: ------------ security and update notice MySQL will only install if you have a NON-NUMERIC hostname that is is resolvable via the /etc/hosts file. E.g. if the "hostname" command returns "myhostname" then there must be a line like "127.0.0.1 myhostname". Please remember to set a PASSWORD for the MySQL root user ! See /usr/share/doc/mysql-server/README.Debian for more information. If you are upgrading from a MySQL <= 3.22.10 you should run the /usr/bin/mysql_fix_privilege_tables. Otherwise you will not be able to use the new GRANT command! I will ensure secure permissions of /var/lib/mysql by replacing GIDs other than root and mysql with mysql. ------------ Config de apache dans la foulée: ------------ Setting up php3 (3.0.18-0potato1) ... I see you have apache webserver installed and so far you haven't used the apache module version of php3 in your apache. If you want to use it, you should reconfigure the apache webserver and select to load the php module. I can call the apacheconfig script now for you to do it, or you can insert the following line into /etc/apache/httpd.conf manually: LoadModule php3_module /usr/lib/apache/1.3/libphp3.so Do you want me to run the apacheconfig script now [y/N] ? y Your config files will not be modified until you select Y at "save changes." Enter the email address of your server administrator. This address will be used in error messages allowing users to submit reports of faulty links or misconfigured cgi-programs to you. It should be an email address that corresponds to a human. Who should the ServerAdmin be? [webmaster@vega.bd.fr] Finding DSO mods..........................................found. # LoadModule vhost_alias_module /usr/lib/apache/1.3/mod_vhost_alias.so # LoadModule env_module /usr/lib/apache/1.3/mod_env.so LoadModule config_log_module /usr/lib/apache/1.3/mod_log_config.so # LoadModule mime_magic_module /usr/lib/apache/1.3/mod_mime_magic.so LoadModule mime_module /usr/lib/apache/1.3/mod_mime.so LoadModule negotiation_module /usr/lib/apache/1.3/mod_negotiation.so LoadModule status_module /usr/lib/apache/1.3/mod_status.so # LoadModule info_module /usr/lib/apache/1.3/mod_info.so # LoadModule includes_module /usr/lib/apache/1.3/mod_include.so LoadModule autoindex_module /usr/lib/apache/1.3/mod_autoindex.so LoadModule dir_module /usr/lib/apache/1.3/mod_dir.so LoadModule cgi_module /usr/lib/apache/1.3/mod_cgi.so # LoadModule asis_module /usr/lib/apache/1.3/mod_asis.so # LoadModule imap_module /usr/lib/apache/1.3/mod_imap.so # LoadModule action_module /usr/lib/apache/1.3/mod_actions.so # LoadModule speling_module /usr/lib/apache/1.3/mod_speling.so LoadModule userdir_module /usr/lib/apache/1.3/mod_userdir.so LoadModule alias_module /usr/lib/apache/1.3/mod_alias.so LoadModule rewrite_module /usr/lib/apache/1.3/mod_rewrite.so LoadModule access_module /usr/lib/apache/1.3/mod_access.so LoadModule auth_module /usr/lib/apache/1.3/mod_auth.so # LoadModule anon_auth_module /usr/lib/apache/1.3/mod_auth_anon.so # LoadModule dbm_auth_module /usr/lib/apache/1.3/mod_auth_dbm.so # LoadModule db_auth_module /usr/lib/apache/1.3/mod_auth_db.so # LoadModule proxy_module /usr/lib/apache/1.3/libproxy.so # LoadModule digest_module /usr/lib/apache/1.3/mod_digest.so # LoadModule cern_meta_module /usr/lib/apache/1.3/mod_cern_meta.so LoadModule expires_module /usr/lib/apache/1.3/mod_expires.so # LoadModule headers_module /usr/lib/apache/1.3/mod_headers.so # LoadModule usertrack_module /usr/lib/apache/1.3/mod_usertrack.so LoadModule unique_id_module /usr/lib/apache/1.3/mod_unique_id.so LoadModule setenvif_module /usr/lib/apache/1.3/mod_setenvif.so # LoadModule sys_auth_module /usr/lib/apache/1.3/mod_auth_sys.so # LoadModule put_module /usr/lib/apache/1.3/mod_put.so # LoadModule throttle_module /usr/lib/apache/1.3/mod_throttle.so # LoadModule allowdev_module /usr/lib/apache/1.3/mod_allowdev.so # LoadModule auth_mysql_module /usr/lib/apache/1.3/mod_auth_mysql.so # LoadModule pgsql_auth_module /usr/lib/apache/1.3/mod_auth_pgsql.so # LoadModule eaccess_module /usr/lib/apache/1.3/mod_eaccess.so # LoadModule php3_module /usr/lib/apache/1.3/libphp3.so # LoadModule roaming_module /usr/lib/apache/1.3/mod_roaming.so Pondering.......................................... done. Save these changes to the configuration files? [Y/n] Rotated `/etc/apache/httpd.conf' at Thu Feb 14 22:39:40 CET 2002. Restart Apache now? [Y/n] ------------ Samedi 16 Février 2002 Démarrage MySQL. Lancement du client mysql: $ mysql -u root mysql Permet de se connecter en tant que root sur la base de données mysql, déclarée automatiquement à l'installation. Elle contient les données d'administration telles que la liste des utilisateurs autorisés (table user). La doc conseille de mettre un mot de passe sur l'utilisateur root: mysql> update user set password='zzzzzzzz' where user='root'; mysql> flush privileges; mysql> quit On se reconnecte en demandant l'entrée du mot de passe (-p): $ mysql -u root -p mysql password: ........ Catastrophe! On est refusé. Impossible de revenir en arrière. La db mysql est inaccessible... Il y a moyen de contourner les contrôles en lançant mysqld avec le paramètre --skip-grant-tables Arrêt du serveur mysql: # /etc/init.d/mysql stop En fait ce n'est pas mysqld qui tournait mais safe_mysqld (un script)... Pour me dépanner je lance: # mysqld--skip-grant-tables J'arrive à me conecter à la db mysql, ouf! pour voir ce qui ne va pas dans la description de root dans la table user. mysql> select * from user; Mon mot de passe est pourtant bien là tel que je pensait l'avoir entré... Je le supprime: mysql> update user set password='' where user='root'; mysql> flush privileges; mysql> quit Je tue mon mysqld de dépannage et relance le normal: # /etc/init.d/mysql start Ca remarche! Il y a une autre méthode pour entrer une mot de passe: # mysqladmin -u root password zzzzzzzz Compris pourquoi la 1ère méthode n'est pas bonne: Si on regarde le résultat dans la table user de la db mysql, on voit que le mot de passe y est stocké encrypté. Chose qui est réalisé par la 2ème méthode. Il y a 2 user root déclaré dans la db, 1 sur localhost et un sur vega. Je met également le mot de passe sur vega: # mysqladmin -h vega -u root password zzzzzzzz $ mysql -u vega -u root -p mysql Ne marche pas. Il dit que vega.bd.fr n'a pas le droit... OK en changeant vega par vega.bd.fr dans la table user. ----------------- J'installe une autre doc (que j'espère plus cool à consulter) ainsi qu'un utilitaire X qui devrait être plus convivial que mysqladmin: The following packages will be REMOVED: mysql-doc* The following NEW packages will be installed: libforms0.89 mysql-gpl-doc xmysqladmin La doc html est sous la forme d'un seul fichier énorme. Lourd mais bon... /usr/share/doc/mysql-gpl-doc/manual.html --------- libforms0.89 est nécessaire à xmysqladmin... En lançant xmysqladmin sous root, on peut administrer la db mysql. Pour lancer xmysqladmin il faut lui mettre une option quelconque (?). Par exemple: # xmysqladmin version et on joue avec de jolies fenêtres... mais stop/start server ne marche pas (trouve pas le script). -------------------- Finalement apache ne semble pas configuré avec PHP3 malgré l'initialisation lancée à l'installation. La ligne: # LoadModule php3_module /usr/lib/apache/1.3/libphp3.so est toujours en commentaire dans: /etc/apache/httpd.conf Comprend pas ce que fait le script apacheconfig... Je décommente la ligne à la main et je relance apache: # /etc/init.d/apache restart OK! --------------------------- Configuration d'apache pour le site d'essai: /home/bernard/www/Free/Xtests Fichier /etc/apache/srm.conf: DocumentRoot /home/bernard/www/Free/Xtests DirectoryIndex index.php3 Fichier /etc/apache/access.conf: Relance d'apache: # /etc/init.d/apache stop # /etc/init.d/apache start -------------- Le test:
fonctionne bien. Le call à mysql: