WP-Deploy/deploy.sh
2024-09-24 22:48:53 +02:00

126 lines
4.2 KiB
Bash
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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
# Vérifier si le script est lancé avec les droits sudo
if [[ "$EUID" -ne 0 ]]; then
# Afficher un message d'avertissement
echo "Veuillez lancer ce script avec les droits sudo"
# Quitter le script avec un code d'erreur
exit 1
fi
# Génération du mot de passe
charset='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz!"#$%&'\''()*+,-./:;<=>?@[\]^_`{|}~'
password=$(openssl rand -base64 30 | tr -dc "$charset" | fold -w 30)
# Question pour la création du site internet
read -rp "Nom du site internet : " -e NAME_WEBSITE
read -rp "Utilisateur de la BDD : " -e USER_BDD
read -rp "Mot de passe de la BDD : " -e -i "${password}" PWD_BDD
read -rp "Prefix que vous voulez utilisez : " -e PREFIX
read -rp "Compte a utiliser pour wordpress : " -e LOGIN
read -sp "Mot de passe : " -e PWD_USER
read -rp "Mail pour le compte administrateur : " -e MAIL
read -rp "URL du site internet sans le http/s: " -e URL
# Création de la base de donnée
mysql -e "CREATE DATABASE $NAME_WEBSITE;"
mysql -e "CREATE USER '$USER_BDD'@'localhost' IDENTIFIED BY '$PWD_BDD';"
mysql -e "GRANT ALL ON $NAME_WEBSITE.* TO '$USER_BDD'@'localhost';"
mysql -e "FLUSH PRIVILEGES;"
# Téléchargement et installation du Wordpress
cd /var/www/html && wget https://fr.wordpress.org/latest-fr_FR.tar.gz > /dev/null 2>&1
tar -xvzf latest-fr_FR.tar.gz -C /var/www/html/ > /dev/null 2>&1
mkdir $NAME_WEBSITE
cp -r wordpress/* /var/www/html/$NAME_WEBSITE
chown -R apache:apache /var/www/html/$NAME_WEBSITE
rm -rf wordpress latest-fr_FR.tar.gz
# Création des clées de chiffrement du Wordpress
AUTH_KEY=$(openssl rand -hex 64)
SECURE_AUTH_KEY=$(openssl rand -hex 64)
LOGGED_IN_KEY=$(openssl rand -hex 64)
NONCE_KEY=$(openssl rand -hex 64)
AUTH_SALT=$(openssl rand -hex 64)
SECURE_AUTH_SALT=$(openssl rand -hex 64)
LOGGED_IN_SALT=$(openssl rand -hex 64)
NONCE_SALT=$(openssl rand -hex 64)
# Création du fichier wp-config.php
echo "<?php
/** Nom de la base de données de WordPress. */
define( 'DB_NAME', '$NAME_WEBSITE' );
/** Utilisateur de la base de données MySQL. */
define( 'DB_USER', '$USER_BDD' );
/** Mot de passe de la base de données MySQL. */
define( 'DB_PASSWORD', '$PWD_BDD' );
/** 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' );
define( 'DB_COLLATE', '' );
define( 'AUTH_KEY', '$AUTH_KEY' );
define( 'SECURE_AUTH_KEY', '$SECURE_AUTH_KEY' );
define( 'LOGGED_IN_KEY', '$LOGGED_IN_KEY' );
define( 'NONCE_KEY', '$NONCE_KEY' );
define( 'AUTH_SALT', '$AUTH_SALT' );
define( 'SECURE_AUTH_SALT', '$SECURE_AUTH_SALT' );
define( 'LOGGED_IN_SALT', '$LOGGED_IN_SALT' );
define( 'NONCE_SALT', '$NONCE_SALT' );
"'$table_prefix'" = '$PREFIX';
define( 'WP_DEBUG', false );
if ( ! defined( 'ABSPATH' ) )
define( 'ABSPATH', dirname( __FILE__ ) . '/' );
require_once( ABSPATH . 'wp-settings.php' );" > /var/www/html/$NAME_WEBSITE/wp-config.php
# Création du fichier HTTPD
echo "
<VirtualHost *:80>
ServerName $URL
ServerAlias www.$URL
ServerAdmin $MAIL
DocumentRoot /var/www/html/$NAME_WEBSITE
<Directory /var/www/html/$NAME_WEBSITE>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/log/httpd/$NAME_WEBSITE-error.log
CustomLog /var/log/httpd/$NAME_WEBSITE-access.log combined
</VirtualHost> " > /etc/httpd/conf.d/$NAME_WEBSITE.conf
# Création des fichiers LOG
touch /var/log/httpd/$NAME_WEBSITE-access.log
touch /var/log/httpd/$NAME_WEBSITE-error.log
# Automatisation de l'install wordpress
cd /var/www/html/$NAME_WEBSITE
/usr/local/bin/wp core install --url=https://$URL/ --title=$NAME_WEBSITE --admin_user=$LOGIN --admin_password=$PWD_USER --admin_email=$MAIL --allow-root > /dev/null 2>&1
# Mettre le HTTPS dans le fichier de conf de WordPress
read -p "Voulez-vous mettre le HTTPS ? (o/n) : " -e -i o answer
if [[ $answer == "o" ]]; then
echo "<?php
if (isset(\$_SERVER['HTTP_X_FORWARDED_PROTO']) && \$_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
\$_SERVER['HTTPS'] = 'on';
}" >> /var/www/html/\$NAME_WEBSITE/wp-config.php
fi
# RESTART HTTPD SERVICE
systemctl restart httpd
echo "le site internet $NAME_WEBSITE est créer"