GuidesQubeUnixVintage

Installer Apache, Mysql et Php sur un Qube2

Le serveur web vintage

Créer un serveur AMP (Apache, Mysql, Php) sur une plateforme Qube2 Cobalt avec NetBSD 2.0 est tout à fait possible et parfaitement fonctionnel. Voici un petit guide d'installation !

Installation de Apache, Mysql et Php sur le Qube2

Après avoir configuré le Qube2 Cobalt avec NetBSD 1.6, il vous sera possible d’y installer de nombreux services tels que Apache, Php, Mysql, Samba et bien d’autres encore. Pour le coup, il vous faudra musarder dans les archives NetBSD. Pour effectuer des installations de packages binaires ou de codes sources, vous devez configurer votre profil de manière à installer à partir d'Internet.

Contrôle de la connexion Internet

Vérifiez la connexion Internet en testant les DNS avec la commande nslookup et en tapant une adresse de site Internet (dans notre exemple : www.google.fr). La réponse doit être immédiate.

# nslookup
*** Can't find server name for address 127.0.0.1:
No response from server Default Server: dnscache-7.proxad.net
Address: 212.27.32.5
> google.fr
Server: dnscache-7.proxad.net Address: 212.27.32.5
Non-authoritative answer:
Name:    google.fr
Addresses:  216.239.39.104, 216.239.57.104, 216.239.59.104
> exit
#

Configuration du profil et des variables d’environnement

Préparez le fichier .cshrc pour fixer les variables d’environnement du C Shell. En effet, root utilise le Shell CSH contrairement aux autres UNIX tel que SOLARIS qui utilisent le Shell standard SH. Toutefois, un autre super-utilisateur existe qui utilise le Shell standard SH : c’est toor (inverse de root). Vous devez y trouver les variables d’environnement suivantes :

# cd
# vi .cshrc
setenv PKG_PATH ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6/cobalt/All
setenv CVSROOT :pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot
setenv CVS_RSH ssh

Créez un répertoire de travail pour enregistrer les codes sources NetBSD. Ce dossier sera nécessaire au fil de nos installations.

# mkdir /u
# mkdir /u/SOURCES
# chmod –R 777 /u

Le fichier .cshrc doit être comme suit :

# $NetBSD: dot.cshrc,v 1.14 2001/03/01 22:45:49 tv Exp $
set history=1000
set path=(/sbin /usr/sbin /bin /usr/bin /usr/pkg/sbin /usr/pkg/bin /usr/X11R6/bi
n /usr/local/sbin /usr/local/bin)
# directory stuff: cdpath/cd/back
set cdpath=(/sys /usr/src/{bin,sbin,usr.{bin,sbin},lib,libexec,share,local,games
,gnu/{usr.{bin,sbin},libexec,lib,games}})
setenv PKG_PATH ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6/cobalt/All
setenv BLOCKSIZE 1k
setenv CVSROOT :pserver:anoncvs@anoncvs.netbsd.org:/cvsroot
setenv CVS_RSH ssh
alias   h       history
alias   hup     '( set pid=$< ; kill -HUP $pid ) < /var/run/!$.pid'
alias   j       jobs -l
alias   ll      ls -l
alias   x       exit
alias   z       suspend
alias   back    'set back="$old"; set old="$cwd"; cd "$back"; unset back; dirs'
alias   cd      'set old="$cwd"; chdir !*'
alias   pd      pushd
alias   pd2     pushd +2
alias   pd3     pushd +3
alias   pd4     pushd +4
alias   tset    'set noglob histchars="";eval `tset -s !*`; unset noglob histc
hars'
if ($?prompt && -x /usr/bin/id ) then
 if (`/usr/bin/id -u` == 0) then
  set prompt="`hostname -s`# "
 else
  set prompt="`hostname -s`% "
 endif
endif
umask 022

Ajouter le Shell BASH

Nous allons ajouter le Shell BASH - plus pratique - et cela, à partir d’un binaire précompilé NetBSD, l’installer avec la commande suivante :

# pkg_add –v bash
...
missing: ./share/nls/uk_UA.KOI8-U (created)
missing: ./share/nls/uk_UA.ISO_8859-1 (created)
missing: ./share/skel (created)
Attempting to record package into /var/db/pkg/bash-2.05nb1.
Package bash-2.05nb1 registered in /var/db/pkg/bash-2.05nb1
ftp> close
#

Contrôle de l’installation du Shell BASH

Vérifiez l'installation et paramétrez le nouveau Shell BASH comme Shell par défaut pour root.
Remarque : Le prompt # sera remplacé par bash-2.05 .

# pkg_info
pkg_info: disabling PKG_PATH when operating on all packages.
bash-2.05nb1 The GNU Bourne Again Shell
# usermod -c "" -s /usr/pkg/bin/bash root

Vous devez modifier votre fichier d’environnement personnel .profile (Shell SH et BASH) et ainsi avoir le même environnement qu’avec le .cshrc (Shell CSH). Modifiez le fichier .profile à la racine / . Il doit être comme suit :

# $NetBSD: dot.profile,v 1.15.6.1 2002/12/07 21:59:17 he Exp $
export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/pkg/sbin:/usr/pkg/bin
export PATH=${PATH}:/usr/X11R6/bin:/usr/local/sbin:/usr/local/bin
export BLOCKSIZE=1k PKG_PATH=ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6/cobalt/All;export PKG_PATH CVSROOT=:pserver:anoncvs@anoncvs.NetBSD.org:/cvsroot;export CVSROOT CVS_RSH=ssh;export CVS_RSH
if [ -x /usr/bin/tset ]; then
 eval `tset -sQrm 'unknown:?unknown'`
fi
umask 022
#ulimit -c 0
export ENV=/root/.shrc
# Do not display in 'su -' case
if [ -z "$SU_FROM" ]; then
 echo "We recommend creating a non-root account and using su(1) for root access."
fi

Installation de PERL

Le package binaire PERL est important pour les installations et plusieurs manières sont offertes à l’administrateur pour l’installer. Essayez dans un premier temps de l’installer avec un package binaire comme suit :

# pkg_add -v perl
parsing: ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6/cobalt/All
path: ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6/cobalt/All increasing RLIMIT_NOFILE to max. 1772 open files
trying PKG_PATH ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6/cobalt/All Spawning FTP coprocess
ftp -detv ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6/cobalt/All/
ftp> prompt off
...
#

Dans le cas où cette installation échoue alors téléchargez les codes sources de PERL (PERL/CPAN) à l’adresse suivante pour les compiler directement : ftp://ftp.funet.fi/ ; le répertoire est : pub/CPAN/src . Nous prendrons la version stable 5.8.7 pour notre étude dans le répertoire et procéderons à sa compilation.
Remarque : Depuis les derniers Fixes de 2005, le PERL 5 (5.8.7nb6) est automatiquement re-installé à la mise à jour.

# ./configure.gnu
# make
# make test
# make install

Disposer des codes sources des packages NetBSD

Pour effectuer les mises à jour, il est très utile de récupérer les packages sources. Vous pouvez récupérer tous les codes sources des packages NetBSD afin d’en disposer sur votre machine. Il existe 2 méthodes : La récupération s’effectue à partir du serveur CVS NetBSD ou directement en téléchargeant le fichier /pub/BSD/NetBSD/packages/pkgsrc.tar.gz .
Rappel : Vous devez avoir de la place sur le disque. On indique dans le fichier .cshrc les variables d’environnement suivantes.
Remarque : On spécifie la version de NetBSD ; dans notre cas c’est la 1.6.

setenv PKG_PATH ftp://ftp.netbsd.org/pub/NetBSD/packages/1.6/cobalt/All
setenv CVSROOT :pserver:anoncvs@anoncvs.netbsd.org:/cvsroot

Connectez-vous au serveur CVS avec les commandes suivantes :

# cd /usr
# cvs login
(Logging in to anoncvs@anoncvs.netbsd.org) CVS password: anoncvs
# cvs checkout -PA pkgsrc

Un répertoire /usr/pkgsrc sera créé pour réceptionner les codes sources de tous les packages disponibles pour la version NetBSD demandée (ici la version 1.6). Attendre la fin de la mise à jour qui défile...

Télécharger les codes sources des packages NetBSD

Nous utiliserons le protocole FTP pour télécharger le fichier pkgsrc.tar.gz. Ce fichier comprend tous les sources actualisés de tous les packages (par conséquence de la dernière version de NetBSD). Connectez-vous au serveur FTP de NetBSD et téléchargez le fichier avec les commandes suivantes :

# ftp
ftp> open ftp.NetBSD.org
user : anonymous
password: xxxx@domain.fr
...
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> binary
200 Type set to I.
ftp> cd pub/NetBSD/NetBSD-current/tar_files
250 CWD command successful.
ftp> lcd /u/SOURCES
Local directory now /u
ftp> get pkgsrc.tar.gz
local: pkgsrc.tar.gz remote: pkgsrc.tar.gz
229 Entering Extended Passive Mode (|||53033|)
150 Opening BINARY mode data connection for 'pkgsrc.tar.gz' (24660673 bytes).
40% |**************       |  9830 KB   68.73 KB/s    03:27 ETA
ftp> bye
221-Data traffic for this session was 24660673 bytes in 1 file.
Total traffic for this session was 24663765 bytes in 1 transfer.
221 Thank you for using the FTP service on ftp.NetBSD.org.
#

Le fichier téléchargé se trouve dans le répertoire /u. Il faut le décompresser vers le répertoire de destination /usr. Assurez-vous que le répertoire /usr/pkgsrc est inexistant ; dans le cas contraire effacez le. Attendre la décompression de tout le fichier ; vous devez voir défiler toute l’arborescence...

# cd /u/SOURCES
# tar -xzvpf pkgsrc.tar.gz -C /usr

Mise à jour des package tools

Mettre à jour le fichier pkgtools en veillant à faire un nettoyage avant. Supprimez la variable d’environnement PKG_PATH avec unset avant d’effectuer ces mises à jour de packages puis installez...

# cd /usr/pkgsrc/pkgtools/pkg_install
# make clean
===> Cleaning for pkg_install-20050718
# unset PKG_PATH
# make install cd /usr/pkgsrc/security/audit-packages
===> *** No /usr/pkgsrc/distfiles/pkg-vulnerabilities file found, ===> *** skipping vulnerability checks. To fix, install
===> *** the pkgsrc/security/audit-packages package and run
===> *** '/usr/pkg/sbin/download-vulnerability-list'.
===> Extracting for pkg_install-20050718
===> Patching for pkg_install-20050718
===> Overriding tools for pkg_install-20050718
===> Creating toolchain wrappers for pkg_install-20050718
===> Configuring for pkg_install-20050718
...
#

Remarque: Si l’installation finale échoue alors le message suivant peut apparaître :

...
Stop.
make: stopped in /usr/pkgsrc/pkgtools/pkg_install
*** Error code 1
Stop.
make: stopped in /usr/pkgsrc/pkgtools/pkg_install
#

Vérifiez la log dans le répertoire de travail work.
Remarque : Vous pouvez forcer l’installation dans ce répertoire (work/pkg_install-20050718) :

# cd work/pkg_install-20050718
# vi config.log
# pwd
/usr/pkgsrc/pkgtools/work/pkg_install-20050718
# make install
...
/usr/bin/install -c -o root -g wheel -m 444 linkfarm.cat1 /usr/share/man/cat1/linkfarm.0
/usr/bin/install -c -o root -g wheel -m 444 pkg_view.1 /usr/share/man/man1/pkg_view.1
/usr/bin/install -c -o root -g wheel -m 444 pkg_view.cat1 /usr/share/man/cat1/pkg_view.0
#

Mise à jour de la sécurité du système d'exploitation

Il va falloir mettre à jour la sécurité du système NetBSD 1.6.x. La liste des packages vulnérables est actualisée régulièrement. Supprimez la variable d’environnement PKG_PATH avec unset avant d’effectuer ces mises à jour. Pour la version 3.0, ce n’est pas nécessaire. Se positionner dans le répertoire suivant /usr/pkgsrc/pkgtools/pkg_install :

# make install /usr/pkg/sbin/download-vulnerability-list
 

Remarque : Paramétrez le fichier de configuration /etc/mk.conf nécessaire à la commande make, et indiquez que vous n’autorisez pas les packages vulnérables (voir la configuration par défaut : /usr/pkgsrc/mk/defaults/mk.conf).

ALLOW_VULNERABLE_PACKAGES=NO

Mise à jour du Kernel

Se positionner dans le répertoire suivant /usr/pkgsrc/sysutils/adjustkernel :

# cd /usr/pkgsrc/sysutils/adjustkernel
# make install

Installation de Samba

Téléchargez les codes sources de Samba : Avant d’installer le package Samba, récupérez les derniers codes sources sur un serveur FTP. Connectez-vous à un serveur FTP officiel ou mirroir samba.org et téléchargez le fichier (samba3.0.20b) avec les commandes suivantes :

# ftp
ftp> open ftp.easynet.be
user : anonymous
password: xxxx@domain.fr
...
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> binary
200 Type set to I.
ftp> cd samba
250 CWD command successful.
ftp> lcd /u/SOURCES
Local directory now /u
ftp> get samba-latest.tar.gz
local: samba-latest.tar.gz remote: samba-latest.tar.gz
229 Entering Extended Passive Mode (|||39751|)
150 Opening BINARY mode data connection for samba-latest.tar.gz (17165513 bytes)
100% |***************************| 16763 KB 227.48 KB/s 00:00 ETA
226 Transfer complete.
17165513 bytes received in 01:49 (152.74 KB/s)
ftp> bye
221 Goodbye.
#

Compilation de Samba

Se positionner dans le répertoire d’accueil des fichiers FTP ; décompressez le fichier et l’extraire dans le répertoire standard /usr. Se positionner dans le répertoire des codes sources et procédez à la compilation.

# cd /u/SOURCES
# tar -xzvpf samba-latest.tar.gz -C /usr
# cd /usr/samba3.0.20b/sources
# ./configure --prefix=/usr/local/samba --with-msdfs
# make
# make install

Configuration de Samba

Se positionner dans le répertoire des codes sources Samba et copier le fichier de configuration des exemples dans le répertoire final d’installation. Modifiez le fichier de configuration smb.conf ; voir les options possibles dans la documentation HowTo de Samba. Vous pouvez tester les paramètres que vous avez modifiés avec la commande testparm de Samba.

# cd /usr/samba3.0.20b/sources/examples
# cp ./smb.conf.default /usr/local/samba/lib/smb.conf
# vi /usr/local/samba/lib/smb.conf
# cd /usr/local/samba/bin
# ./testparm
Load smb config files from /usr/local/samba/lib/smb.conf Processing section "[public]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
[public]
#
workgroup = MYUXGROUP
server string = Samba Server
log file = /usr/local/samba/var/log.%m
max log size = 50
dns proxy = No
hosts allow = 192.168.0., 127.
comment = repertoire public
path = /u/public
read only = No
guest ok = Yes


Démarrage automatique des services Samba

Ajoutez les services Samba au démarrage du serveur. Modifiez le fichier /etc/rc.local en ajoutant les lignes suivantes.

# SAMBA
echo "SAMBA "
/usr/local/samba/sbin/nmbd -D
/usr/local/samba/sbin/smbd -D

Ajout d'un utilisateur d'usage Samba

Ajoutez un utilisateur et un mot de passe associé pour permettre la connexion au serveur Samba au travers du réseau de type Microsoft... Si c’est le première fois que vous ajoutez un utilisateur Samba, un message apparaît pour avertir de la création du fichier smbpasswd.

# /usr/local/samba/bin/smbpasswd -a usrwin
New SMB password: xxxxxxx
Retype new SMB password: xxxxxxx
startsmbfilepwent_internal: file /usr/local/samba/private/smbpasswd did not exist. File successfully created.
account_policy_get: tdb_fetch_uint32 failed for field 1 (min password length), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 2 (password history), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 3 (user must logon to change password), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 4 (maximum password age), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 5 (minimum password age), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 6 (lockout duration), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 7 (reset count minutes), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 8 (bad lockout attempt), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 9 (disconnect time), returning 0
account_policy_get: tdb_fetch_uint32 failed for field 10 (refuse machine password change), returning 0
Added user usrwin.
#

Installation de la base de données Mysql

L’installation de la base de données Mysql impose la mise à disposition de différents composants ; la plupart sont déjà disponibles dans le répertoire des codes sources (/usr/pkgsrc). NetBSD effectue les mises à jour automatiquement et complète les dépendances si nécessaire. La version utilisée sera la version Mysql Server 4.1.15. Le client Mysql sera automatiquement installé.

Installation de PThread

Le package PThread (Mit-pthread dans le cas de NetBSD) est indispensable ; il autorise le multi-threading, fonction très utile pour les performances du service Mysql. D’autres outils ou librairies seront en même temps actualisées (ex: libtools, ...).

# unset PKG_PATH
# cd /usr/pkgsrc/devel/pth
# make
# make install

Installation du service Mysql 4 Server

Passons à l’installation de Mysql 4 proprement dite ; la version 4.1.15 de Mysql-Server est recommandée. Créer l’environnement Mysql (utilisateur et privilèges) ; en général, après l’installation, le répertoire de travail de la base de données Mysql se trouve dans /var/mysql. Le fichier de configuration par défaut de Mysql se trouve dans les packages des codes sources ; copiez l’original my-medium.cnf dans le répertoire /etc en le renommant /etc/my.cnf.

# unset PKG_PATH
# cd /usr/pkgsrc/databases/mysql4-server
# make
# make install
# useradd –G wheel mysql
# chmod –R 775 /var/mysql
# chown –R mysql /var/mysql
# chgrp –R wheel /var/mysql
# cp /usr/pkgsrc/databases/mysql4-server/work/mysql-4.1.15/support-files/my-medium.cnf /etc/my.cnf

Le fichier /etc/my.cnf doit être comme suit ; l’exemple ci-après montre une partie du fichier :

# Example MySQL config file for medium systems. #
# This is for a system with little memory (32M - 64M) where MySQL plays
# an important part, or systems up to 128M where MySQL is used together with # other programs (such as a web server)
#
# You can copy this file to
# /etc/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is @localstatedir@) or
# ~/.my.cnf to set user-specific options. #
# In this file, you can use all long options that a program
# If you want to know which options a program supports, run # with the "--help" option.
# The MySQL server
[mysqld]
#port = @MYSQL_TCP_PORT@
#socket = @MYSQL_UNIX_ADDR@
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
# Don't listen on a TCP/IP port at all. This can be a security enha
# if all processes that need to connect to mysqld run on the same h
# All interaction with mysqld must be made via Unix sockets or namelays
# Note that using this option without enabling named pipes on Windother with
# (via the "enable-named-pipe" option) will render mysqld useless! #
#skip-networking
...
# The following
[client]
#password
#port
#socket
options will be passed to all MySQL clients
= your_password
= @MYSQL_TCP_PORT@
= @MYSQL_UNIX_ADDR@
port=3306
socket=/tmp/mysql.sock
# Here follows entries for some specific programs

Une fois que vous avez installé et préparé Mysql, vous devez initialiser les tables de droits. Le script mysql_install_db initialise la base de données Mysql qui contient les tables de droits et la base test que vous pouvez utiliser pour diverses manipulations (formation au requêtage SQL). Ce script va aussi créer l'utilisateur root et un compte anonyme. Ces deux comptes sont créés sans mot de passe. Il faudra veiller à protéger votre base de données en y affectant des mots de passe cryptés.

# ./mysql_install_db --user=mysql --force

Lancez le serveur et assurez-vous que tout fonctionne bien.

# cd /usr/pkg/bin 
# ./mysql_install_db --user=mysql --force 
# ./mysqld_safe --user=mysql & 
# ./mysqladmin version 
./mysqladmin  Ver 8.41 Distrib 4.1.15, for -netbsd on mipsel
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL license

Server version          4.1.15-log
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 2 min 2 sec

Threads: 1  Questions: 1  Slow queries: 0  Opens: 11  Flush tables: 1  Open tables: 5  Queries per second avg: 0.008
#

Vous pouvez vérifier la présence des tables principales...

# mysqlshow
+-----------+
| Databases |
+-----------+
| mysql     |
| test      |
+-----------+

Vous pouvez effectuer diverses opérations avec la commande mysqladmin, dont celle d’arrêter le serveur Mysql.

# cd /usr/pkg/bin
# ./mysqladmin -u root shutdown
[1]+  Done  mysqld_safe --user=mysql --skip-grant-tables  (wd: /etc)
(wd now: /usr/pkg/bin)

Vous pouvez démarrer le serveur Mysql de manière standard.

# ./mysqld_safe --user=mysql &

Pour démarrer le serveur Mysql sans prendre en compte les tables de privilèges... très utile pour effectuer des manipulations de maintenance sur les privilèges.

# ./mysqld_safe --user=mysql --skip-grant-tables &

Sécurisez l’accès à la base de données

Utilisez la commande mysqladmin pour affecter un mot de passe à partir du Shell ; puis testez l’accès sans indiquer de mot de passe. L’accès est normalement refusé. Testez à nouveau en tapant le mot de passe pour vous connecter à la base de données :

# ./mysqladmin -u root password ‘pyramid’
# ./mysql -u root mysql
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# ./mysql -u root –p
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 2 to server version: 4.1.15-log
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> quit
bye
#

Attention : Si vous utilisez le client Mysql pour travailler avec Php (commande Php mysql_connect();), vous devez dégrader le cryptage du mot de passe Mysql. En effet, à partir des versions 4.1.x et plus, la codification du mot de passe est invalide avec Php.

# mysql -u root -h qube2 –p
Enter password: *******
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 64 to server version: 4.1.15-log
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> use mysql
Database changed
mysql> SET PASSWORD FOR 'root'@'qube2' = OLD_PASSWORD('xxxxxx');
Query OK, 0 rows affected (0.02 sec)
mysql>

Vous pouvez ajouter d’autres utilisateurs. Voici un exemple de requête Mysql pour insérer directement dans les tables système.

mysql> INSERT INTO `user` ( `Host` , `User` , `password` , `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` , `ssl_type` , `ssl_cipher` ,
`x509_issuer` , `x509_subject` , `max_questions` , `max_updates` ,
`max_connections` ) VALUES ('qube2', 'root', '', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', '', '', '', '', '0', '0', '0');

N’oubliez pas d’affecter le mot de passe en mode dégradé...

Démarrage automatique du serveur Mysql.

# cp /usr/pkg/bin/mysql.server /etc/rc.d/mysql
# chmod +x /etc/rc.d/mysql

Voici l’exemple d’une page php pour tester la connexion à une base Mysql :

<?
echo "TEST";
define ("MYSQL_HOST","myhost");
define ("MYSQL_USER","root");
define ("MYSQL_PASSWORD","xxxxxx");
define ("MYSQL_DATABASE","mydatabase");
// ****************************************
$GLOBALS['DEFAULT_HOSTSQL']=MYSQL_HOST;
$GLOBALS['DEFAULT_USERSQL']=MYSQL_USER;
$GLOBALS['DEFAULT_PASSWDSQL']=MYSQL_PASSWORD;
$GLOBALS['DEFAULT_DATABASE']=MYSQL_DATABASE;
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>TEST MYSQL</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?
echo "Connexion base MySQL<br>";
echo "Host=".$GLOBALS['DEFAULT_HOSTSQL']."<br>";
echo "User=".$GLOBALS['DEFAULT_USERSQL']."<br>";
echo "Pass=".$GLOBALS['DEFAULT_PASSWDSQL']."<br>";
echo "DB=".$GLOBALS['DEFAULT_DATABASE']."<br>"; $currentDatabase=mysql_connect($GLOBALS['DEFAULT_HOSTSQL'],$GLOBALS['DEFAULT_USERSQL'],$GL OBALS['DEFAULT_PASSWDSQL']) or print("ERR-1: Connexion serveur MYSQL impossible."); mysql_select_db($GLOBALS['DEFAULT_DATABASE'],$currentDatabase) or print("ERR-2: Ouverture Base MYSQL impossible.");
?>
</body>
</html>

Installation du service Apache

Pourquoi utiliser APACHE2 ?

Threads sur UNIX

Sur les systèmes UNIX, Apache peut s'exécuter selon un modèle hybride multi-processus et multi-threads, en employant les threads selon la norme POSIX. Ceci améliore les performances.

Nouveau système de construction

Le système de construction a été entièrement réécrit et repose sur autoconf et libtool. Cela rend le système de configuration plus semblable aux autres paquetages.

Support multiprotocole

Apache possède maintenant une infrastructure afin de servir de multiples protocoles. mod_echo a été écrit comme exemple de ces nouvelles fonctions.

Meilleur support des plates-formes autres qu'UNIX

Apache 2.0 est plus rapide et rendu enfin plus stable sur les plates-formes non Unix telles que BeOS, OS/2, et Windows. Avec l'introduction des modules multi traitements (MPMs) spécifiques aux plates-formes et l'exécuteur portable Apache (APR), le code pour ces plates-formes est réalisé en employant leurs API natives, permettant ainsi d'éviter les couches d'émulation POSIX souvent boguées et peu performantes.

Nouvelle API Apache

L'API pour les modules de la version 2.0 a changé de manière importante. Beaucoup de problèmes d'ordonnancement des modules existants dans la version 1.3 devraient disparaître. La version 2.0 gère ceci de manière automatique, et l'ordonnancement des modules s'effectue selon une fonction d'accrochage afin de permettre une plus grande flexibilité.

Installation d'Apache2 à partir des codes sources

Procédons à l’installation proprement dite de Apache2. Notez qu’après l’installation, nous nettoyons l’installation ainsi que les dépendances.

# unset PKG_PATH
# cd /usr/pkgsrc/www/apache2
# make
# make install
# make clean
# make clean-depends

Préparez Apache2 pour accepter le module Php4. Editez le fichier de configuration de Apache (httpd.conf) pour y insérer le chargement du module Php4. Ci-après le fichier en exemple :

# vi /usr/pkg/etc/httpd/httpd.conf
LoadModule php4_module /usr/pkg/lib/httpd/mod_php4.so AddType application/x-httpd-php .php
# Statically compiled modules (those listed by `httpd -l') do not
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule php4_module /usr/pkg/lib/httpd/mod_php4.so
#
# ExtendedStatus controls whether Apache will generate "full" statuocess as a
# information (ExtendedStatus On) or just basic information (Extend
# Off) when the "server-status" handler is called. The default is Olt'
#
#ExtendedStatus On
...
#
# AddType allows you to add to or override the MIME configuration
# file mime.types for specific file types.
#
#AddType application/x-tar .tgz
AddType application/x-httpd-php .php
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
# Despite the name similarity, the following Add* directives have
# to do with the FancyIndexing customization directives above.
#
#AddEncoding x-compress .Z
#AddEncoding x-gzip .gz .tgz
#
...

Installation du langage de programmation Php4

Nous allons passer à l’installation de Php4, module indispensable pour permettre l’utilisation de sites web dynamiques. Nous allons inclure l’interaction avec la base de données Mysql (nous aurions pu aussi choisir la base de données Postgresql). Installons le Php avec les modules ZLIB et GD. Notez que pour NetBSD 3.0 c’est Php 4.4.4.

  • Compiler libxml (libxml2)
  • Compiler jpeg (jpeg) et libjpeg (ljpeg)
  • Compiler png (libpng)
  • Compiler mcrypt (mcrypt) et lcrypt (libmcrypt)
  • Compiler UW-imap (imap-uw)

Attention : Faire des liens symboliques car certains fichiers header (exemple : png.h) devront être copiés dans /usr/include.

# ln –s /usr/pkg/lib/libjpeg.a /usr/lib/libjpeg.a
# ln –s /usr/pkg/lib/libjpeg.so /usr/lib/libjpeg.so
# cp /usr/pkgsrc/png/work/libpng-1.2.12/png.h /usr/include

Installer Php4 à partir des codes sources

Pour compiler Php4, vous devez aussi rendre le module Php disponible pour Mysql. Editez le fichier Makefile.php.

# vi /usr/pkgsrc/www/php4/Makefile.php

Le fichier makefile.php doit être comme suit. Activez l’option CONFIGURE_ARGS+= --with-mysql. Vous pouvez aussi indiquer d’autres clauses de compilations nécessaires pour un bon fonctionnement comme les librairies gd, png, zlib, ...

# $NetBSD: Makefile.php
.include "../../www/php4/Makefile.common"
# revision of the core PHP interpreter package
DISTINFO_FILE=${.CURDIR}/../../www/php4/distinfo
PATCHDIR=${.CURDIR}/../../www/php4/patches
BUILD_DEFS+=USE_INET6
USE_LIBTOOL=YES
GNU_CONFIGURE=YES
#CONFIGURE_ARGS+= --without-mysql
CONFIGURE_ARGS+= --enable-exif
CONFIGURE_ARGS+= --enable-track-vars
CONFIGURE_ARGS+= --enable-calendar
CONFIGURE_ARGS+= --enable-magic-quotes
CONFIGURE_ARGS+= --enable-trans-sid
CONFIGURE_ARGS+= --enable-ftp
CONFIGURE_ARGS+= --enable-inline-optimization
CONFIGURE_ARGS+= --with-mcrypt=/usr/pkg
CONFIGURE_ARGS+= --with-gd
CONFIGURE_ARGS+= --with-png
CONFIGURE_ARGS+= --with-ttf
CONFIGURE_ARGS+= --with-mhash=/usr/pkg
CONFIGURE_ARGS+= --with-dom
CONFIGURE_ARGS+= --enable-gd-native-ttf
CONFIGURE_ARGS+= --with-png-dir=/usr
CONFIGURE_ARGS+= --with-jpeg-dir=/usr
CONFIGURE_ARGS+= --with-tiff-dir=/usr
CONFIGURE_ARGS+= --with-expat
CONFIGURE_ARGS+= --enable-file-pro
CONFIGURE_ARGS+= --enable-wddx
CONFIGURE_ARGS+= --with-zlib-dir=/usr
CONFIGURE_ARGS+= --with-freetype
CONFIGURE_ARGS+= --enable-bcmath
CONFIGURE_ARGS+= --with-imap
CONFIGURE_ARGS+= --with-pdflib=/usr/pkg
CONFIGURE_ARGS+= --with-pear
CONFIGURE_ARGS+= --with-gettext
CONFIGURE_ARGS+= --with-mysql
CONFIGURE_ARGS+= --without-iconv

Procédez à la compilation de Php4.

# unset PKG_PATH
# cd /usr/pkgsrc/www/php4
# make
# make install
# make clean
# make clean-depends

Nota : Vous aurez peut-être besoin de certains packages tels que php-zlib (/usr/pkgsrc/archivers) ; compilez et installez.

Installer le module Php4 pour Apache2 à partir des codes sources

Installez Php pour Apache (php4-mod). Allez dans les packages codes sources ap-php et procédez à la compilation du module Php pour Apache.

# cd /usr/pkgsrc/www/ap-php
# unset PKG_PATH
# cd /usr/pkgsrc/www/ap-php
# make
# make install

Installer le module Php pour Mysql à partir des sources. Allez dans les packages codes sources php4-mysql :

# cd /usr/pkgsrc/www/php4-mysql
# unset PKG_PATH
# cd /usr/pkgsrc/www/php4-mysql
# make
# make install
# make clean
# make clean-depends

Configuration d'Apache

Nous allons passer à la configuration du serveur Apache. Nous allons créer dans un premier temps, un répertoire d’accueil (www) dans le répertoire système /var. Ce répertoire contiendra les sites web ainsi qu’une copie des répertoires de l’installation par défaut.

# mkdir /var/www
# chmod –R 775 /var/www
# chown –R www /var/www
# chgrp –R wheel /var/www

Modifiez le fichier de configuration httpd.conf pour indiquer un nouveau répertoire d’accueil. Nous allons aussi modifier différentes options pour paramétrer le serveur en configuration de production (sécurité). Notez que nous ne touchons pas à la directive ServerRoot.

# Based upon the NCSA server configuration files originally by Rob McCool.
# This is the main Apache server configuration file. It contains the
# configuration directives that give the server its instructions.
# See <URL:http://httpd.apache.org/docs-2.0/>
# for detailed information about the directives.
#
### Section 1: Global Environment
#
# The directives in this section affect the overall operation of Apache,
# such as the number of concurrent requests it can handle or where it
# can find its configuration files.
#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
# NOTE! If you intend to place this on an NFS (or otherwise network)
# mounted filesystem then please read the LockFile documentation (available
# at <URL:http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile>)
# you will save yourself a lot of trouble.
#
# Do NOT add a slash at the end of the directory path.
ServerRoot "/usr/pkg"
...

Indiquez précisément le port du serveur web qui est habituellement le port 80. Commentez les autres options Listen standards.

#
# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the <VirtualHost>
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80

Indiquons le nouveau répertoire des documents web (répertoire d’accueil). Commentez l’ancienne directive DocumentRoot.

# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
#DocumentRoot "/usr/pkg/share/httpd/htdocs"
DocumentRoot "/var/www"
...
#
# This should be changed to whatever you set DocumentRoot to.
#
#<Directory "/usr/pkg/share/httpd/htdocs">
<Directory "/var/www">

Installation de l'utilitaire Phpmyadmin

Nous allons passer à l’installation de Phpmyadmin.  Cet outil permet de gérer la base de données Mysql à partir d’un portail web sécurisé. Très utile pour la supervision à distance.

Installer Phpmyadmin à partir des codes sources

Procédez à la compilation du module Phpmyadmin. Transférez le site Phpmyadmin dans le répertoire d’accueil du serveur web.

# unset PKG_PATH
# cd /usr/pkgsrc/databases/phpmyadmin
# make
# make install
# make clean
# make clean-depends
# cp –r /usr/pkg/share/phpmyadmin /var/www
# chown –R www /var/www/phpmyadmin
# chmod –R 775 /var/www/phpmyadmin

Configurez le fichier de configuration config.inc.php pour régler les accès à la base de données Mysql.

...
$cfg['Servers'][$i]['host']          = 'localhost'; // MySQL hostname or IP address
$cfg['Servers'][$i]['port']          = '';          // MySQL port - leave blank for default port
$cfg['Servers'][$i]['socket']        = '';          // Path to the socket - leave blank for defaul
t socket
$cfg['Servers'][$i]['connect_type']  = 'tcp';       // How to connect to MySQL server ('tcp' or 's
ocket')
$cfg['Servers'][$i]['extension']     = 'mysql';     // The php MySQL extension to use ('mysql' or 'mysqli')
$cfg['Servers'][$i]['compress']      = FALSE;       // Use compressed protocol for the MySQL connection                                // (requires PHP >= 4.3.0)
$cfg['Servers'][$i]['controluser']   = '';          // MySQL control user settings
                                                    // (this user must have read-ly
$cfg['Servers'][$i]['controlpass']   = '';          // access to the "mysql/user"
                                                    // and "mysql/db" tables).
                                                    // The controluser is also
                                                    // used for all relational
                                                    // features (pmadb)
$cfg['Servers'][$i]['auth_type']     = 'config';    // Authentication method (config, http or cook
ie based)?
$cfg['Servers'][$i]['user']          = 'root';      // MySQL user
$cfg['Servers'][$i]['password']      = '';          // MySQL password (only needed
                                                    // with 'config' auth_type)
$cfg['Servers'][$i]['only_db']       = '';          // If set to a db-name, only
                                                    // this db is displayed in left frame
                                                    // It may also be an array of db-names, where
sorting order is relevant.
...

Vous pouvez ensuite accéder au site Phpmyadmin en tapant dans un navigateur l’adresse comme l’exemple ci-après : http://myhost/phpmyadmin/
Attention : Le fichier de configuration de la version 2911 est un peu différent.

<?php
/* $Id: config.sample.inc.php 9673 2006-11-03 09:05:54Z nijel $ */
// vim: expandtab sw=4 ts=4 sts=4:
...
$cfg['blowfish_secret'] = 'xxxxxxx'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
/* 
 * Servers configuration
 */
$i = 0;
/* 
 * First server
 */
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = 'qube2';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysql';
/* User for advanced features */
#$cfg['Servers'][$i]['controluser'] = 'pmausr';
#$cfg['Servers'][$i]['controlpass'] = 'pmapass';
$cfg['Servers'][$i]['controluser'] = '';
$cfg['Servers'][$i]['controlpass'] = '';
/* Advanced phpMyAdmin features */
$cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
$cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
$cfg['Servers'][$i]['relation'] = 'pma_relation';
$cfg['Servers'][$i]['table_info'] = 'pma_table_info';
$cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
$cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
$cfg['Servers'][$i]['column_info'] = 'pma_column_info';
$cfg['Servers'][$i]['history'] = 'pma_history';
/* 
 * End of servers configuration
 */
...
?>

Conclusion

L'installation est terminée. J'espère que ce guide vous apportera une première expérience avec le Qube2 sous NetBSD, tout en profitant d'une installation complète de AMP.

Un site web hébergé sur un Qube2...

Install AMP sur Qube2

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *