This commit is contained in:
Ubuntu
2025-07-07 20:18:25 +00:00
parent 95024e208c
commit 2228a68ff3
25 changed files with 207 additions and 413 deletions
+21 -14
View File
@@ -1,22 +1,29 @@
#LISTE DE CHOSE A FAIRE POUR LES PC DE 42
#CHANGER LE PATH en login dans le makefile, dockerfile et docker-compose file
PROJECT_NAME=inception
DOCKER_COMPOSE=docker-compose
DC_FILE=srcs/docker-compose.yml
ENV_FILE=srcs/.env
all:
sudo mkdir -p /home/yantoine/data/wordpress
sudo mkdir -p /home/yantoine/data/mariadb
sudo chmod 777 /etc/hosts
echo "127.0.0.1 yantoine.42.fr" >> /etc/hosts
sudo docker-compose -f srcs/docker-compose.yml up --build -d
all: up
up:
sudo docker-compose -f srcs/docker-compose.yml up --build -d
@mkdir -p /home/yantoine/data/mariadb
@mkdir -p /home/yantoine/data/wordpress
@$(DOCKER_COMPOSE) -f $(DC_FILE) --env-file $(ENV_FILE) up -d --build
re: fclean all
down:
@$(DOCKER_COMPOSE) -f $(DC_FILE) --env-file $(ENV_FILE) down
clean:
# Arrête et supprime containers + volumes liés au projet
@$(DOCKER_COMPOSE) -f $(DC_FILE) --env-file $(ENV_FILE) down -v --remove-orphans
fclean:
sudo docker-compose -f srcs/docker-compose.yml down --rmi all --volumes
sudo rm -rf /home/yantoine/data
fclean: clean
# Supprime images du projet + system prune + supprime données sur l'hôte
@docker image rm -f $(PROJECT_NAME)_wordpress $(PROJECT_NAME)_mariadb $(PROJECT_NAME)_nginx || true
@docker system prune -af
@rm -rf /home/yantoine/data/mariadb
@rm -rf /home/yantoine/data/wordpress
.PHONY: all up fclean re
re: fclean up
.PHONY: all up down clean fclean re
View File
+8 -11
View File
@@ -1,12 +1,9 @@
SQL_DATABASE=mariadb
SQL_USER=www-http
SQL_PASSWORD=vivementlaspe
SQL_ROOT_PASSWORD=enorme
MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password
MYSQL_DATABASE=wordpress
MYSQL_USER_FILE=/run/secrets/db_user
MYSQL_PASSWORD_FILE=/run/secrets/db_password
WP_ADMIN_USER_FILE=/run/secrets/wp_admin_user
WP_ADMIN_PASSWORD_FILE=/run/secrets/wp_admin_password
WP_ADMIN_EMAIL=admin@yantoine.42.fr
DOMAIN_NAME=yantoine.42.fr
WP_TITLE=LE_SUPER_SITE
WP_ADMIN_USER=leboss
WP_ADMIN_PASSWORD=lemecfort
WP_ADMIN_EMAIL=leboss@mail.com
WP_NORMAL_USER=lestagiaire
WP_NORMAL_USER_PASSWORD=rameneuncafe
WP_NORMAL_USER_EMAIL=lestagiaire@mail.com
+78 -66
View File
@@ -1,71 +1,83 @@
version: "3"
version: '3.8'
services:
mariadb:
build: ./requirements/mariadb
container_name: mariadb
restart: always
volumes:
- mariadb_data:/var/lib/mysql
- ./tools/init.sql:/docker-entrypoint-initdb.d/init.sql:ro
environment:
MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
secrets:
- db_root_password
- db_user
- db_password
networks:
- inception
wordpress:
build: ./requirements/wordpress
container_name: wordpress
restart: always
depends_on:
- mariadb
volumes:
- wordpress_data:/var/www/html
environment:
MYSQL_DATABASE: wordpress_db
MYSQL_USER_FILE: /run/secrets/db_user
MYSQL_PASSWORD_FILE: /run/secrets/db_password
secrets:
- db_root_password
- db_user
- db_password
- wp_admin_user
- wp_admin_password
networks:
- inception
nginx:
build: ./requirements/nginx
container_name: nginx
restart: always
depends_on:
- wordpress
ports:
- "443:443"
volumes:
- wordpress_data:/var/www/html
networks:
- inception
volumes:
mariadb_data:
driver: local
driver_opts:
type: 'none'
device: '/home/yantoine/data/mariadb'
o: 'bind'
wordpress_data:
driver: local
driver_opts:
type: 'none'
device: '/home/yantoine/data/wordpress'
o: 'bind'
networks:
inception:
driver: bridge
services:
nginx:
container_name: nginx
image: nginx
volumes:
- wp:/var/www/html
networks:
- inception
depends_on:
- wordpress
build:
context: ./requirements/nginx
dockerfile: Dockerfile
env_file: .env
ports:
- "443:443"
restart: always
wordpress:
container_name: wordpress
env_file: .env
image: wordpress
volumes:
- wp:/var/www/html
networks:
- inception
build:
context: ./requirements/wordpress
dockerfile: Dockerfile
depends_on:
- mariadb
restart: always
expose:
- "9000"
mariadb:
container_name: mariadb
networks:
- inception
build:
context: ./requirements/mariadb
dockerfile: Dockerfile
image: mariadb
env_file: .env
volumes:
- db:/var/lib/mysql
restart: always
expose:
- "3306"
volumes:
wp:
driver: local
driver_opts:
type: none
o: bind
device: ${HOME}/data/wp
db:
driver: local
driver_opts:
type: none
o: bind
device: ${HOME}/data/db
secrets:
db_root_password:
file: ./secrets/db_root_password.txt
db_user:
file: ./secrets/db_user.txt
db_password:
file: ./secrets/db_password.txt
wp_admin_user:
file: ./secrets/wp_admin_user.txt
wp_admin_password:
file: ./secrets/wp_admin_password.txt
+7 -13
View File
@@ -1,17 +1,11 @@
FROM debian:bullseye
RUN apt-get update -y && \
apt-get upgrade -y && \
FROM debian:12.5-slim
RUN apt-get update && \
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
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
rm -rf /var/lib/apt/lists/*
COPY conf/my.cnf /etc/mysql/my.cnf
COPY init.sql /docker-entrypoint-initdb.d/
EXPOSE 3306
RUN ./mariadb.sh
ENTRYPOINT ["/usr/sbin/mysqld"]
CMD ["mysqld_safe"]
@@ -1,21 +0,0 @@
[mysqld]
user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
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
+2
View File
@@ -0,0 +1,2 @@
[mysqld]
bind-address=0.0.0.0
+7
View File
@@ -0,0 +1,7 @@
CREATE DATABASE IF NOT EXISTS wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER IF NOT EXISTS 'wp_user'@'%' IDENTIFIED BY 'wp_pass123';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'%';
FLUSH PRIVILEGES;
@@ -1,41 +0,0 @@
#!/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 "$@"
+6 -15
View File
@@ -1,21 +1,12 @@
FROM debian:bullseye
FROM alpine:3.19
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"
RUN apk add --no-cache nginx openssl
COPY conf/nginx.conf /etc/nginx/sites-available/nginx.conf
COPY conf/default.conf /etc/nginx/http.d/default.conf
COPY tools/generate_ssl.sh /tmp/generate_ssl.sh
# 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/
RUN chmod +x /tmp/generate_ssl.sh && /tmp/generate_ssl.sh
EXPOSE 443
ENTRYPOINT ["/usr/sbin/nginx", "-g", "daemon off;"]
CMD ["nginx", "-g", "daemon off;"]
+22
View File
@@ -0,0 +1,22 @@
server {
listen 443 ssl;
server_name yantoine.42.fr;
ssl_certificate /etc/ssl/private/yantoine.42.fr.crt;
ssl_certificate_key /etc/ssl/private/yantoine.42.fr.key;
ssl_protocols TLSv1.2 TLSv1.3;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass wordpress:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
-28
View File
@@ -1,28 +0,0 @@
server {
listen 443 ssl default_server;
ssl_certificate /etc/ssl/certs/server.crt;
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;
}
}
}
@@ -0,0 +1,7 @@
#!/bin/sh
mkdir -p /etc/ssl/private
openssl req -x509 -nodes -days 365 \
-subj "/C=FR/ST=Paris/L=Paris/O=42/OU=Login/CN=yantoine.42.fr" \
-newkey rsa:2048 \
-keyout /etc/ssl/private/yantoine.42.fr.key \
-out /etc/ssl/private/yantoine.42.fr.crt
-42
View File
@@ -1,42 +0,0 @@
!_TAG_EXTRA_DESCRIPTION anonymous /Include tags for non-named objects like lambda/
!_TAG_EXTRA_DESCRIPTION fileScope /Include tags of file scope/
!_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/
!_TAG_EXTRA_DESCRIPTION subparser /Include tags generated by subparsers/
!_TAG_FIELD_DESCRIPTION epoch /the last modified time of the input file (only for F\/file kind tag)/
!_TAG_FIELD_DESCRIPTION file /File-restricted scoping/
!_TAG_FIELD_DESCRIPTION input /input file/
!_TAG_FIELD_DESCRIPTION name /tag name/
!_TAG_FIELD_DESCRIPTION pattern /pattern/
!_TAG_FIELD_DESCRIPTION typeref /Type and name of a variable or typedef/
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_KIND_DESCRIPTION!Iniconf k,key /keys/
!_TAG_KIND_DESCRIPTION!Iniconf s,section /sections/
!_TAG_KIND_DESCRIPTION!Sh a,alias /aliases/
!_TAG_KIND_DESCRIPTION!Sh f,function /functions/
!_TAG_KIND_DESCRIPTION!Sh h,heredoc /label for here document/
!_TAG_KIND_DESCRIPTION!Sh s,script /script files/
!_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/
!_TAG_OUTPUT_FILESEP slash /slash or backslash/
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
!_TAG_OUTPUT_VERSION 0.0 /current.age/
!_TAG_PARSER_VERSION!Iniconf 0.0 /current.age/
!_TAG_PARSER_VERSION!Sh 0.0 /current.age/
!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
!_TAG_PROC_CWD /home/null/Documents/Inception/srcs/requirements/ //
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL https://ctags.io/ /official site/
!_TAG_PROGRAM_VERSION 6.1.0 /653ca9204/
!_TAG_ROLE_DESCRIPTION!Sh!heredoc endmarker /end marker/
!_TAG_ROLE_DESCRIPTION!Sh!script loaded /loaded/
clear_env wordpress/conf/www.conf /^clear_env = no$/;" k section:www
group wordpress/conf/www.conf /^group = www-data$/;" k section:www
listen wordpress/conf/www.conf /^listen = 0.0.0.0:9000$/;" k section:www
max_children wordpress/conf/www.conf /^pm.max_children = 5$/;" k section:www
max_spare_servers wordpress/conf/www.conf /^pm.max_spare_servers = 3$/;" k section:www
min_spare_servers wordpress/conf/www.conf /^pm.min_spare_servers = 1$/;" k section:www
pm wordpress/conf/www.conf /^pm = dynamic$/;" k section:www
start_servers wordpress/conf/www.conf /^pm.start_servers = 2$/;" k section:www
user wordpress/conf/www.conf /^user = www-data$/;" k section:www
www wordpress/conf/www.conf /^[www]$/;" s
+25 -24
View File
@@ -1,32 +1,33 @@
FROM debian:bullseye
FROM debian:11
RUN apt-get update && apt-get install -y \
mariadb-client \
curl \
php7.4-fpm \
php7.4-mysql \
php7.4-cli \
php7.4-curl \
php7.4-gd \
php7.4-mbstring \
php7.4-xml \
php7.4-zip \
&& apt-get clean
RUN apt-get update -y && \
apt-get upgrade -y && \
apt-get install -y php7.4 php-fpm php-cli php-mysql mariadb-client curl
# Fix: créer le dossier /run/php
RUN mkdir -p /run/php
RUN mkdir /run/php
RUN mkdir -p /var/www/html/
RUN chown -R www-data:www-data /var/www/html
RUN curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
RUN chmod +x wp-cli.phar
RUN mv wp-cli.phar /usr/local/bin/wp
COPY www.conf /etc/php/7.4/fpm/pool.d/www.conf
COPY tools/wordpress.sh /wordpress.sh
RUN chmod +x /wordpress.sh
EXPOSE 9000
# Fix: forcer php-fpm à écouter sur le port 9000
RUN sed -i 's|listen = /run/php/php7.4-fpm.sock|listen = 9000|' /etc/php/7.4/fpm/pool.d/www.conf
WORKDIR /var/www/html
ENTRYPOINT ["/bin/bash", "/wordpress.sh"]
RUN curl -o wordpress.tar.gz https://wordpress.org/latest.tar.gz && \
tar -xzf wordpress.tar.gz --strip-components=1 && \
rm wordpress.tar.gz
COPY conf/wp-config.php /var/www/html/wp-config.php
EXPOSE 9000
CMD ["/usr/sbin/php-fpm7.4", "-F"]
@@ -0,0 +1,18 @@
<?php
define( 'DB_NAME', getenv('MYSQL_DATABASE') );
define( 'DB_USER', trim(file_get_contents(getenv('MYSQL_USER_FILE'))) );
define( 'DB_PASSWORD', trim(file_get_contents(getenv('MYSQL_PASSWORD_FILE'))) );
define( 'DB_HOST', 'mariadb' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );
$table_prefix = 'wp_';
define( 'WP_DEBUG', false );
if ( ! defined( 'ABSPATH' ) ) {
define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';
-23
View File
@@ -1,23 +0,0 @@
[www]
user = www-data
group = www-data
listen = 0.0.0.0:9000
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
clear_env = no
@@ -1,15 +0,0 @@
#!/bin/bash
if [ ! -f ./wp-config.php ]; then
wp core download --allow-root
wp config create --dbname=$SQL_DATABSE --dbuser=$SQL_USER --dbpass=$SQL_PASSWORD --dbhost=mariadb --allow-root
wp core install --url=$DOMAIN_NAME --title="$WP_TITLE" --admin_user=$WP_ADMIN_USER --admin_password=$WP_ADMIN_PASSWORD --admin_email=$WP_ADMIN_EMAIL --allow-root
wp user create $WP_NORMAL_USER $WP_NORMAL_USER_EMAIL --user_pass=$WP_NORMAL_USER_PASSWORD --role=author --allow-root
fi
exec "$@"
+1
View File
@@ -0,0 +1 @@
wp_pass123
+1
View File
@@ -0,0 +1 @@
rootpass123
+1
View File
@@ -0,0 +1 @@
wp_user
+1
View File
@@ -0,0 +1 @@
cbienrelouquandmeme
+1
View File
@@ -0,0 +1 @@
jenpeuxplusdeceprojet
-45
View File
@@ -1,45 +0,0 @@
!_TAG_EXTRA_DESCRIPTION anonymous /Include tags for non-named objects like lambda/
!_TAG_EXTRA_DESCRIPTION fileScope /Include tags of file scope/
!_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/
!_TAG_EXTRA_DESCRIPTION subparser /Include tags generated by subparsers/
!_TAG_FIELD_DESCRIPTION epoch /the last modified time of the input file (only for F\/file kind tag)/
!_TAG_FIELD_DESCRIPTION file /File-restricted scoping/
!_TAG_FIELD_DESCRIPTION input /input file/
!_TAG_FIELD_DESCRIPTION name /tag name/
!_TAG_FIELD_DESCRIPTION pattern /pattern/
!_TAG_FIELD_DESCRIPTION typeref /Type and name of a variable or typedef/
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_KIND_DESCRIPTION!Iniconf k,key /keys/
!_TAG_KIND_DESCRIPTION!Iniconf s,section /sections/
!_TAG_KIND_DESCRIPTION!Sh a,alias /aliases/
!_TAG_KIND_DESCRIPTION!Sh f,function /functions/
!_TAG_KIND_DESCRIPTION!Sh h,heredoc /label for here document/
!_TAG_KIND_DESCRIPTION!Sh s,script /script files/
!_TAG_KIND_DESCRIPTION!Yaml a,anchor /anchors/
!_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/
!_TAG_OUTPUT_FILESEP slash /slash or backslash/
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
!_TAG_OUTPUT_VERSION 0.0 /current.age/
!_TAG_PARSER_VERSION!Iniconf 0.0 /current.age/
!_TAG_PARSER_VERSION!Sh 0.0 /current.age/
!_TAG_PARSER_VERSION!Yaml 0.0 /current.age/
!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
!_TAG_PROC_CWD /home/null/Documents/Inception/srcs/ //
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL https://ctags.io/ /official site/
!_TAG_PROGRAM_VERSION 6.1.0 /653ca9204/
!_TAG_ROLE_DESCRIPTION!Sh!heredoc endmarker /end marker/
!_TAG_ROLE_DESCRIPTION!Sh!script loaded /loaded/
!_TAG_ROLE_DESCRIPTION!Yaml!anchor alias /alias/
clear_env requirements/wordpress/conf/www.conf /^clear_env = no$/;" k section:www
group requirements/wordpress/conf/www.conf /^group = www-data$/;" k section:www
listen requirements/wordpress/conf/www.conf /^listen = 0.0.0.0:9000$/;" k section:www
max_children requirements/wordpress/conf/www.conf /^pm.max_children = 5$/;" k section:www
max_spare_servers requirements/wordpress/conf/www.conf /^pm.max_spare_servers = 3$/;" k section:www
min_spare_servers requirements/wordpress/conf/www.conf /^pm.min_spare_servers = 1$/;" k section:www
pm requirements/wordpress/conf/www.conf /^pm = dynamic$/;" k section:www
start_servers requirements/wordpress/conf/www.conf /^pm.start_servers = 2$/;" k section:www
user requirements/wordpress/conf/www.conf /^user = www-data$/;" k section:www
www requirements/wordpress/conf/www.conf /^[www]$/;" s
-54
View File
@@ -1,54 +0,0 @@
!_TAG_EXTRA_DESCRIPTION anonymous /Include tags for non-named objects like lambda/
!_TAG_EXTRA_DESCRIPTION fileScope /Include tags of file scope/
!_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/
!_TAG_EXTRA_DESCRIPTION subparser /Include tags generated by subparsers/
!_TAG_FIELD_DESCRIPTION epoch /the last modified time of the input file (only for F\/file kind tag)/
!_TAG_FIELD_DESCRIPTION file /File-restricted scoping/
!_TAG_FIELD_DESCRIPTION input /input file/
!_TAG_FIELD_DESCRIPTION name /tag name/
!_TAG_FIELD_DESCRIPTION pattern /pattern/
!_TAG_FIELD_DESCRIPTION typeref /Type and name of a variable or typedef/
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_KIND_DESCRIPTION!Iniconf k,key /keys/
!_TAG_KIND_DESCRIPTION!Iniconf s,section /sections/
!_TAG_KIND_DESCRIPTION!Make I,makefile /makefiles/
!_TAG_KIND_DESCRIPTION!Make m,macro /macros/
!_TAG_KIND_DESCRIPTION!Make t,target /targets/
!_TAG_KIND_DESCRIPTION!Sh a,alias /aliases/
!_TAG_KIND_DESCRIPTION!Sh f,function /functions/
!_TAG_KIND_DESCRIPTION!Sh h,heredoc /label for here document/
!_TAG_KIND_DESCRIPTION!Sh s,script /script files/
!_TAG_KIND_DESCRIPTION!Yaml a,anchor /anchors/
!_TAG_OUTPUT_EXCMD mixed /number, pattern, mixed, or combineV2/
!_TAG_OUTPUT_FILESEP slash /slash or backslash/
!_TAG_OUTPUT_MODE u-ctags /u-ctags or e-ctags/
!_TAG_OUTPUT_VERSION 0.0 /current.age/
!_TAG_PARSER_VERSION!Iniconf 0.0 /current.age/
!_TAG_PARSER_VERSION!Make 0.0 /current.age/
!_TAG_PARSER_VERSION!Sh 0.0 /current.age/
!_TAG_PARSER_VERSION!Yaml 0.0 /current.age/
!_TAG_PATTERN_LENGTH_LIMIT 96 /0 for no limit/
!_TAG_PROC_CWD /home/null/Documents/Inception/ //
!_TAG_PROGRAM_AUTHOR Universal Ctags Team //
!_TAG_PROGRAM_NAME Universal Ctags /Derived from Exuberant Ctags/
!_TAG_PROGRAM_URL https://ctags.io/ /official site/
!_TAG_PROGRAM_VERSION 6.1.0 /653ca9204/
!_TAG_ROLE_DESCRIPTION!Make!makefile included /included/
!_TAG_ROLE_DESCRIPTION!Make!makefile optional /optionally included/
!_TAG_ROLE_DESCRIPTION!Sh!heredoc endmarker /end marker/
!_TAG_ROLE_DESCRIPTION!Sh!script loaded /loaded/
!_TAG_ROLE_DESCRIPTION!Yaml!anchor alias /alias/
all Makefile /^all:$/;" t
clear_env srcs/requirements/wordpress/conf/www.conf /^clear_env = no$/;" k section:www
fclean Makefile /^fclean:$/;" t
group srcs/requirements/wordpress/conf/www.conf /^group = www-data$/;" k section:www
listen srcs/requirements/wordpress/conf/www.conf /^listen = 0.0.0.0:9000$/;" k section:www
max_children srcs/requirements/wordpress/conf/www.conf /^pm.max_children = 5$/;" k section:www
max_spare_servers srcs/requirements/wordpress/conf/www.conf /^pm.max_spare_servers = 3$/;" k section:www
min_spare_servers srcs/requirements/wordpress/conf/www.conf /^pm.min_spare_servers = 1$/;" k section:www
pm srcs/requirements/wordpress/conf/www.conf /^pm = dynamic$/;" k section:www
start_servers srcs/requirements/wordpress/conf/www.conf /^pm.start_servers = 2$/;" k section:www
up Makefile /^up:$/;" t
user srcs/requirements/wordpress/conf/www.conf /^user = www-data$/;" k section:www
www srcs/requirements/wordpress/conf/www.conf /^[www]$/;" s