161 lines
5.5 KiB
Bash
161 lines
5.5 KiB
Bash
|
#!/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}. C’est 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 d’installation. Vous n’avez 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 l’hé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.
|
|||
|
* N’y touchez que si vous savez ce que vous faites.
|
|||
|
*/
|
|||
|
define('DB_COLLATE', '');
|
|||
|
|
|||
|
/**#@+
|
|||
|
* Clés uniques d’authentification 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 à n’importe quel moment, afin d’invalider 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.
|
|||
|
* N’utilisez 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 l’affichage des
|
|||
|
* notifications d’erreurs pendant vos essais.
|
|||
|
* Il est fortemment recommandé que les développeurs d’extensions et
|
|||
|
* de thèmes se servent de WP_DEBUG dans leur environnement de
|
|||
|
* développement.
|
|||
|
*
|
|||
|
* Pour plus d’information 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);
|
|||
|
|
|||
|
/* C’est 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}"
|