Installer son propre serveur web (part.3)

Publié par TB dans: Computing | HowTo | Techniques informatiques

Le 10 juin 2009, modifié le 18 juin 2009 à 10 h 44 min, 466 visites

 

Installation et administration d’un serveur WEB sous FREEBSD

 

Ce billet fait suite au billet précédent Installer son propre serveur web (part.2)

 
Chapitres « Installer son propre serveur web »

 

Serveur de base de données MySQL

MySQL est un serveur de bases de données relationnelles, multi-thread et multi-utilisateur. MySQL fait partie du trio AMP: Apache, MySQL, PHP. Le couple PHP/MySQL est très utilisé dans le monde WEB et est proposé par la majorité des hébergeurs.

Nous avons choisis la version « 5 » dans un souci de compatibilité pour les produits WEB du marché. 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 « ports » (/usr/ports). FreeBSD effectue les mises à jour automatiquement et complète les dépendances si nécessaires.
Présentation détaillée de MySQL
Montée en charge et flexibilité

Le serveur de base de données MySQL offre les meilleures performances en termes de montée en charge. Il est capable de gérer des applications embarquées n’utilisant qu’ 1 Mo de mémoire comme des entrepôts de données de grande taille contenant plusieurs téraoctets d’information. La polyvalence des plates-formes est l’un des points forts de MySQL, qui fonctionne sur toutes les déclinaisons de Linux, UNIX ou Windows. Et, bien sûr, sa nature open source autorise une personnalisation complète pour les utilisateurs désirant ajouter des fonctionnalités spécifiques au serveur de base de données.

Des performances élevées

Une architecture unique de moteur de stockage permet aux professionnels des bases de données de configurer le serveur MySQL de façon spécifique pour certaines applications, avec pour résultat des performances stupéfiantes. Que l’application envisagée soit un système de traitement de transactions à haut débit ou un site Web à fort volume servant un milliard de requêtes par jour, MySQL peut répondre aux demandes de performance les plus exigeantes. Grâce à ses utilitaires de charge à haute vitesse, ses mémoires cache caractéristiques, son indexation en texte intégral et à d’autres mécanismes d’amélioration des performances, MySQL offre la puissance de feu nécessaire aux systèmes professionnels névralgiques d’aujourd’hui.

Haute disponibilité

Une fiabilité à toute épreuve et une disponibilité constante sont la marque de fabrique de MySQL. C’est pourquoi ses utilisateurs lui font confiance pour garantir un fonctionnement sans faille de leurs systèmes. MySQL offre une grande diversité d’options de haute disponibilité, depuis des configurations de réplication maître/esclave à haut débit jusqu’aux serveurs spécialisés en clusters offrant des fonctions de basculement instantané, en passant par des solutions de haute disponibilité proposées par nos partenaires.

Un support transactionnel solide

MySQL offre l’un des moteurs de bases de données transactionnelles les plus puissants du marché. Il est pourvu de fonctionnalités complètes de support de transaction ACID (atomique, constant, isolé, durable), d’une fonction de verrouillage de ligne illimitée, de capacités de transactions distribuées et d’un support de transactions multi-version dans lequel les opérations de lecture ne bloquent jamais celles d’écriture et vice-versa. L’intégrité complète des données est également assurée par une fonction d’intégrité référentielle via le serveur, par des niveaux spécialisés d’isolation de transactions et par la détection instantanée des blocages.

De puissantes fonctionnalités Web et d’entreposage de données

MySQL est le standard lorsqu’il s’agit de sites web à fort trafic en raison de son moteur de requêtes à hautes performances, de ses capacités d’insertion de données phénoménalement rapides et de ses fonctions web spécialisées telles que la recherche rapide en texte intégral. Ces mêmes capacités s’appliquent également aux environnements d’entrepôts de données, dans lesquels MySQL peut gérer de nombreux téraoctet qu’il s’agisse de serveurs simples ou d’architectures en déploiement horizontal (scale-out). Ses autres caractéristiques, par exemple les tables de mémoire principale, l’indexation du B-tree et du hachage ou les tables d’archives comprimées, qui ont pour effet de réduire les besoins de stockage jusqu’à 80%, font de MySQL une solution exceptionnelle pour les applications web comme pour les applications de business intelligence.

Une forte protection des données

La protection des données névralgiques d’une entreprise étant la tâche prioritaire des professionnels des bases de données, MySQL offre des fonctions de sécurité exceptionnelles qui garantissent une protection des données absolue. En matière d’authentification des bases de données, MySQL dispose de mécanismes puissants visant à s’assurer que seuls les utilisateurs autorisés ont accès au serveur de la base de données, avec la possibilité de bloquer les utilisateurs au niveau de la machine client. La prise en charge des protocoles SSH et SSL est également fournie afin de garantir des connexions sûres et sécurisées. Une infrastructure de privilèges d’objets granulaires a été intégrée, de façon à ce que les utilisateurs ne puissent voir que les données pour lesquelles ils disposent d’une autorisation. Par ailleurs de puissantes fonctions de chiffrement et de déchiffrement des données assurent la protection des données sensibles contre les accès non autorisés. Enfin, des utilitaires de sauvegarde et de récupération fournis par MySQL et par des éditeurs de logiciels tiers permettent d’effectuer des sauvegardes logiques et physiques ainsi que des opérations de récupération complètes ou ponctuelles.

Des fonctions complètes de développement d’applications

L’une des raisons pour lesquelles MySQL est la base de données open source la plus populaire au monde est qu’elle est adaptée à tous les besoins de développement d’applications. Au sein de la base de données, on pourra bénéficier de procédures stockées, de déclencheurs, de fonctions, de vues, de curseurs, d’un SQL à la norme ANSI, etc. Pour les applications embarquées, des bibliothèques de plug-ins sont disponibles pour intégrer la prise en charge des bases de données MySQL dans la quasi-totalité des applications. MySQL fournit également des pilotes (ODBC, JDBC, etc.) qui permettent à toutes les formes d’applications d’utiliser MySQL comme serveur préférentiel de gestion des données. MySQL offre aux développeurs d’applications, qu’ils travaillent en PHP, Perl, Java, Visual Basic ou .NET, tout ce dont ils ont besoin pour réussir le développement de leurs systèmes d’information pilotés par bases de données.

Facilité d’utilisation et d’administration

MySQL possède d’exceptionnelles capacités de démarrage rapide, le temps nécessaire pour installer le logiciel après l’avoir téléchargé n’excédant pas 15 minutes. Cette règle vaut aussi bien pour la plate-forme Microsoft Windows que pour Linux, Macintosh ou UNIX. Une fois l’installation terminée, les fonctions de gestion automatique, telles que l’extension d’espace automatique, le redémarrage automatique et les changements de configuration dynamiques, soulagent d’une grande partie du travail des administrateurs de bases de données déjà surchargés. MySQL contient également une suite complète d’outils de gestion graphique et de migration qui permettent aux DBA de gérer, de dépanner et de contrôler le fonctionnement de nombreux serveurs MySQL à partir d’un seul poste de travail. De nombreux éditeurs de logiciels tiers proposent également des outils pour MySQL capables de gérer des tâches allant de la conception de données et de l’ETL à l’administration de bases de données complète, en passant par la gestion des tâches et la surveillance des performances.

La liberté de l’open source alliée à un support 24 x 7

De nombreuses grandes entreprises hésitent à s’engager pleinement dans le monde des logiciels libres. Elles craignent de ne pas pouvoir bénéficier du même type de support ou du même "filet de sécurité" que celui qu’offrent les services professionnels sur lesquels elles s’appuient avec leurs logiciels propriétaires afin d’assurer le succès global de leurs applications stratégiques. La question de l’indemnisation est également souvent évoquée. Ces inquiétudes n’ont pas lieu d’être en ce qui concerne MySQL puisqu’un un support 24h/7j ainsi que des possibilités d’indemnisation sont disponibles via MySQL Network. MySQL n’est pas un projet open source typique dans la mesure où la totalité des logiciels appartiennent à MySQL AB, qui en assure également le support. C’est la raison pour laquelle un modèle unique de coûts et de support technique est proposé, combinant de façon exceptionnelle la liberté de l’open source et l’assurance de bénéficier d’un support de la plus haute qualité.

Un coût total de possession inférieur

En migrant vers MySQL leurs applications de bases de données existantes, ou en utilisant MySQL pour de nouveaux projets de développement, de nombreuses organisations réalisent des économies qui bien souvent peuvent atteindre des nombres à 7 chiffres. Grâce à l’utilisation du serveur de base de données MySQL et à des architectures scale-out tirant parti de matériels à faible coût, elles constatent qu’elles peuvent atteindre des niveaux de montée en charge et de performance stupéfiants, le tout pour un coût largement inférieur à celui demandé par les éditeurs de logiciels propriétaires. En outre, la fiabilité et la facilité d’administration de MySQL permettent aux administrateurs de base de données de ne plus perdre leur temps à régler des problèmes de performance ou d’interruptions de fonctionnement, pour pouvoir au contraire se concentrer sur des tâches plus stratégiques.

Compilation de PTHREAD pour le multi-threading MYSQL

Le package pthread (Mit-pthread dans le cas de NetBSD) est indispensable ; il autorise le multi-threading, fonction très utile pour MySQL. D’autres outils et librairies seront en même temps actualisés le cas échéant :

• Allez dans /usr/ports/devel/pth et compiler pth ; Au lancement du make, il vous sera demandé une option de compilation ; il faudra laisser l’option CFLAGS_OPTIMIZER cochée.

# cd /usr/ports/devel/pth
# make
# make install

Compilation de MySQL Server

• Passons à l’installation de MySQL proprement dite ; nous préférons la version 5.x à la version 6.x. C’est selon les besoins. Procédons à la compilation de la base de données.

# cd /usr/ports/databases/mysql51-server
# make
# make install

Installation de MySQL Server

• Le fichier de configuration par défaut de MYSQL se trouve dans les ports ; copiez my-medium.cnf.sh dans le répertoire /etc pour configurer MYSQL.

# cp /usr/ports/databases/mysql51-server/work/mysql-5.1.33/support-files/my-medium.cnf.sh
  /etc/my.cnf

Configuration de MySQL Server

• Le fichier /etc/my.cnf pourra être configuré comme suit ; il pourra être affiné par la suite grâce à des outils de tuning ; les paramétres suivants sont essentiels pour un bon fonctionnement en standard.

[client]
#password       = your_password
#port           = @MYSQL_TCP_PORT@
port            = 3306
#socket         = @MYSQL_UNIX_ADDR@
socket          = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
#port           = @MYSQL_TCP_PORT@
port            = 3306
#socket         = @MYSQL_UNIX_ADDR@
socket          = /tmp/mysql.sock

Remarque - veillez à ce que skip-networking soit commenter (désactivé) pour accepter l’accès distant à la base ; par défaut il est commenté.

Préparer la base de données

Une fois que vous avez installé et configuré MySQL, vous devez initialiser les tables de droits, lancer le serveur et vous assurer que tout fonctionne bien. Vous pouvez aussi configurer le démarrage et l’arrêt automatique du serveur.

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. Le script mysqld_safe lance le serveur mysqld.

• Veillez à être positionné dans le bon répertoire /usr/local/bin. Lancez l’installation de la base de données.

# cd /usr/local/bin
# ./mysql_install_db --user=mysql --force

• Les messages suivants apparaissent :

Installing MySQL system tables...
090605 16:53:25 [Warning] Forcing shutdown of 2 plugins
OK
Filling help tables...
090605 16:53:26 [Warning] Forcing shutdown of 2 plugins
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/usr/local/bin/mysqladmin -u root password 'new-password'
/usr/local/bin/mysqladmin -u root -h eserverx330-0 password 'new-password'
Alternatively you can run:
/usr/local/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.
See the manual for more instructions.You can start the MySQL daemon with:
cd /usr/local ; /usr/local/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql-test ; perl mysql-test-run.pl
Please report any problems with the /usr/local/bin/mysqlbug script!
The latest information about MySQL is available at http://www.mysql.com/
Support MySQL by buying support/licenses from http://shop.mysql.com/

• Lancez le service MYSQL pour tester le fonctionnement du serveur MYSQL.

# ./mysqld_safe --user=mysql &

• Les messages suivants apparaissent :

[1] 20814
[root@eserverx330-0 /usr/local/bin]#
090605 17:00:50 mysqld_safe Logging to '/var/db/mysql/eserverx330-0.err'.
090605 17:00:50 mysqld_safe Starting mysqld daemon with databases from /var/db/mysql
#

• Vous pouvez contrôler la version de MYSQL avec la commande suivante :

# ./mysqladmin version

• Les messages suivants apparaissent :

./mysqladmin  Ver 8.42 Distrib 5.1.33, for portbld-freebsd7.2 on i386
Copyright 2000-2008 MySQL AB, 2008 Sun Microsystems, Inc.
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          5.1.33-log
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 3 min 36 secThreads: 1  Questions: 1  Slow queries: 0  Opens: 15 
  Flush tables: 1  Open tables: 8  Queries per second avg: 0.4

• Vous pouvez vérifier la présence des tables système de MYSQL :

# mysqlshow

• Les messages suivants apparaissent :

+--------------------+
|     Databases      |
+--------------------+
| information_schema |
| mysql              |
| test               |
+--------------------+

Opérations de maintenance

• Vous pouvez effectuer diverses opérations avec la commande mysqladmin ; par exemple, arrêter le serveur MySQL.

# cd /usr/local/bin
# ./mysqladmin -u root shutdown

• Les messages suivants apparaissent :

090605 17:11:13 mysqld_safe mysqld from pid file /var/db/mysql/eserverx330-0.pid ended
[1]+  Done  ./mysqld_safe --user=mysql

• Vous pouver redémarrer le serveur MySQL avec la commande suivante :

# cd /usr/local/bin
# ./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 droits, tapez la commande suivante :

# cd /usr/local/bin
# ./mysqld_safe --user=mysql --skip-grant-tables &

Sécuriser la base de données

• Pour sécuriser MYSQL, utilisez la commande mysqladmin et 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é. Exemple pour le host : eserverx330-0

# ./mysqladmin -u root password ‘mypasswd’
# ./mysqladmin -u root -h eserverx330-0 password ‘mypasswd’
# ./mysql -u root mysql

• Les messages suivants apparaissent :

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

• Testez à nouveau en tapant le mot de passe que vous aviez indiqué :

# ./mysql -u root –p
Enter password: *******
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.1.22-rc-log FreeBSD port: mysql-server-5.1.22
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> quit
bye
#

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.

• Connectez-vous à MYSQL et tapez la requete MYSQL suivante :

# ./mysql -u root -h eserverx330-0 –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'@'eserverx330-0'=OLD_PASSWORD('xxxxxx');
Query OK, 0 rows affected (0.00 sec)
mysql>

Démarrage automatique du serveur MySQL

• Démarrage automatique du serveur MySQL ; ajouter l’option suivante dans /etc/rc.conf.

mysql_enable="YES"

Installation d’APACHE

Apache est serveur HTTP. Apache est conçu pour supporter de nombreux modules lui donnant des fonctionnalités supplémentaires : interprétation du langage Perl, PHP, Python et Ruby, serveur proxy, Common Gateway Interface, Server Side Includes, réécriture d’URL, négociation de contenu, protocoles de communication additionnels, etc. Les possibilités de configuration d’Apache sont une fonctionnalité prédominante. Le principe repose sur une hiérarchie de fichiers de configuration, qui peuvent être gérés indépendamment. C’est notamment utile aux hébergeurs Web qui peuvent ainsi servir les sites de plusieurs clients à l’aide d’un seul serveur HTTP.

Pourquoi choisir 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 devrait améliorer 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é.

Compilation d’APACHE

• Procédons à l’installation proprement dite d’APACHE; nous préférons la version 2.x et notez que tout le reste du guide sera basé sur cette version.

# cd /usr/ports/www/apache22
# make

• L’écran suivant apparaît et permet de paramétrer la compilation avec les directives choisies :

Figure 9-1. Compilation APACHE

Compilation et configuration APACHE

Remarque - veillez à sélectionner MYSQL dans cette liste.

Voici la liste en détail ; le X indique la sélection :

[ ] APR_FROM_PORTS        		Use devel/apr as APR (beware!)
[ ] THREADS               		Enable threads support in APR
[X] MYSQL                 		Enable MySQL support for apr-dbd
[ ] PGSQL                 		Enable PostgreSQL support for apr-dbd
[ ] SQLITE                		Enable SQLite support for apr-dbd
[X] IPV6                  		Enable IPv6 support
[ ] PCRE_FROM_PORTS       		Use devel/pcre instead of bundled one
[X] AUTH_BASIC            		Enable mod_auth_basic
[X] AUTH_DIGEST           		Enable mod_auth_digest
[X] AUTHN_FILE            		Enable mod_authn_file
[ ] AUTHN_DBD             		Enable mod_authn_dbd
[X] AUTHN_DBM             		Enable mod_authn_dbm
[X] AUTHN_ANON            		Enable mod_authn_anon
[X] AUTHN_DEFAULT         		Enable mod_authn_default
[X] AUTHN_ALIAS           		Enable mod_authn_alias
[X] AUTHZ_HOST            		Enable mod_authz_host
[X] AUTHZ_GROUPFILE       		Enable mod_authz_groupfile
[X] AUTHZ_USER            		Enable mod_authz_user
[X] AUTHZ_DBM             		Enable mod_authz_dbm
[X] AUTHZ_OWNER           		Enable mod_authz_owner
[X] AUTHZ_DEFAULT         		Enable mod_authz_default
[X] CACHE                 		Enable mod_cache
[X] DISK_CACHE            		Enable mod_disk_cache
[X] FILE_CACHE            		Enable mod_file_cache
[ ] MEM_CACHE             		Enable mod_mem_cache
[X] DAV                   		Enable mod_dav
[X] DAV_FS                		Enable mod_dav_fs
[ ] BUCKETEER             		Enable mod_bucketeer
[ ] CASE_FILTER           		Enable mod_case_filter
[ ] CASE_FILTER_IN        		Enable mod_case_filter_in
[ ] EXT_FILTER            		Enable mod_ext_filter
[ ] LOG_FORENSIC          		Enable mod_log_forensic
[ ] OPTIONAL_HOOK_EXPORT  		Enable mod_optional_hook_export
[ ] OPTIONAL_HOOK_IMPORT  		Enable mod_optional_hook_import
[ ] OPTIONAL_FN_IMPORT    		Enable mod_optional_fn_import
[ ] OPTIONAL_FN_EXPORT    		Enable mod_optional_fn_export
[ ] LDAP                 	    	Enable mod_ldap
[ ] AUTHNZ_LDAP           		Enable mod_authnz_ldap
[X] ACTIONS               		Enable mod_actions
[X] ALIAS                 		Enable mod_alias
[X] ASIS                  		Enable mod_asis
[X] AUTOINDEX             		Enable mod_autoindex
[X] CERN_META             		Enable mod_cern_meta
[X] CGI                   		Enable mod_cgi
[X] CHARSET_LITE          		Enable mod_charset_lite
[ ] DBD                   		Enable mod_dbd
[X] DEFLATE               		Enable mod_deflate
[X] DIR                   		Enable mod_dir
[X] DUMPIO                		Enable mod_dumpio
[X] ENV                   		Enable mod_env
[X] EXPIRES               		Enable mod_expires
[X] HEADERS               		Enable mod_headers
[X] IMAGEMAP              		Enable mod_imagemap
[X] INCLUDE               		Enable mod_include
[X] INFO                 	    	Enable mod_info
[X] LOG_CONFIG            		Enable mod_log_config
[X] LOGIO                 		Enable mod_logio
[X] MIME                  		Enable mod_mime
[X] MIME_MAGIC            		Enable mod_mime_magic
[X] NEGOTIATION           		Enable mod_negotiation
[X] REWRITE               		Enable mod_rewrite
[X] SETENVIF              		Enable mod_setenvif
[X] SPELING               		Enable mod_speling
[X] STATUS                		Enable mod_status
[X] UNIQUE_ID             		Enable mod_unique_id
[X] USERDIR               		Enable mod_userdir
[X] USERTRACK             		Enable mod_usertrack
[X] VHOST_ALIAS           		Enable mod_vhost_alias
[X] FILTER                		Enable mod_filter
[X] VERSION               		Enable mod_version
[ ] PROXY                 		Enable mod_proxy
[ ] PROXY_CONNECT         		Enable mod_proxy_connect
[ ] PROXY_FTP             		Enable mod_proxy_ftp
[ ] PROXY_HTTP            		Enable mod_proxy_http
[ ] PROXY_AJP             		Enable mod_proxy_ajp
[ ] PROXY_BALANCER        		Enable mod_proxy_balancer
[X] SSL                   		Enable mod_ssl
[ ] SUEXEC                		Enable mod_suexec
[ ] CGID                  		Enable mod_cgid

• Lancez l’installation :

# make install

Après compilation, éditez et modifiez le fichier de configuration httpd.conf dans le répertoire /usr/local/etc/apache22/ et veiller à mapper l’écoute sur le port 80 en IPv4.

• Modifiez le fichier httpd.conf :

#Listen 12.34.56.78:80
#Listen 0.0.0.0:80
#Listen 80
#Listen [::]:80
 
Listen 0.0.0.0:80

Test APACHE

• Démarrez le serveur APACHE manuellement pour tester son bon fonctionnement.

# /usr/local/sbin/apachectl start

Testez le serveur Apache en indiquant au navigateur web l’adresse IP du serveur web:
http://adresseIPduserveur/

Remarque - si le message It Works apparaît sur la page du navigateur alors l’installation est correcte.

Démarrage automatique du service APACHE

• Installez le service APACHE au démarrage du serveur ; éditez le fichier /etc/rc.conf :

# vi /etc/rc.conf

• Insérez la ligne suivante :

apache22_enable="YES"

Réglage APACHE pour le noyau FreeBSD

Lorsque le serveur Web Apache démarre sous le système FreeBSD, un avertissement (warning) peut survenir et le message suivant apparaît en général :

[warn] (2)No such file or directory: [warn] (2) Aucun fichier ou répertoire: 
Failed to enable the ‘httpready’ Accept Filter

Le module accf_http qui a pour fonction d’être un tampon pour les connexions http entrantes lors de fortes charges ; ce module n’étant pas paramétré lors de l’installation d’APACHE, il rentre en conflit avec le noyau. Il faut le rajouter dans les modules à charger au démarrage du KERNEL.

• Editez le fichier /boot/loader.conf et ajouter la ligne suivante :

accf_http_load="YES"

• Forcez le chargement du nouveau paramétre dans le KERNEL en tapant la commande suivante :

# kldload accf_http

• Redémarrez APACHE :

# apachectl stop
# apachectl start

Remarque - vous pouvez aussi rebooter le serveur pour controler la prise en charge du nouveau paramétre.

Modifier le répertoire d’accueil des sites WEB

• Pour organiser et simplifier la maintenance des sites web, nous préférons créer un nouveau répertoire d’accueil et l’insérer dans le répertoire système /var. Ce répertoire contiendra tous les nouveaux sites Web à venir ; le répertoire www de l’installation par défaut reste dans /usr/local/www/apache22.

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

• Nous allons organiser l’enregistrement des logs APACHE dans un nouveau répertoire distinct pour simplifier leur gestion ; ce répertoire httpd est créé dans /var/log.

# mkdir –p /var/log/httpd
# chmod 775 /var/log/httpd

Remarque - nous verrons après l’installation de tous les composants APACHE (PHP, APC, Lynx, …), le paramétrage des fichiers de configuration APACHE pour la prise en charge de ce nouveau répertoire d’accueil www.

 

Dans la quatrième partie de cet article, nous verrons comment installer PHP et livrer un serveur web opérationnel.

Aucun commentaire pour “Installer son propre serveur web (part.3)”

Visiteurs

Publicité

Warts Republic utilise les réseaux sociaux pour partager ses articles. Warts Republic est enregistré chez Blogasty 09, Flickr, Splush, You Tube, G1 Blog, Facebook, Diggons, Paperblog. Warts Republic bloque les SPAMS avec Askimet. Warts Republic vous recommande les navigateurs de dernière génération tels Firefox, Safari ou IExplorer 7 pour un affichage optimisé.

Tous droits réservés aux auteurs. Consultez la rubrique des droits légaux. Pour toute réclamation, contactez le webmaster, Pour tout autre contact professionel, adressez-vous directement à l'auteur.