From 2c7afdec95926adcb88c6cb10ad4fc8d31239b0e Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Mon, 7 Jul 2025 11:34:02 +0000 Subject: [PATCH] s'occuper de wordpress --- srcs/requirements/mariadb/Dockerfile | 20 ++++++--- srcs/requirements/mariadb/conf/50-server.cnf | 24 ++++++++--- srcs/requirements/mariadb/tools/mariadb.sh | 41 +++++++++++++++++++ srcs/requirements/mariadb/tools/script.sh | 14 ------- srcs/requirements/nginx/Dockerfile | 33 +++++++++------ srcs/requirements/nginx/conf/nginx.conf | 43 +++++++++++--------- srcs/requirements/nginx/tools/run.sh | 26 ------------ 7 files changed, 118 insertions(+), 83 deletions(-) create mode 100644 srcs/requirements/mariadb/tools/mariadb.sh delete mode 100644 srcs/requirements/mariadb/tools/script.sh delete mode 100644 srcs/requirements/nginx/tools/run.sh diff --git a/srcs/requirements/mariadb/Dockerfile b/srcs/requirements/mariadb/Dockerfile index c12a196..b55edfc 100644 --- a/srcs/requirements/mariadb/Dockerfile +++ b/srcs/requirements/mariadb/Dockerfile @@ -1,7 +1,17 @@ FROM debian:bullseye -RUN apt update -y -RUN apt upgrade -y -RUN apt install mariadb-server -y +RUN apt-get update -y && \ + apt-get upgrade -y && \ + apt-get install -y mariadb-server && \ + mkdir -p /var/run/mysqld && \ + chown -R mysql:mysql /var/lib/mysql /var/run/mysqld COPY conf/50-server.cnf /etc/mysql/mariadb.conf.d/50-server.cnf -COPY tools/script.sh /tools/script.sh -ENTRYPOINT ["sh", "/tools/script.sh"] \ No newline at end of file +RUN mkdir -p /var/run/mysqld +RUN chown -R mysql:mysql /var/lib/mysql /var/run/mysqld +COPY ./tools/mariadb.sh /mariadb.sh + +RUN chmod +x /mariadb.sh + +EXPOSE 3306 +RUN ./mariadb.sh + +ENTRYPOINT ["/usr/sbin/mysqld"] \ No newline at end of file diff --git a/srcs/requirements/mariadb/conf/50-server.cnf b/srcs/requirements/mariadb/conf/50-server.cnf index 56fc806..e51a39b 100644 --- a/srcs/requirements/mariadb/conf/50-server.cnf +++ b/srcs/requirements/mariadb/conf/50-server.cnf @@ -1,7 +1,21 @@ - [mysqld] -datadir = /var/lib/mysql -socket = /run/mysqld/mysqld.sock -bind_address=* + +user = mysql + +socket = /var/run/mysqld/mysqld.sock + port = 3306 -user = mysql \ No newline at end of file + +datadir = /var/lib/mysql + +key_buffer_size = 16M + +max_allowed_packet = 16M + +log_error = /var/log/mysql/error.log + +character-set-server = utf8mb4 + +collation-server = utf8mb4_general_ci + +bind-address = 0.0.0.0 \ No newline at end of file diff --git a/srcs/requirements/mariadb/tools/mariadb.sh b/srcs/requirements/mariadb/tools/mariadb.sh new file mode 100644 index 0000000..d716717 --- /dev/null +++ b/srcs/requirements/mariadb/tools/mariadb.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +if [ ! -e "/var/lib/mysql/.done" ]; then + mysql_install_db --user=mysql --datadir=/var/lib/mysql + /usr/sbin/mysqld --skip-networking & + + for i in {50..0}; do + if echo 'SELECT 1' | mysql &> /dev/null; then + break + fi + sleep 1 + done + + if [ "$i" -eq 0 ]; then + echo >&2 'MariaDB' + exit 1 + fi + + mysql -u root -e "CREATE DATABASE IF NOT EXISTS $SQL_DATABASE;" + + mysql -u root -e "CREATE USER '$SQL_USER'@'%' IDENTIFIED BY '$SQL_PASSWORD';" + + mysql -u root -e "GRANT ALL ON $SQL_DATABASE.* TO '$SQL_USER'@'%';" + + mysql -u root -e "FLUSH PRIVILEGES;" + + mysql -u root -e "SET PASSWORD FOR 'root'@'localhost' = PASSWORD('$SQL_ROOT_PASSWORD');" + + + mysqladmin -u root -p$SQL_ROOT_PASSWORD shutdown + + + touch /var/lib/mysql/.done +fi + +exec "$@" + + + + + diff --git a/srcs/requirements/mariadb/tools/script.sh b/srcs/requirements/mariadb/tools/script.sh deleted file mode 100644 index 4b719ba..0000000 --- a/srcs/requirements/mariadb/tools/script.sh +++ /dev/null @@ -1,14 +0,0 @@ -service mysql start; -mysql -e "CREATE DATABASE IF NOT EXISTS \`${SQL_DATABASE}\`;" -mysql -e "CREATE USER IF NOT EXISTS \`${SQL_USER}\`@'localhost' IDENTIFIED BY '${SQL_PASSWORD}';" -mysql -e "GRANT ALL PRIVILEGES ON \`${SQL_DATABASE}\`.* TO \`${SQL_USER}\`@'%' IDENTIFIED BY '${SQL_PASSWORD}';" -mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY '${SQL_ROOT_PASSWORD}';" -mysql -e "FLUSH PRIVILEGES;" -mysqladmin -u root -p$SQL_ROOT_PASSWORD shutdown -exec mysqld_safe - - - - - - diff --git a/srcs/requirements/nginx/Dockerfile b/srcs/requirements/nginx/Dockerfile index f9b9da2..8196d9e 100644 --- a/srcs/requirements/nginx/Dockerfile +++ b/srcs/requirements/nginx/Dockerfile @@ -1,14 +1,21 @@ FROM debian:bullseye -RUN apt update -y -RUN apt upgrade -y -RUN apt install nginx -y -RUN apt install openssl -y -RUN mkdir -p /etc/nginx/ssl -RUN mkdir -p /var/run/nginx -RUN openssl req -x509 -nodes -out /etc/nginx/ssl/inception.crt -keyout /etc/nginx/ssl/inception.key -subj "/C=FR/ST=IDF/L=Paris/O=42/OU=42/CN=yantoine.42.fr/UID=yantoine" -COPY conf/nginx.conf /etc/nginx/nginx.conf -RUN chmod 755 /var/www/html -RUN chown -R www-data:www-data /var/www/html -COPY ./tools/run.sh /run.sh -RUN chmod +x /run.sh -ENTRYPOINT ["/run.sh"] + +RUN apt-get update -y && \ + apt-get upgrade -y && \ + apt-get install -y nginx openssl && \ + mkdir -p /etc/nginx/ssl /var/run/nginx && \ + openssl req -x509 -nodes -days 365 -newkey rsa:2048 \ + -keyout /etc/ssl/private/server_pkey.pem \ + -out /etc/nginx/ssl/server.crt \ + -subj "/C=FR/ST=IDF/L=Paris/O=42/OU=42/CN=yantoine.42.fr/UID=yantoine" + +COPY conf/nginx.conf /etc/nginx/sites-available/nginx.conf + +# Suppression du site par défaut et activation de la nouvelle configuration +RUN rm /etc/nginx/sites-enabled/default && \ + ln -s /etc/nginx/sites-available/nginx.conf /etc/nginx/sites-enabled/ + +EXPOSE 443 + +ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"] + diff --git a/srcs/requirements/nginx/conf/nginx.conf b/srcs/requirements/nginx/conf/nginx.conf index 4504243..618aeb6 100644 --- a/srcs/requirements/nginx/conf/nginx.conf +++ b/srcs/requirements/nginx/conf/nginx.conf @@ -1,25 +1,28 @@ server { - #SSL/TLS Configuration - listen 443 ssl; - listen [::]:443 ssl; - ssl_protocols TLSv1.3; - ssl_certificate /etc/nginx/ssl/inception.crt; - ssl_certificate_key /etc/nginx/ssl/inception.key; + listen 443 ssl default_server; + ssl_certificate /etc/ssl/certs/server.crt; - #root and index and server_name - root /var/www/html; - server_name yantoine.42.fr; - #index; - index index.php - - # Pour toutes les requetes php - location ~ [^/]\.php(/|$) { - try_files $uri =404; - fastcgi_pass wordpress:9000; - include snippets/fastcgi-php.conf; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - } + ssl_certificate_key /etc/ssl/private/server_pkey.pem; + root /var/www/html; + + index index.php; + + server_name $DOMAIN_NAME; + + location / { + try_files $uri $uri/ =404; + } + + location ~ \.php$ { + # Include the fastcgi-php configuration snippet + include snippets/fastcgi-php.conf; + + # Set the SCRIPT_FILENAME parameter to the full path of the requested script + fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name; + + # Forward requests to the PHP-FPM service listening on the wordpress host on port 9000 + fastcgi_pass wordpress:9000; } } +} diff --git a/srcs/requirements/nginx/tools/run.sh b/srcs/requirements/nginx/tools/run.sh deleted file mode 100644 index 4d74138..0000000 --- a/srcs/requirements/nginx/tools/run.sh +++ /dev/null @@ -1,26 +0,0 @@ -#!/bin/bash - -echo " -server { - listen 443 ssl; - listen [::]:443 ssl; - #server_name yantoine.42.fr - ssl_certificate /etc/nginx/ssl/inception.crt; - ssl_certificate_key /etc/nginx/ssl/inception.key;" > /etc/nginx/sites-available/default - - -echo ' - ssl_protocols TLSv1.3; - index index.php - root /var/www/html; - - location ~ [^/]\.php(/|$) { - try_files $uri =404; - fastcgi_pass wordpress:9000; - include fastcgi_params; - fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; - } -} ' >> /etc/nginx/sites-available/default - - -nginx -g "daemon off;"