Vous êtes ici : Accueil / Debian GNU/Linux / Applications Web / e-commerce / Installer un site e-commerce PrestaShop sur Debian

Installer un site e-commerce PrestaShop sur Debian

Par Pierre-Yves Landuré Dernière modification 27/03/2013 20:04

PrestaShop est une solution d'e-commerce libre présentant de nombreux avantage. Ce projet est une référence dans le domaine de l'e-commerce. Ce guide vous aide à l'installer sur Debian.

Ce guide est testé sur:

  • Debian 6.0 Squeeze

Ce guide est testé avec ces versions de Prestashop:

  • 1.5.3

Pré-requis

Ce guide nécessite :

Ce guide nécessite l'un des outils ci-dessous, suivant le serveur HTTP choisi:

Paramètres

Renseignez le nom de domaine où sera disponible l'application:

DOMAIN="shop.domaine.com"

Renseignez le nom d'hôte du serveur MySQL:

MYSQL_HOST="localhost"

Si le serveur MySQL n'est pas local, l'outil mysql-tools essaiera de s'y connecter avec le client MySQL, ou, en cas d'échec de connexion, via une connexion SSH.

Installation

Déterminez le chemin d'installation:

INSTALL_PATH="/var/lib/prestashop/${DOMAIN}"

Assurez-vous que le dossier parent existe:

PARENT_PATH="$(command dirname "${INSTALL_PATH}")"
command mkdir --parent "${PARENT_PATH}"

Préparation de l'environnement

Installez les logiciels nécessaires au bon fonctionnement de l'application :

command apt-get install php5-mysql php5-gd php5-mcrypt php5-memcached unzip apg

Rechargez la configuration PHP:

test -x /etc/init.d/php5-fpm && /etc/init.d/php5-fpm restart
test -x /etc/init.d/apache2 && /etc/init.d/apache2 force-reload
test -x /etc/init.d/lighttpd && /etc/init.d/lighttpd force-reload
test -x /etc/init.d/nginx && /etc/init.d/nginx force-reload

Mise en place de l'application

Récupérez l'URL de la dernière version de l'application :

SOURCE_URL=$(command wget --quiet --output-document=- \
"http://www.prestashop.com/fr/download_complete?do=prestashop_1.5" \
| command grep "_LAST_RELEASED_FILE_ =" \
| command sed -e "s|^.*_LAST_RELEASED_FILE_ = '\([^']*\)'.*|http://www.prestashop.com/ajax/controller.php?method=download\&type=releases\&file=\1\&language=en,fr|")

Téléchargez la dernière version de l'application :

command wget "${SOURCE_URL}" --output-document="/tmp/prestashop.zip"

Décompressez l'archive téléchargée :

command unzip -o "/tmp/prestashop.zip" -d "/tmp"

Déplacez le dossier créé vers son emplacement final :

command mv "/tmp/prestashop" "${INSTALL_PATH}"

Corrigez les permissions des fichiers :

command chown -R root:root "${INSTALL_PATH}"
command find "${INSTALL_PATH}" -type f -print0 \
| command xargs -0 -iFILE chmod ugo-x FILE
declare -a WEB_CONTENTS
WEB_CONTENTS[0]="config"
WEB_CONTENTS[1]="cache"
WEB_CONTENTS[2]="log"
WEB_CONTENTS[3]="img"
WEB_CONTENTS[4]="mails"
WEB_CONTENTS[5]="modules"
WEB_CONTENTS[6]="mails"
WEB_CONTENTS[7]="modules"
WEB_CONTENTS[8]="themes"
WEB_CONTENTS[9]="translations"
WEB_CONTENTS[10]="upload"
WEB_CONTENTS[11]="download"
for FILE in ${WEB_CONTENTS[@]}; do
if [ -e "${INSTALL_PATH}/${FILE}" ]; then
  command chown -R www-data:www-data "${INSTALL_PATH}/${FILE}"
fi
done

Créez le fichier .htaccess et robots.txt :

command touch "${INSTALL_PATH}/.htaccess"
command chown www-data:www-data "${INSTALL_PATH}/.htaccess"
command touch "${INSTALL_PATH}/robots.txt"
command chown www-data:www-data "${INSTALL_PATH}/robots.txt"
command chown www-data:www-data "${INSTALL_PATH}/sitemap.xml"

Ajoutez les informations de géolocalisation:

command wget 'http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz' \
    --output-document="${INSTALL_PATH}/tools/geoip/GeoLiteCity.dat.gz"
command gunzip "${INSTALL_PATH}/tools/geoip/GeoLiteCity.dat.gz"
command chown www-data:www-data "${INSTALL_PATH}/tools/geoip/GeoLiteCity.dat"

Configuration

Créez la base de données avec mysql-tools:

MYSQL_PARAMS="$(command mysql-tools --server="${MYSQL_HOST}" --with-ssh \
--auto-hosts --db-prefix="prestashop" --create "${DOMAIN}")"

Récupérez les paramètres de la nouvelle base de données :

echo "${MYSQL_PARAMS}"

Mise en place de l'hôte virtuel

Créez la configuration du serveur HTTP pour votre domaine :

if [ -x "/usr/bin/a2tools" ]; then
  command a2enmod expires
  command a2tools --overrides=All "${DOMAIN}" "${INSTALL_PATH}"
  /etc/init.d/apache2 force-reload
fi
if [ -x "/usr/bin/lighty-tools" ]; then
  command lighty-tools add-vhost "${DOMAIN}" "${INSTALL_PATH}"
fi

L'application devrait maintenant être disponible sur le nom de domaine que vous avez choisi.

Important : les commandes ci-dessus ne mettent pas en place un hôte HTTPS. Je vous conseille de les adapter afin que votre boutique ne soit visible que sur une connexion HTTPS.

Votre installation de PrestaShop devrait maintenant être disponible sur le nom de domaine que vous avez spécifié. Configurez l'application à l'aide du script d'installation. L'URL du site est affichée par:

echo "Veuillez configurer le site Prestashop:
http://${DOMAIN}/"

Note: améliorez la sécurité du logiciel en utilisant un préfixe des tables aléatoire (section "Configuration système"):

echo "Préfixe des tables recommandé: $(command apg -q -a 0 -n 1 -M NCL)_"

Sécurisation de l'installation

Attention: Configurez le site Internet avant de suivre le reste du guide.

Une fois l'installation terminée, améliorez la sécurité :

command chown -R root:root "${INSTALL_PATH}/config"
command chown www-data:www-data "${INSTALL_PATH}/config/settings.inc.php"
command chown www-data:www-data "${INSTALL_PATH}/config/xml"
command rm -r "${INSTALL_PATH}/install"
command mv "${INSTALL_PATH}/admin" "${INSTALL_PATH}/backend"

L'interface d'administration est disponible à l'adresse :

echo "http://${DOMAIN}/backend/"

Sauvegardes

Sauvegardez l'installation avec Backup Manager (voir Installer et configurer Backup Manager sur Debian):

command backup-manager-tools add "${INSTALL_PATH}"

N'oubliez pas de sauvegarder la base de données (voir Installer et configurer MySQL sur Debian).

Mise à jour

Renseignez le domaine de l'installation obsolète:

DOMAIN="shop.domaine.com"

Déterminez le chemin d'installation:

INSTALL_PATH="/var/lib/prestashop/${DOMAIN}"

Récupérez l'URL de la dernière version de l'application :

SOURCE_URL=$(command wget --quiet --output-document=- \
"http://www.prestashop.com/fr/download_complete?do=prestashop_1.5" \
| command grep "_LAST_RELEASED_FILE_ =" \
| command sed -e "s|^.*_LAST_RELEASED_FILE_ = '\([^']*\)'.*|http://www.prestashop.com/ajax/controller.php?method=download\&type=releases\&file=\1\&language=en,fr|")

Téléchargez la dernière version de l'application :

command wget "${SOURCE_URL}" --output-document="/tmp/prestashop.zip"

Décompressez l'archive téléchargée :

command unzip -o "/tmp/prestashop.zip" -d "/tmp"

Créez une sauvegarde de l'installation actuelle :

if [ -d "/var/lib/prestashop/${DOMAIN}.old" ]; then
command rm -r "${INSTALL_PATH}.old"
fi
command cp -a "${INSTALL_PATH}" "${INSTALL_PATH}.old"

Supprimez les logos par défaut de prestashop:

command rm "/tmp/prestashop/img/logo.jpg"
command rm "/tmp/prestashop/img/logo_stores.gif"
command rm "/tmp/prestashop/img/favicon.ico"
command rm "/tmp/prestashop/sitemap.xml"

Écrasez votre installation actuelle avec la nouvelle version :

command cp -r "/tmp/prestashop/"* "${INSTALL_PATH}"
command cp -r "${INSTALL_PATH}/admin/"* "${INSTALL_PATH}/backend/"
command rm -r "${INSTALL_PATH}/admin/"

Mettez à jour les permissions des fichiers :

command chown -R root:root "${INSTALL_PATH}"
command find "${INSTALL_PATH}" -type f -print0 \
| command xargs -0 -iFILE chmod ugo-x FILE
declare -a WEB_CONTENTS
WEB_CONTENTS[0]="config"
WEB_CONTENTS[1]="cache"
WEB_CONTENTS[2]="log"
WEB_CONTENTS[3]="img"
WEB_CONTENTS[4]="mails"
WEB_CONTENTS[5]="modules"
WEB_CONTENTS[6]="mails"
WEB_CONTENTS[7]="modules"
WEB_CONTENTS[8]="themes"
WEB_CONTENTS[9]="translations"
WEB_CONTENTS[10]="upload"
WEB_CONTENTS[11]="download"
for FILE in ${WEB_CONTENTS[@]}; do
if [ -e "${INSTALL_PATH}/${FILE}" ]; then
  command chown -R www-data:www-data "${INSTALL_PATH}/${FILE}"
fi
done

Désactivez le cache pour que le processus de mise à jour se déroule correctement:

command sed -i -e "s/_PS_CACHE_ENABLED_.*/_PS_CACHE_ENABLED_', '0');/" \
    "${INSTALL_PATH}/config/settings.inc.php"

Mettez à jour votre instance en vous connectant à l'interface d'installation via le lien :

echo "http://${DOMAIN}/install/upgrade/upgrade.php"

Une fois la mise à jour terminée, nettoyez les fichiers :

command chown -R root:root "${INSTALL_PATH}/config"
command chown www-data:www-data "${INSTALL_PATH}/config/settings.inc.php"
command chown www-data:www-data "${INSTALL_PATH}/config/xml"
command rm -r "${INSTALL_PATH}/install"
command rm -r "/tmp/prestashop"
command rm -r "/tmp/prestashop.zip"

Ré-activez le cache:

command sed -i -e "s/_PS_CACHE_ENABLED_.*/_PS_CACHE_ENABLED_', '1');/" \
    "${INSTALL_PATH}/config/settings.inc.php"

Remerciements