lxd-selfhosting-scripts/install-wordpress-multisite.bash
2018-02-11 16:09:27 +01:00

161 lines
5.5 KiB
Bash
Executable File
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
CONTAINER=$1
APPNAME="wordpress"
APPURL="https://fr.wordpress.org/wordpress-4.7.3-fr_FR.zip"
TMPDIR="/tmp"
INSTALLDIR="/var/www"
DOMAIN="logerais.com"
TIMEZONE="Europe/Paris"
if [ -z "$CONTAINER" ]; then echo "Missing parameter"; exit 1 ; fi
# Set container Timezone
lxc file edit "$CONTAINER/etc/timezone" <<< "${TIMEZONE}"
# Install packages
lxc exec $CONTAINER -- apt update
lxc exec $CONTAINER -- apt install -y curl wget tar unzip
lxc exec $CONTAINER -- apt install -y aspell aspell-fr hunspell hunspell-fr enchant
lxc exec $CONTAINER -- apt install -y apache2 libapache2-mod-php
lxc exec $CONTAINER -- apt install -y mariadb-client mariadb-server
lxc exec $CONTAINER -- apt install -y php
lxc exec $CONTAINER -- apt install -y php-curl php-intl php-json php-xml php-gd
lxc exec $CONTAINER -- apt install -y php-mysql
# Install Web App
lxc exec $CONTAINER -- bash <<< "cd ${TMPDIR} && wget ${APPURL}"
lxc exec $CONTAINER -- bash <<< "unzip ${TMPDIR}/${APPNAME}-*.zip -d ${INSTALLDIR}"
lxc exec $CONTAINER -- chown -R "www-data:www-data" "${INSTALLDIR}/${APPNAME}"
# Create Database
lxc exec $CONTAINER -- mysql <<< "CREATE USER '${APPNAME}'@'localhost' IDENTIFIED BY '${APPNAME}';"
lxc exec $CONTAINER -- mysql <<< "CREATE DATABASE ${APPNAME};"
lxc exec $CONTAINER -- mysql <<< "GRANT ALL PRIVILEGES ON ${APPNAME}.* to ${APPNAME}@localhost;"
lxc exec $CONTAINER -- mysql <<< "FLUSH PRIVILEGES;"
# Configure PHP
lxc exec $CONTAINER -- sed -i -e "s|;date.timezone.*|date.timezone = \"${TIMEZONE}\"|" /etc/php/7.0/apache2/php.ini
# Configure Apache
lxc exec $CONTAINER -- a2enmod rewrite
lxc file edit "$CONTAINER/etc/apache2/sites-available/${APPNAME}.conf" <<EOF
<VirtualHost *:80>
ServerName ${APPNAME}.${DOMAIN}
ServerAdmin admin@${DOMAIN}
DocumentRoot /var/www/${APPNAME}
ErrorLog \${APACHE_LOG_DIR}/${APPNAME}.error.log
CustomLog \${APACHE_LOG_DIR}/${APPNAME}.access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
EOF
#lxc exec $CONTAINER -- rm /etc/apache2/sites-enabled/default
lxc exec $CONTAINER -- ln -s "../sites-available/${APPNAME}.conf" "/etc/apache2/sites-enabled/${APPNAME}.conf"
lxc exec $CONTAINER -- systemctl reload apache2.service
# Configure wordpress
lxc file edit "$CONTAINER/${INSTALLDIR}/${APPNAME}/wp-config.php" <<EOF
<?php
/**
* La configuration de base de votre installation WordPress.
*
* Ce fichier contient les réglages de configuration suivants : réglages MySQL,
* préfixe de table, clés secrètes, langue utilisée, et ABSPATH.
* Vous pouvez en savoir plus à leur sujet en allant sur
* {@link http://codex.wordpress.org/fr:Modifier_wp-config.php Modifier
* wp-config.php}. Cest votre hébergeur qui doit vous donner vos
* codes MySQL.
*
* Ce fichier est utilisé par le script de création de wp-config.php pendant
* le processus dinstallation. Vous navez pas à utiliser le site web, vous
* pouvez simplement renommer ce fichier en "wp-config.php" et remplir les
* valeurs.
*
* @package WordPress
*/
/* Multisite */
define('WP_ALLOW_MULTISITE', true);
// ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
/** Nom de la base de données de WordPress. */
define('DB_NAME', '${APPNAME}');
/** Utilisateur de la base de données MySQL. */
define('DB_USER', '${APPNAME}');
/** Mot de passe de la base de données MySQL. */
define('DB_PASSWORD', '${APPNAME}');
/** Adresse de lhébergement MySQL. */
define('DB_HOST', 'localhost');
/** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
define('DB_CHARSET', 'utf8');
/** Type de collation de la base de données.
* Ny touchez que si vous savez ce que vous faites.
*/
define('DB_COLLATE', '');
/**#@+
* Clés uniques dauthentification et salage.
*
* Remplacez les valeurs par défaut par des phrases uniques !
* Vous pouvez générer des phrases aléatoires en utilisant
* {@link https://api.wordpress.org/secret-key/1.1/salt/ le service de clefs secrètes de WordPress.org}.
* Vous pouvez modifier ces phrases à nimporte quel moment, afin dinvalider tous les cookies existants.
* Cela forcera également tous les utilisateurs à se reconnecter.
*
* @since 2.6.0
*/
$(curl https://api.wordpress.org/secret-key/1.1/salt/)
/**#@-*/
/**
* Préfixe de base de données pour les tables de WordPress.
*
* Vous pouvez installer plusieurs WordPress sur une seule base de données
* si vous leur donnez chacune un préfixe unique.
* Nutilisez que des chiffres, des lettres non-accentuées, et des caractères soulignés !
*/
\$table_prefix = 'wp_';
/**
* Pour les développeurs : le mode déboguage de WordPress.
*
* En passant la valeur suivante à "true", vous activez laffichage des
* notifications derreurs pendant vos essais.
* Il est fortemment recommandé que les développeurs dextensions et
* de thèmes se servent de WP_DEBUG dans leur environnement de
* développement.
*
* Pour plus dinformation sur les autres constantes qui peuvent être utilisées
* pour le déboguage, rendez-vous sur le Codex.
*
* @link https://codex.wordpress.org/Debugging_in_WordPress
*/
define('WP_DEBUG', false);
/* Cest tout, ne touchez pas à ce qui suit ! */
/** Chemin absolu vers le dossier de WordPress. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
/** Réglage des variables de WordPress et de ses fichiers inclus. */
require_once(ABSPATH . 'wp-settings.php');
EOF
lxc exec $CONTAINER -- chown -R "www-data:www-data" "${INSTALLDIR}/${APPNAME}"