In alternativa a sistemi più semplici, è possibile creare un sito locale con Docker, che permette di creare ambienti con specifiche necessità in termini di database e versioni di PHP specifiche. Questo non è possibile con XAMPP che crea un ambiente virtuale con le stesse caratteristiche per tutti i siti
Creare il file che indicherà come creare l’ambiente: docker-compose.yml
La forza di questo sistema è la possibilità di inserire la cartella per le impostazioni di Docker in qualsiasi punto si necessita.
Nella cartella del progetto andremo a creare un file di nome docker-compose.yml, ecco un esempio:
# create a local .env file with the following 4 properties:
#
# MYSQL_DATABASE=<something>
# MYSQL_USER=<something>
# MYSQL_PASSWORD=<something>
# MYSQL_ROOT_PASSWORD=<something>
#
version: "3.8"
services:
database:
# We use a mariadb image which supports both amd64 & arm64 architecture
image: mariadb:10.6.4-focal
restart: unless-stopped
ports:
- 3306:3306
env_file: .env
environment:
MYSQL_ROOT_PASSWORD: '${MYSQL_ROOT_PASSWORD}'
MYSQL_DATABASE: '${MYSQL_DATABASE}'
MYSQL_USER: '${MYSQL_USER}'
MYSQL_PASSWORD: '${MYSQL_PASSWORD}'
volumes:
- db-data:/var/lib/mysql
networks:
- wordpress-network
deploy:
resources:
limits:
memory: 2048m
phpmyadmin:
depends_on:
- database
image: phpmyadmin/phpmyadmin
restart: unless-stopped
ports:
- 8081:80
env_file: .env
environment:
PMA_HOST: database
MYSQL_ROOT_PASSWORD: '${MYSQL_ROOT_PASSWORD}'
networks:
- wordpress-network
wordpress:
depends_on:
- database
image: wordpress:6.2.2-apache
restart: unless-stopped
ports:
- 8080:80
env_file: .env
environment:
WORDPRESS_DB_HOST: database:3306 # use the same name as database service
WORDPRESS_DB_NAME: '${MYSQL_DATABASE}'
WORDPRESS_DB_USER: '${MYSQL_USER}'
WORDPRESS_DB_PASSWORD: '${MYSQL_PASSWORD}'
volumes:
- ./wp-content:/var/www/html/wp-content
networks:
- wordpress-network
volumes:
db-data:
networks:
wordpress-network:
driver: bridge
Creare l’ambiente virtuale: .env
Si andranno poi a dare le indicazioni per l’ambiente virtuale con il file .env
Qui un esempio:
MYSQL_DATABASE=wordpress
MYSQL_USER=wp_user
MYSQL_PASSWORD=wp_password
MYSQL_ROOT_PASSWORD=root_password
Creare l’ambiente
Installare Docker, aprile la shell e digitare il comando per creare l’ambiente
docker compose up
Si attiveranno automaticamente le immagini wordpress, database e php, a questo punto andare su http://localhost:8080/ e installare come al solito WordPress, mentre per quanto riguarda queste informazioni è possibile vedere il database http://localhost:8081/ con le credenziali inserite nel file .env
Repository della cartella: https://github.com/MapoDesign/WordPress-Docker