Guide d'installation
Introduction
iZend est distribué en plusieurs variantes. Le logiciel de base est appelé iZend Core ou tout simplement iZend. La version spécialisée pour un blog s'appelle iZend Blog. Avec un aspect différent, iZend Less intègre le générateur de CSS Less et les icônes Font Awesome. iZend Bootstrap est entièrement écrit avec l'environnement graphique de Bootstrap par Twitter. Toutes les versions s'installent selon la même procédure, seul le nom du dépôt change : izend pour iZend Core, izendblog pour iZend Blog, izendless pour iZend Less, izendbs pour iZend Bootstrap.
iZend Core
iZend Blog
iZend Less
iZend Bootstrap
Cliquez sur une image pour essayer le site initial
Une fois iZend installé, vous disposerez d'un site rapide et fonctionnel au rendu parfait sur PC, tablette ou smartphone que vous pourrez éditer et programmer à volonté.
Préliminaires
Un site web iZend est normalement hébergé par un serveur Apache avec MySQL ou PostgreSQL mais il peut fonctionner sans base de données. Optez pour cette configuration uniquement pour mettre en ligne un site avec des ressources limitées. Notez que iZend peut occuper très peu de place sur disque.
IMPORTANT : iZend Blog nécessite une base de données.
Pour un professionnel
Dans un environnement professionnel, vous voudrez très certainement un serveur web local sur lequel vous pourrez développer et valider le site web. Suivez scrupuleusement toute la procédure d'installation, en particulier la configuration du site virtuel Apache.
Pour un particulier
Si vous n'avez pas de compétences en technologies du web, vous pouvez simplement télécharger la dernière version du logiciel, vraisemblablement iZend Blog, copier directement tout le dossier du site dans l'espace disque de votre fournisseur internet et passer à la configuration du site.
Linux
Installez Apache, MySQL et PHP :
$ sudo apt install apache2
$ sudo apt install mysql-client mysql-server
$ sudo apt install php php-mcrypt php-gd php-curl php-mysql libapache2-mod-php
NOTE : iZend est dorénavant validé avec PHP 8 et PHP 7 et MySQL 8 mais fonctionne toujours avec PHP 5.3 et MySQL 5.5.
Durant l'installation de MySQL, choisissez un mot de passe pour l'administrateur de la BD. Notez-le bien.
Si l'installation de MySQL n'a pas protégé l'utilisateur root
avec un mot de passe, essayez ceci :
$ sudo mysql -u root -p
Appuyez sur Entrée sans taper de mot de passe.
À partir de la version 8 de MySQL, entrez l'ordre suivant :
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'password';
Pour une version antérieure de MySQL, entrez les ordres suivants :
mysql> USE mysql;
mysql> SET PASSWORD FOR 'root'@'localhost'=PASSWORD('password');
mysql> FLUSH PRIVILEGES;
Dans un autre terminal, essayez la commande mysql -u root -p
et entrez le nouveau mot de passe.
Si l'accès est autorisé, entrez quit
pour sortir.
Ajoutez votre compte au groupe www-data
:
$ sudo adduser izend www-data
NOTE : remplacez izend par votre nom de connexion.
Installez phpMyAdmin pour plus de confort :
$ sudo apt install phpmyadmin
Durant l'installation, utilisez les flèches pour choisir de reconfigurer Apache, appuyez sur la barre d'espace puis sur Entrée. Utilisez le mot de passe que vous avez donné à l'administrateur de la BD pendant la configuration de MySQL.
Vérifiez que tout est bien en place en lançant phpMyAdmin :
entrez localhost/phpmyadmin dans la barre d'adresse de votre navigateur
puis identifiez-vous avec le nom root
et le mot de passe que vous avez assigné à l'administrateur de la BD.
Adminer est une alternative à phpMyAdmin :
$ sudo mkdir /usr/share/adminer
$ sudo wget "http://www.adminer.org/latest.php" -O /usr/share/adminer/latest.php
$ sudo ln -s /usr/share/adminer/latest.php /usr/share/adminer/adminer.php
$ echo "Alias /adminer.php /usr/share/adminer/adminer.php" | sudo tee /etc/apache2/conf-available/adminer.conf
$ sudo a2enconf adminer
$ sudo service apache2 reload
Entrez localhost/adminer dans la barre d'adresse de votre navigateur.
Pour installer PostgreSQL comme alternative à MySQL :
$ sudo apt install postgresql
La procédure d'installation a créé un compte utilisateur postgres
et un groupe postgres
.
Ce compte est associé à l'administrateur de la BD :
$ sudo -s
# su - postgres
$ psql
psql (9.5.4)
Type "help" for help.
postgres=#
Protégez le compte de l'administrateur de la BD avec un mot de passe :
postgres=# ALTER USER postgres with encrypted password 'votre_mot_de_passe';
ALTER ROLE
postgres=#
Quittez psql
:
postgres=# \q
Relancez le serveur :
$ sudo service postgresql restart
Installez phpPgAdmin pour plus de confort :
$ sudo apt install phppgadmin
Éditez le fichier /etc/apache2/conf-available/phppgadmin.conf pour mettre en commentaire l'ordre Require local
:
#Require local
Assurez-vous que ce fichier de configuration est bien activé :
$ sudo a2enconf phppgadmin
Éditez le fichier /etc/phppgadmin/config.inc.php et modifiez les paramètres suivants :
$conf['extra_login_security'] = false;
$conf['show_advanced'] = true;
Pour vous connecter avec Adminer à un serveur Postgres, éditez le fichier /etc/postgresql/*/main/pg_hba.conf :
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
Redémarrez le serveur :
$ sudo service postgresql restart
IMPORTANT : Lors de la configuration du connecteur à la BD, pour accéder à un serveur PostgreSQL local, utilisez l'adresse IP 127.0.0.1
à la place de localhost
.
Windows
Installez Xampp pour Windows dans le dossier C:\xampp.
Entrez localhost dans la barre d'adresse de votre navigateur.
IMPORTANT : Vous devez protéger le compte root de la BD par un mot de passe.
Cliquez sur l'onglet phpMyAdmin et dans Comptes utilisateurs, ajoutez le même mot de passe à tous les comptes root. Ne l'oubliez pas.
Éditez le fichier C:\xampp\phpMyAdmin\config.inc.php et mettez le paramètre de configuration $cfg['Servers'][$i]['auth_type']
à la valeur 'cookie'
.
Redémarrez les serveurs MySQL et Apache à partir de la console Xampp.
Vérifiez que vous pouvez vous identifier comme administrateur de la BD avec phpMyAdmin.
Téléchargement
iZend repose sur Git pour la distribution des nouvelles livraisons. Avec Git, vous pourrez modifier le code d'origine, ce que vous êtes encouragé à faire, tout en suivant les changements dans le dépôt officiel, et mettre à jour votre site web sera étonnamment simple et fiable.
IMPORTANT : Vous pouvez directement télécharger une archive d'iZend à partir de GitHub mais si vous éditez le code, les mises à jour seront plus difficiles.
Linux
Installez Git :
$ sudo apt install git-core
Windows
Installez Git pour Windows.
Lancez Git Bash à partir du raccourci sur le bureau pour démarrer le processeur de commandes et exécuter git
dans un environnement bash
.
Option
Pour exécuter git
dans le processeur de commandes de Windows, créez un fichier appelé env.bat dans votre dossier personnel avec le contenu suivant :
set PATH=%PATH%;%ProgramFiles%\Git\bin
set HOME=%HOMEPATH%
Ajoute le dossier de la commande git
à la variable PATH.
Si vous avez un PC 64bits, remplacez %ProgramFiles%
par %ProgramFiles(x86)%
.
La variable HOME est utile aux programmes portés d'Unix, comme ssh
.
Créez un raccourci dans le même dossier. Configurez la cible pour qu'elle exécute l'ordre %comspec% /k env.bat
. Cette ligne lance le processeur de commandes en lui demandant de commencer par exécuter le contenu du fichier env.bat.
Renommez le raccourci Invite Git.
Si vous préférez une interface graphique, vous pouvez aussi installer TortoiseGit.
Initialisation
Initialisez le répertoire de votre site:
$ git init /var/www/sitename.net
$ cd /var/www/sitename.net
NOTE : Xampp met les documents dans le dossier htdocs du dossier d'installation, e.g. C:\xampp\htdocs. Remplacez /var/www/sitename.net par C:\xampp\htdocs\sitename.net.
IMPORTANT : Avec Git Bash, vous êtes dans un processeur de commandes type Linux. Entrez les commandes suivantes :
$ git init /c/xampp/htdocs/sitename.net
$ cd /c/xampp/htdocs/sitename.net
NOTE : Ne tapez pas le $ qui est le caractère d'invite du processeur de commandes.
Déclarez votre identité :
$ git config user.name yourname
$ git config user.email yourname@sitename.net
Sortez la version courante d'iZend Core, d'iZend Blog, d'iZend Less ou d'iZend Bootstrap dans une branche appelée izend :
$ git remote add izend https://github.com/izend/izend
ou
$ git remote add izend https://github.com/izend/izendblog
ou
$ git remote add izend https://github.com/izend/izendless
ou
$ git remote add izend https://github.com/izend/izendbs
puis
$ git fetch izend
$ git checkout -b izend izend/master
Pour sortir iZend Blog, iZend Less ou iZend Bootstrap dans une branche appelée respectivement izendblog, izendless ou izendbs :
$ git remote add izendless https://github.com/izend/izendless
$ git fetch izendless
$ git checkout -b izendless izendless/master
Allez dans votre branche master :
$ git checkout -b master
$ git branch
izend
* master
Apache
Assurez-vous que le serveur Apache est autorisé à lire tous les fichiers et à écrire dans les fichiers de configuration includes/config.inc, includes/db.inc et includes/aliases.inc, les répertoires log et avatars et le fichier sitemap.xml :
$ cd /var/www/sitename.net
$ sudo chgrp -R www-data .
$ find . -type d -print0 | xargs -0 chmod 775
$ find . -type f -print0 | xargs -0 chmod 664
NOTE : Le nom du groupe d'exécution du serveur www-data
est défini par la directive Group, généralement dans le fichier /etc/apache2/apache2.conf.
Protégez les fichiers de configuration :
$ cd /var/www/sitename.net/includes
$ chmod 660 config.inc db.inc aliases.inc paypal.inc payline.inc
Créez un lien sur le fichier /etc/apache2/mods_available/rewrite.load dans le répertoire /etc/apache2/mods_enabled :
$ cd /etc/apache2/mods-enabled
$ sudo ln -s ../mods-available/rewrite.load .
Sous Windows, vérifiez que le module rewrite
est activé par Apache.
Cherchez la ligne suivante dans httpd.conf :
LoadModule rewrite_module modules/mod_rewrite.so
Ajoutez un fichier appelé sitename.net.conf dans le répertoire /etc/apache2/sites-available avec le contenu suivant :
DocumentRoot /var/www/sitename.net
ServerName local.sitename.net
## ServerAlias sitename.net
## php_admin_value open_basedir /var/www/sitename.net
## php_admin_value upload_tmp_dir /var/www/sitename.net/tmp
</VirtualHost>
<Directory /var/www/sitename.net>
AllowOverride all
Require all granted
</Directory>
IMPORTANT : Depuis Apache 2.4, le nom du fichier de configuration d'un hôte virtuel doit se terminer par .conf et vous devez ajouter la directive Require all granted
.
NOTE : La directive php_admin_value open_basedir
limite l'accès aux fichiers en PHP au répertoire du site.
La directive php_admin_value upload_tmp_dir
définit le répertoire où les fichiers qui sont téléchargés sont copiés temporairement.
Créez le dossier /var/www/sitename.net/tmp et donnez les droits d'écriture au groupe d'Apache :
$ mkdir /var/www/sitename.net/tmp
$ chmod g+sw /var/www/sitename.net/tmp
$ sudo chgrp www-data /var/www/sitename.net/tmp
Créez un lien sur le fichier /etc/apache2/sites-available/sitename.net.conf dans le répertoire /etc/apache2/sites-enabled :
$ cd /etc/apache2/sites-enabled
$ sudo ln -s ../sites-available/sitename.net.conf .
Rechargez Apache :
$ sudo /etc/init.d/apache2 reload
NOTE : Xampp définit les sites virtuels dans le fichier httpd-vhosts.conf du dossier apache\conf\extra de son dossier d'installation, e.g. C:\xampp\apache\conf\extra. Copiez les directives VirtualHost et Directory dans ce fichier. Remplacez /var/www par C:\xampp\htdocs. N'oubliez pas de créer le dossier C:\xampp\htdocs\sitename.net\tmp. Redémarrez Apache à partir du panneau de contrôle.
IMPORTANT : Assurez-vous que la directive NameVirtualHost *:80
est définie dans le fichier /etc/apache2/ports.conf sous Linux ou dans le fichier C:\xampp\apache\conf\extra\http-vhosts.conf pour Xampp.
Si vous avez installé Apache 2.4, cette directive n'est plus nécessaire.
Éditez le fichier de configuration de PHP, /etc/php/7.4/apache2/php.ini sous Linux, C:\xampp\php\php.ini pour Xampp, pour définir le nom du serveur de courrier de votre fournisseur internet.
NOTE : Si vous avez un serveur de courrier local, spécifiez localhost
.
; For Win32 only.
; http://php.net/smtp
SMTP = smtp.gmail.com
; http://php.net/smtp-port
smtp_port = 25
; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = postmaster@localhost
; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =
; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename
mail.add_x_header = Off
DNS
Ajoutez la ligne suivante dans /etc/hosts :
127.0.0.1 local.sitename.net
NOTE: Windows place le fichier hosts dans le dossier C:\Windows\System32\drivers\etc.
Si vous disposez d'un serveur de base de données, ajoutez un alias pour son système hôte :
127.0.0.1 local.sitename.net dbhostname
NOTE : Afin de faciliter la synchronisation entre votre site de développement et le site de production, le serveur de la BD locale et le serveur de la BD en ligne sont désignés par le même nom d'hôte.
Démarrez votre navigateur web et entrez local.sitename.net
dans la barre d'adresse pour lancer le configurateur.
En cas de problème, vérifiez les points suivants :
- Apache est autorisé à lire tous les répertoires et tous les fichiers dans /var/www/sitename.net.
- Le module
rewrite
est correctement chargé par Apache. - Le nom d'hôte local.sitename.net a l'adresse IP 127.0.0.1.
- Le nom d'hôte virtuel local.sitename.net est bien listé par la commande
sudo apache2ctl -S
.
Pour vérifier la configuration d'Apache, ajoutez un fichier appelé phpinfo.php avec le contenu suivant dans le répertoire des documents du serveur :
Tapez localhost/phpinfo.php
dans la barre d'adresse de votre navigateur et cherchez la liste des modules chargés par Apache.
Utilisez la commande ping
pour vérifier si le nom d'hôte local.sitename.net est résolu à l'adresse IP locale :
$ ping local.sitename.net
Sécurisation
IMPORTANT : Si le site web n'est pas configuré en HTTPS, éditez le fichier includes/settings.inc et mettez le paramètre session.cookie_samesite
à 'Lax'
ou laissez-le à 'None'
.
Mettez ce paramètre à 'None; Secure'
uniquement si la connexion est sécurisée.
L'option Secure
bloque l'échange du cookie de session si la connexion n'est pas chiffrée.
Sans session, tous les formulaires qui utilisent un jeton, comme le formulaire d'installation, ne marcheront pas.
Configuration
Vous êtes maintenant prêt à créer le site initial. Allez à la page d'accueil de votre site. Entrez local.sitename.net dans la barre d'adresse de votre navigateur. La page Installation se charge de tous les détails. Lisez l'introduction et préparez les informations nécessaires :
- Le nom du site sans le préfixe
wwww.
tel quesitename.net
. - L'adresse d'email de la personne en charge du site telle que
webmaster@sitename.net
. - La langue par défaut du site web telle que
fr
ouen
. - Le gestionnaire de la base de données tel que
MySQL
ouPostgreSQL
. - Le nom de la base de données tel que
sitenamedb1
. Si vous voulez dédier une base de données spécifique au site web, vous aurez besoin du nom et du mot de passe de l'utilisateur autorisé à créer une base de données. - Le nom d'hôte du serveur de la base de données du site de production.
Utilisez le nom que vous avez associé à
local.sitename.net
dans le fichier /etc/hosts. - Le nom d'utilisateur et le mot de passe utilisés pour accéder à la base de données.
- Le préfixe utilisé pour nommer de façon unique les tables de la base de données tel que
sitename_
. - Le nom et le mot de passe de l'administrateur du site web. Cet utilisateur spécial avec le numéro 1 a tous les privilèges.
IMPORTANT : Utilisez le même nom d'hôte de la base de données, le même nom d'utilisateur et le même mot de passe pour votre site de développement et le site de production.
Remplissez le formulaire et appuyez sur Configurer. Le configurateur écrit les fichiers de configuration du site web et propose de charger la page d'accueil.
En cas d'erreur, vérifiez que le connecteur à la base de données dans le fichier includes/db.inc correspond à la configuration attendue.
$db_prefix = 'sitename_';
$db_debug = false;
Alternativement, contrôlez les tables user
et db
dans la base de données mysql
du server.
Si le configurateur n'est pas autorisé à modifier certains fichiers, un message d'erreur est affiché suivi des instructions nécessaires pour corriger le problème.
Exemple
Le serveur n'est pas autorisé à modifier les fichiers suivants dans le dossier /var/www/sitename.net :
- includes/aliases.inc
- logos/sitelogo.png
- sitemap.xml
- avatars
- log
Pour modifier les droits d'accès, essayez la commande suivante :
$ cd /var/www/sitename.net; chmod a+w includes/aliases.inc logos/sitelogo.png sitemap.xml avatars log
Avancement
Commitez cette version initiale :
$ git status
$ git add --all
$ git commit -m"Initial website by iZend"
$ git status
$ git log --graph --oneline
Mise à jour
Allez dans la branche izend
:
$ git branch izend
Sortez la version courante d'iZend :
$ git pull
Retournez dans la branche master
:
$ git branch master
Fusionnez la branche izend
avec la branche master
:
$ git merge --no-commit izend
Réglez les conflits éventuels et commitez cette version de votre site à jour avec iZend :
$ git commit -m"Merges izend/master"
Mise en ligne
Si le site utilise une nouvelle BD, créez-la dans le système hôte avec un interclassement utf8_general_ci
.
Si le site se connecte à la BD avec un nouveau nom d'utilisateur, créez-le dans la table user
de la BD mysql
. Mettez le champ Host
à localhost
et les champs User
et Password
aux valeurs spécifiées durant la configuration - voir le fichier includes/db.inc.F
Ne donnez aucun privilège à l'utilisateur. Seulement root
a le droit d'exécuter toutes les opérations sur toutes les bases de données.
NOTE : Décodez le mot de passe dans l'URL avec la fonction urldecode
.
IMPORTANT : Pensez à encoder le champ password
avec la fonction PASSWORD sinon le mot de passe qui est envoyé durant la connexion, qui est toujours chiffré, ne correspondra pas.
Ajoutez une entrée dans la table db
de la BD mysql
avec le champ Host
à localhost
, les champs Bd
et User
aux valeurs spécifiées durant la configuration et avec les privilèges Select
, Insert
, Update
et Delete
.
Exportez toutes les tables la BD de votre site local et importez-les dans la BD du système hôte.
Copiez le répertoire de votre site local sur le système hôte de votre site en ligne. Si les paramètres de la connexion à la BD sont différents, éditez le fichier includes/db.inc sur le système hôte.
Commentaires