From 3e0338ca5fb9341767c924c0dc368368f4a785f1 Mon Sep 17 00:00:00 2001 From: kiu Date: Tue, 24 Sep 2024 22:48:53 +0200 Subject: [PATCH] V1 --- README.md | 37 ++++++++++++++++ deploy.sh | 125 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 162 insertions(+) create mode 100644 README.md create mode 100644 deploy.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..a71a183 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# WP-Deploy + +[![Linux](https://svgshare.com/i/Zhy.svg)](https://svgshare.com/i/Zhy.svg) [![Bash Shell](https://badges.frapsoft.com/bash/v1/bash.png?v=103)](https://github.com/ellerbrock/open-source-badges/) [![GPLv3 license](https://img.shields.io/badge/License-GPLv3-blue.svg)](http://perso.crans.org/besson/LICENSE.html) [![Open Source? Yes!](https://badgen.net/badge/Open%20Source%20%3F/Yes%21/blue?icon=github)](https://github.com/Naereen/badges/) [![Generic badge](https://img.shields.io/badge/Version-V1.1.2-Green.svg)](https://shields.io/) + +Installation automatique de Wordpress. + +## Pour commencer + +Entrez ici les instructions pour bien débuter avec votre projet... + +### Pré-requis + +Ce qu'il est requis pour faire fonctionner le script + +- Rocky Linux 9 +- Apache +- MariaDB +- WP-cli + +### Installation + +Pré-requis Wordpress : +- sudo dnf install httpd tar wget mariadb-server php php-zip php-intl php-mysqlnd php-dom php-simplexml php-xml php-xmlreader php-curl php-exif php-ftp php-gd php-iconv php-json php-mbstring php-posix php-sockets php-tokenizer +- systemctl enable --now httpd mariadb php-fpm +- mysql_secure_installation +Faire une configuration simple + +Installation de wp-cli : +- wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar +- chmod +x wp-cli.phar +- mv wp-cli.phar /usr/local/bin/wp + +ENJOY il suffit de lancer le script avec ./deploy.sh + +## Auteurs +* **Quentin Leduc ** _alias_ [@kiu](https://git.netwaze.fr/kiu) + diff --git a/deploy.sh b/deploy.sh new file mode 100644 index 0000000..d064793 --- /dev/null +++ b/deploy.sh @@ -0,0 +1,125 @@ +#!/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 " /var/www/html/$NAME_WEBSITE/wp-config.php + +# Création du fichier HTTPD +echo " + + ServerName $URL + ServerAlias www.$URL + ServerAdmin $MAIL + DocumentRoot /var/www/html/$NAME_WEBSITE + + + Options -Indexes +FollowSymLinks + AllowOverride All + + + ErrorLog /var/log/httpd/$NAME_WEBSITE-error.log + CustomLog /var/log/httpd/$NAME_WEBSITE-access.log combined + " > /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 "> /var/www/html/\$NAME_WEBSITE/wp-config.php +fi + +# RESTART HTTPD SERVICE +systemctl restart httpd + +echo "le site internet $NAME_WEBSITE est créer"