Après l’achat d’un petit serveur dédié chez OVH -le plus petit des Kimsufi- je me suis rendu compte que contrairement à mon expérience des Gentoo2 d’OVH, il n’y avait VRAIMENT rien dessus !
Voici donc les étapes afin de mettre en place facilement un serveur web, et surtout de le faire fonctionner correctement.
Si, comme moi, vous avez d’abord installé Webmin et Virtualmin via des tuto et de façons séparées, je suis désolé mais il va vous falloir recommencer à ZÉRO !
Direction le Manager V3 d’OVH, vous sélectionnez votre serveur > Service > Réinstaller / Changer d’OS.
J’ai essayé pendant plusieurs heures de supprimer tout ce que je me souvenais avoir installé mais rien n’y a fait, j’ai fini par sauvegarder mes sites et mes DB et réinstaller mon Ubuntu 🙁
Passons maintenant au vif du sujet ! Vous devriez donc avoir votre serveur Ubuntu 10.04 LTS tout neuf avec rien dessus, si ce n’est « DNS Server, Mail Server, SSH Server ».
Première chose que nous allons faire : installer la dernière version de PHP
Virtualmin télécharge pas mal de dépendances mais il vient avec PHP 5.3, alors que personnellement je préfère travailler en PHP 5.4. N’ayant pas trouvé comment installer facilement PHP 5.4 après Virtualmin, nous allons simplement le télécharger et l’installer AVANT 🙂
- sudo echo « deb http://ppa.launchpad.net/ondrej/php5/ubuntu lucid main » >> /etc/apt/sources.list
- sudo echo « deb-src http://ppa.launchpad.net/ondrej/php5/ubuntu lucid main » >> /etc/apt/sources.list
- sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys E5267A6C
- sudo apt-get update
- sudo apt-get install php5
La magie qui opère
La bonne méthode tient en fait en 2 commandes :
- wget http://software.virtualmin.com/gpl/scripts/install.sh
- /bin/sh install.sh
Voilà, le step by step pourrait presque finir ici tellement c’est simple mais vu que nous voulu un serveur complet, je vais aller plus loin quand même 😉
Préparer son serveur
A présent que Virtualmin est bien installé, on va terminer la configuration et la vérifier.
Attention, n’installez pas phpMyAdmin maintenant, car nous n’avons toujours pas réglé notre base de données !
Connectez-vous à votre webmin : https://nomduserveur.tld:10000 et entrez vos accès (par défaut ce sont les mêmes que ceux de votre SSH ;))
Sur la partie principale, vous verrez le « Post installation wizard », cliquez sur le bouton CANCEL et ensuite sur le lien « Re-check Configuration »
(Si vous ne voyez plus ce lien, il est accessible à tout moment dans la colonne de gauche « System Settings > Re-check Configuration »)
Normalement, Virtualmin va vous dire qu’il y a un problème avec MySQL. En effet, aucun mot de passe n’est défini. Il suffit de cliquer sur le lien situé dans le message et introduisez votre mot de passe. Attention, pensez à le noter quelque part. Il s’agit de votre mot de passe d’accès root à MySQL !!!
Installer PhpMyAdmin
Maintenant que notre serveur est en ordre, nous allons installer PhpMyAdmin. Virtualmin vient par défaut avec une possibilité d’installation d’un script -phpMyAdmin par exemple- mais bon, ça veut dire qu’il faut l’installer pour chaque serveur virtual. Au-delà de la flemmardise qui m’envahi en constatant ça, je trouvais ça pas pratique du tout : beaucoup d’espace disque utilisé pour rien (13 Mo par phpMyAdmin installé environ) et même point de vue maintenance pour garder ça à jour, c’est pas génial.
Nous allons donc installer phpMyAdmin « normalement », à savoir grâce à APT-GET :
- apt-get install phpmyadmin
Il suffit de choisir ensuite pour quel serveur Web l’installer (ici Apache2) et pour la question de la configuration automatique, j’ai répondu YES.
Pour être certain que le navigateur propose d’enregistrer le login et mot de passe, nous allons modifier légèrement le fichier config.
- nano /var/lib/phpmyadmin/blowfish_secret.inc.php
(ici on copie la ligne $cfg[‘blowfish_secret’] = ‘***’; [ vous devriez avoir une clé à la place de *** si ce n’est pas le cas, écrivez n’importe quoi]) - nano /usr/share/phpmyadmin/config.
inc.php
(collez après include(‘/var/lib/phpmyadmin/blowfish_secret.inc.php’);) - service apache2 restart
Si les champs de votre DB vous affichent des chiffres ou du contenu BLOB :
- nano /usr/share/phpmyadmin/config.
inc.php
Et changer la ligne suivante (tout en bas du fichier) :
$cfg['Servers'][$i]['extension'] = 'mysql';
En :
$cfg['Servers'][$i]['extension'] = 'mysqli';
Source: http://stackoverflow.com/a/
Configurer son serveur
Voilà, maintenant on a presque fini !
On va retourner dans la Webmin et régler quelques options !
DNS
On va régler 2-3 petits trucs afin que les DNS fonctionnent bien. Je ne suis pas certain de l’utilité de rajouter l’IP du secondary nameserver en Forwards par contre la 2ieme ligne est PRIMORDIALE !
Allez donc tout d’abord dans Webmin > Servers > BIND DNS Server. Là vous cliquez sur « Edit Config File » et sélectionnez le fichier « /etc/bind/named.conf.options » et cliquez sur Edit.
Décommentez la ligne des forwarders et ajoutez l’IP de votre NS2, pour ns.kimsufi.com c’est 213.186.33.199
Commentez la ligne « listen-on { 127.0.0.1; }; »
Vous devriez donc avoir ceci :
options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0's placeholder. forwarders { 213.186.33.199; }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { ::1; }; // listen-on { 127.0.0.1; }; allow-recursion { 127.0.0.1; }; };
PHP 5
Pensez à éditer vos fichiers php.ini, par défaut ils seront copiés par tous les futurs serveurs virtuels.
Vous pourrez évidemment les modifier séparement mais personnellement je modifierais juste une chose : l’error_reporting !
Pour se faire, allez dans Webmin > Others > PHP Configuration
Cliquez sur chaque lien « Manage » et ensuite « Error Logging »
En face de « Expression for error types » : E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
FTP
Par défaut, la méthode pour se connecter à vos serveurs virtuels est le SFTP. Pour activer la connexion en FTP classique, sur la page d’accueil de Webmin en bas vous aurez « Status ». Vous verrez que le serveur ProFTPD n’est pas démarré. Démarrez-le et vous pourrez vous connecter en FTP 🙂
Tant qu’on y est, on va limiter les utilisateurs à leur dossier home pour plus de sécurité !
Rendez-vous dans la partie Webmin à présent, et dans le menu à gauche suivez : Servers > ProFTPD Server
Sur l’écran principal, cliquez sur le lien « Files and Directories » et à droite de l’intitulé « Limit users to directories », cochez « Home »
Features & Settings
Ce menu, situé dans Virtualmin sous System Settings > Features and Plugins, permet de définir quelles options sont disponibles à la création d’un serveur virtuel et les quelles sont disponibles par défaut. Il est intéressant d’y faire un tour afin d’accélérer la future création de vos Vhosts.
Server Templates
Les templates serveurs permettent de créer différents gabarits de serveur. Ici nous utiliserons uniquement ceux par défaut, à savoir un serveur virtuel classique et le type « sous-domaine ». Pour accéder aux options, il faut être dans la partie Virtualmin et dans le menu à gauche suivre : System Settings > Server Templates
SUB-SERVERS
- Ajouter pour SUB-SERVERS, le fait que PHP doit être exécuté en FAST CGI : System Settings > Server Templates > Settings For Sub-Servers > Apache website > Default PHP executionmode > FCGId
DEFAULT SERVERS
- Ajouter le nameserver secondaire : System Settings > Server Templates > Default settings > BIND DNS domain > Additional configurer nameservers => ns.kimsufi.com
- Ajouter la création automatique d’un alias sous le domaine principal : System Settings > Server Templates > Default Settings > Virtual server creation > Automatically create alias domain > Create under DOMAIN.TLD + cocher « First part of domain »
- Editer les directives Apache par défaut (on va d’ailleurs ajouter les directives pour PhpMyAdmin) : System Settings > Server Templates > Default Settings > Apache website
Remplacer tout ce qu’il y a par ceci : (tout ce qu’on fait ici au final, c’est ajouter les directives pour PhpMyAdmin et corriger les directives du directory « public_html » afin qu’il utilise le CGI WARPER
ServerName ${DOM} ServerAlias www.${DOM} DocumentRoot ${HOME}/public_html ErrorLog /var/log/virtualmin/${DOM}_error_log CustomLog /var/log/virtualmin/${DOM}_access_log combined ScriptAlias /cgi-bin/ ${HOME}/cgi-bin/ DirectoryIndex index.html index.htm index.php index.php4 index.php5 <Directory ${HOME}/public_html> Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI allow from all AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch AddHandler fcgid-script .php AddHandler fcgid-script .php5 FCGIWrapper ${HOME}/fcgi-bin/php5.fcgi .php FCGIWrapper ${HOME}/fcgi-bin/php5.fcgi .php5 </Directory> <Directory ${HOME}/cgi-bin> allow from all AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch </Directory> Alias /phpmyadmin "/usr/share/phpmyadmin" <Directory "/usr/share/phpmyadmin"> Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI allow from all AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch AddHandler fcgid-script .php AddHandler fcgid-script .php5 FCGIWrapper ${HOME}/fcgi-bin/php5.fcgi .php FCGIWrapper ${HOME}/fcgi-bin/php5.fcgi .php5 </Directory>
UPDATE :
Vous pouvez également définir l’alias pour phpMyAdmin dans le Vhost des sub-servers. Pour ça, allez toujours dans Server Templates mais sélectionnez « Settings for Sub-Servers ».
Maintenant, vous n’avez qu’à copier/coller une nouvelle fois les directives (les mêmes que pour le serveur principal, c’est juste au-dessus !:))
Vous pouvez maintenant créer vos serveurs virtuels et y accéder !
Options -Indexes +IncludesNOEXEC +SymLinksIfOwnerMatch +ExecCGI allow from all AllowOverride All Options=ExecCGI,Includes,IncludesNOEXEC,Indexes,MultiViews,SymLinksIfOwnerMatch AddHandler fcgid-script .php AddHandler fcgid-script .php5 FCGIWrapper /home/[DOMAINE]/fcgi-bin/php5.fcgi .php FCGIWrapper /home/[DOMAINE]/fcgi-bin/php5.fcgi .php5
Si vous souhaitez envoyer un joli mail pour vous ou vos clients
System Settings > Server Templates > Default settings > Mail for domainVoici comment j’ai rédigé le mien :
Virtual server created for ${DOM}
The following virtual server has been set up successfully : DOMAIN INFORMATION Domain name: ${DOM} Website: http://www.${DOM}/ Hosting server: ${HOSTNAME} Server IP address: ${IP} ADMINISTRATIVE ACCESS ${IF-WEBMIN} Administration URL: https://www.${DOM}:10000/ Administration login: ${USER} Administration password: ${PASS} Administration Email The administration (default) mailbox for this server is ${USER}@${DOM} ${ENDIF-WEBMIN} FTP ACCESS FTP host: ftp.${DOM} OR ${HOSTNAME} FTP login: ${USER} FTP password: ${PASS} Home directory: /public_html/ ${IF-MYSQL} MYSQL INFORMATION MySQL database: ${DB} MySQL login: ${MYSQL_USER} MySQL password: ${MYSQL_PASS} phpMyAdmin URL: http://${HOSTNAME}/phpmyadmin/ ${ENDIF-MYSQL} ${IF-POSTGRES} POSTGRESQL INFORMATION PostgreSQL database: ${DB} PostgreSQL login: ${USER} PostgreSQL password: ${PASS} ${ENDIF-POSTGRES}
Installer des mods supplémentaires
Pour installer des mods supplémentaires, c’est très simple, c’est l’utilisation classique d’Ubuntu. Prenons l’exemple de CURL qui n’est pas installé par défaut :
- apt-get php5-curl
Bonjour,
Pourquoi installer un Ubuntu 10.04 LTS ?
Ubuntu 12.04 LTS est sorti depuis presque 1 an au moment où tu écris ce post.
Pourquoi ne pas avoir installé cette version 12.04 LTS ?
Les LTS sont supportées 5 ans.
Autant prendre la LTS la plus récente. Tu auras des versions de softs plus récentes, et un support plus étendu.
😉
Bonjour,
Ça date un petit peu donc je ne me souviens pas bien pourquoi mon choix s’est porté vers la 10.04 plutôt que la 12.04, désolé ^^