9
591

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.

Informations système

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 :

echo off

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 :

<VirtualHost *:80>
    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.

Email

É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.

[mail function]
; 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 :

<?php phpinfo(); ?>

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 que sitename.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 ou en.
  • Le gestionnaire de la base de données tel que MySQL ou PostgreSQL.
  • 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_url = 'mysql://sitenamedb1:P41FFJIQ@dbhostname/sitenamedb1';
$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

Le 17 novembre 2011 à 18:11 par izend 

Lisez l'article Les outils du développeur web par frasq pour installer et sécuriser un serveur web avec Apache, MySQL, PHP et phpMyAdmin mais aussi préparer le chiffrement des communications avec OpenSSL, configurer un serveur de courrier local avec Postfix et Dovecot, gérer le site en ligne avec SSH et Rsync, limiter l'utilisation de l'espace disque avec les quotas, monter un serveur de noms local avec Bind ou encore surveiller l'activité du serveur web avec Nagios.

Le 18 novembre 2011 à 12:27 par izend 

Pour partager votre code, créez un dépôt nu pour votre site :

$ git init --bare /git/sitename.net.git
$ cd /git/sitename.net.git
$ git config core.sharedrepository true
$ git config receive.denyNonFastforwards true

Ajoutez l'adresse IP de l'hôte du dépôt dans /etc/hosts :

127.0.0.1	githost

Définissez l'accès au dépôt central :

$ cd /var/www/sitename.net
$ git remote add origin ssh://githost/git/sitename.net.git

Poussez la version initiale de votre site dans le dépôt central :

$ git push origin master

Associez la branche master au dépôt central :

$ git branch master --set-upstream origin/master

NOTE : Les versions plus récentes de Git ont remplacé l'option --set-upstream par --set-upstream-to.

Contrôlez votre configuration :

$ cat .git/config
[core]
	repositoryformatversion = 0
	filemode = true
	bare = false
	logallrefupdates = true
[user]
	user = yourname
	email = yourname@sitename.net
[remote "izend"]
	url = https://github.com/izend/izend
	fetch = +refs/heads/*:refs/remotes/izend/*
	receivepack = /bin/false
[branch "izend"]
	remote = izend
	merge = refs/heads/master
[remote "origin"]
	url = ssh://githost/git/sitename.net.git
	fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
	remote = origin
	merge = refs/heads/master

Le 24 novembre 2011 à 22:08 par izend 

Pour démarrer un nouvel arbre de développement de votre projet et suivre les modifications d'iZend depuis GitHub, entrez les commandes suivantes :

$ git clone ssh://githost/git/sitename.net.git /var/www/sitename.net
$ cd /var/www/sitename.net
$ git remote add izend https://github.com/izend/izend
$ git config remote.izend.receivepack /bin/false
$ git fetch izend
$ git checkout -b izend izend/master
$ git checkout master

Le 29 juillet 2012 à 18:19 par izend 

Pour exécuter une tâche répétitive, programmez le service système cron en ajoutant un fichier appelé izend dans /etc/cron.d avec le contenu suivant :

# /etc/cron.d/izend: crontab for iZend
# Runs cron.php every quarter of an hour for every site.

*/15 * * * * www-data [ -f /var/www/sitename.net/cron.php ] && /usr/bin/php5 -f /var/www/sitename.net/cron.php

cron.php lance l'exécution de tous les scripts du dossier cron.

Lire CRONTAB pour tous les détails sous Linux ou Windows.

Le 15 juillet 2021 à 19:37 par izend 

Pour recompiler le CSS d'un site iZend Less que vous éditez dans le dossier less, mettez le paramètre $recompile_css à true à la fin du fichier config.inc. Une fois les modifications terminées, remettez $recompile_css à false.

Votre commentaire :
[p] [b] [i] [u] [s] [quote] [pre] [br] [code] [url] [email] strip aide 2000

Entrez un maximum de 2000 caractères.
Améliorez la présentation de votre texte avec les balises de formatage suivantes :
[p]paragraphe[/p], [b]gras[/b], [i]italique[/i], [u]souligné[/u], [s]barré[/s], [quote]citation[/quote], [pre]tel quel[/pre], [br]à la ligne,
[url]http://www.izend.org[/url], [url=http://www.izend.org]site[/url], [email]izend@izend.org[/email], [email=izend@izend.org]izend[/email],
[code]commande[/code], [code=langage]code source en c, java, php, html, javascript, xml, css, sql, bash, dos, make, etc.[/code].