NGZ Ads / Installation

Installation

Ce guide vous accompagne pas à pas pour installer NGZ Ads sur votre serveur.

Prérequis serveur

Avant de commencer, vérifiez que votre hébergeur dispose des éléments suivants :

ComposantVersion minimale
PHP8.1 ou supérieur (8.3 recommandé)
MySQL / MariaDB5.7 / 10.4 ou supérieur
Apache2.4 avec mod_rewrite activé
Extensions PHP requisespdo, pdo_mysql, mbstring, gd, json, fileinfo
Extensions PHP optionnellescurl, openssl, zip, intl

Hébergement partagé ? La plupart des offres cPanel/Plesk récentes sont compatibles. Vérifiez que PHP 8.1+ est sélectionnable dans le panneau de contrôle.

Téléchargement et transfert des fichiers

  1. Décompressez l'archive ngzads.zip sur votre ordinateur.
  2. Transférez l'intégralité du contenu via FTP/SFTP dans le répertoire cible de votre serveur (par exemple /var/www/html/monsite/ ou public_html/).
  3. Assurez-vous que la structure de répertoires est préservée (ne pas omettre les fichiers comme .htaccess).

Assistant d'installation (wizard)

NGZ Ads fournit un assistant interactif accessible à l'adresse /install/, entièrement traduit en français. Il vous guide en 9 étapes sans avoir à éditer de fichiers manuellement.

Sécurité : L'assistant est accessible sans authentification. Sur un serveur public, effectuez l'installation aussitôt que possible et verrouillez-le dès la fin.

Étape 1 — Vérification de l'environnement

Cliquez sur Run Check. L'assistant inspecte :

  • La version de PHP (≥ 8.0 requise)
  • Les extensions PHP requises et optionnelles
  • Les paramètres php.ini (upload_max_filesize, memory_limit...)
  • Les modules Apache (mod_rewrite, mod_headers, mod_expires)
  • Les permissions des répertoires (config/, uploads/, themes/)
  • La présence des fichiers SQL (schema.sql, sample-data.sql)

Les éléments en rouge sont bloquants, ceux en jaune sont des avertissements non bloquants. Corrigez tous les éléments rouges avant de continuer.

Étape 2 — Configuration de la base de données (DB Config)

Renseignez les paramètres de connexion MySQL :

ChampDescription
HostAdresse du serveur MySQL (ex : 127.0.0.1 ou localhost)
PortPort MySQL — généralement 3306 (MAMP : 8889)
Unix SocketChemin du socket Unix pour MAMP/WAMP (ex : /Applications/MAMP/tmp/mysql/mysql.sock)
Database NameNom de la base créée au préalable (ex : ngzads)
UsernameUtilisateur MySQL avec droits complets sur la base
PasswordMot de passe associé
Table PrefixPréfixe optionnel des tables (ex : ngz_) — utile si plusieurs apps partagent la même base

Cliquez sur Enregistrer database.php — le fichier config/database.php est créé automatiquement.

Si vous utilisez MAMP, renseignez le chemin du socket Unix plutôt que l'hôte TCP. Le socket est généralement /Applications/MAMP/tmp/mysql/mysql.sock.

Dès l'enregistrement, les étapes suivantes (Installer BDD, Utilisateur admin, Compte démo...) utilisent immédiatement la nouvelle configuration — inutile de recharger la page, les informations affichées sur ces onglets se mettent à jour automatiquement.

Étape 3 — Test de connexion (DB Test)

Cliquez sur Test Connection. L'assistant vérifie que PHP peut se connecter au serveur MySQL avec les paramètres saisis. En cas d'échec, le message d'erreur indique la cause (mauvais mot de passe, base inexistante, droits insuffisants...).

Étape 4 — Installation de la base de données (Install DB)

Deux options sont disponibles :

  • Install Schema — exécute sql/schema.sql : crée toutes les tables nécessaires. À effectuer lors d'une nouvelle installation.
  • Load Sample Data — exécute sql/sample-data.sql : importe des catégories, des utilisateurs et des annonces de démonstration. Recommandé pour tester la plateforme.

L'installation du schéma est idempotente : elle peut être relancée sans risque sur une base existante. Un indicateur de chargement (spinner) s'affiche sur le bouton pendant toute la durée de l'opération.

Étape 5 — Compte administrateur (Admin User)

Créez le compte administrateur principal :

  • Username — identifiant de connexion (ex : admin)
  • Email — adresse e-mail de l'administrateur
  • Password — minimum 8 caractères

Si un compte avec le même nom d'utilisateur ou la même adresse e-mail existe déjà, il est mis à jour (rôle promu à admin, mot de passe réinitialisé).

Compte démo public (optionnel)

L'onglet Compte démo crée un compte de démonstration public en lecture seule : idéal pour laisser des visiteurs ou des clients potentiels explorer le site (y compris le panneau d'administration) sans risquer la moindre modification.

  • Username / Email / Password — identifiants du compte démo (par défaut : demo / demo@votredomaine.com)
  • Si le compte existe déjà, il est promu au rôle demo

Pour en savoir plus sur les restrictions et le fonctionnement du mode démo, consultez la section Mode démo du chapitre Configuration.

Étape 6 — Paramètres du site (Site Settings)

Renseignez les paramètres essentiels :

  • Site Name — nom affiché dans les titres et les e-mails
  • Site URL — URL complète sans slash final (ex : https://monsite.com) — détectée automatiquement ; cliquez sur l'icône de copie à côté du champ pour reprendre instantanément l'URL détectée
  • Admin / Contact Email — adresse e-mail de contact public
  • Default Languagefr (français) ou en (anglais)
  • Timezone — fuseau horaire (ex : Europe/Paris, UTC) — voir la liste complète sur php.net/timezones
  • Environmentproduction (erreurs masquées) ou development (erreurs affichées)

Cliquez sur Write settings.php — le fichier config/settings.php est généré. Les identifiants SMTP et OAuth éventuellement présents sont préservés.

Étape 7 — Test e-mail (Email Test)

Envoyez un e-mail de test pour valider la configuration SMTP. Si aucun SMTP n'est encore configuré, l'e-mail est envoyé via la fonction PHP mail() (déconseillé en production).

Étape 8 — Verrouillage (Finish & Lock)

Une fois l'installation terminée, cliquez sur Lock Installer. Un fichier .lock est créé dans le répertoire install/, ce qui désactive définitivement l'assistant.

Important : Ne sautez pas cette étape sur un serveur accessible publiquement. Un assistant non verrouillé permettrait à n'importe qui de réinitialiser la base de données.

Pour ré-ouvrir l'assistant ultérieurement (mise à jour, réinstallation), supprimez manuellement le fichier install/.lock.

Permissions de fichiers

Certains répertoires nécessitent des droits en écriture pour le serveur web :

chmod -R 755 uploads/
chmod -R 755 config/
chmod     644 config/settings.php

Configuration d'Apache

Le fichier .htaccess à la racine gère la réécriture d'URL. Si NGZ Ads est dans un sous-répertoire, éditez RewriteBase :

RewriteBase /monsite/

Si NGZ Ads est à la racine du domaine :

RewriteBase /

Vérification de l'installation

Après connexion avec le compte administrateur, vérifiez :

  • Accueil — les annonces s'affichent correctement
  • Dépôt d'annonce — le formulaire est accessible
  • Administration — le tableau de bord charge sans erreur

Si une page affiche une erreur, consultez les logs Apache (error.log) et activez temporairement app_env = development dans les paramètres pour afficher les détails.