Installer Standard Edition sur un hébergement mutualisé

… sans commandes SSH et FTP 🤢

Les CMS modernes basés sur les commandes Composer et CLI ne peuvent pas être déployés facilement sur des environnements d’hébergement mutualisés sur lesquels seul FTP est disponible. Voici quelques outils pratiques pour déployer un Roadiz avec FTP.

La première condition est que vous devrez configurer un environnement local qui sera un miroir des fichiers de votre FTP le dossier, vendor/ inclus… oui. Prenez une très longue tasse de café lorsque vous initiez le premier envoi FTP, ce sera long, très long. Les envois suivants ne feront que pousser les nouveaux fichiers.

La seconde condition est que vous devez créer toutes vos entités de type de nœud sur votre environnement local d’abord pour pouvoir faire un miroir de toutes les classes GeneratedNodeSources\* car vous ne serez pas en mesure de les générer sur votre hébergement mutualisé.

Préparez votre environnement local avec Makefile

Standard-edition est fourni avec un exemple de Makefile afin que vous puissiez écrire une recette push-prod pour automatiser tous les processus en utilisant le paquet lftp. Assurez-vous qu’il est bien installé sur votre ordinateur :

# macOS
brew install lftp
# Ubuntu/Debian
apt-get install lftp
# …

Cette recette effacera vos fichiers de cache, elle générera les fichiers Apache .htaccess, copiera les ressources de votre thème en tant que vrais fichiers, miroir de tous les fichiers nécessaires sans toutes les exceptions (la liste peut être améliorée) puis copiera les ressources de votre thème à l’aide de liens symboliques.

push-prod:
    make cache
    bin/roadiz generate:htaccess
    bin/roadiz themes:assets:install ${THEME_PREFIX}
    lftp -e "mirror --only-newer --parallel=3 -R \
        --exclude '/\..+/$$' \
        -x 'app/conf/config\.yml' \
        -x '\.env' \
        -x '(README\.md|Makefile|Dockerfile|Vagrantfile)' \
        -x '(bin|docker|samples|tmp|\.git|\.idea|files)/' \
        -x 'app/(cache|logs|sessions|tmp)/' \
        -x 'web/files/' \
        -x 'node_modules/' \
        -x 'bower_components/' \
        -x 'themes/${THEME}/(app|node_modules|webpack)/' \
        -x '\.(psd|rev|log|cmd|bat|pif|scr|exe|c?sh|reg|vb?|ws?|sql|db)$$' \
        ./ ${FTP_REMOTE_PATH}" -u ${FTP_USER},${FTP_PASS} ${FTP_HOST}
    bin/roadiz themes:assets:install --relative --symlink ${THEME_PREFIX}

Assurez-vous que votre configuration correspond à votre plan d’hébergement partagé, par exemple, ajustez votre driver de cache sur file ou php pour obtenir des performances décentes.

cacheDriver:
    type: file
    host: null
    port: null