Proxmox - Container
Operazioni Preliminari
# aggiungere utente '''designbest'''
adduser designbest
adduser designbest www-data
# aggiungere cartella utente e montarla:
mkdir /home/designbest/www
mount --bind /var/www/html/wordpress /home/designbest/www
# rendere il mount persistente in /etc/fstab
/var/www/html/wordpress /home/designbest/www none defaults,bind 0 0
Database
Di default la configurazione ha una restrizione per le connessione solo sull'IP locale.
Nel file di configurazione cercare e modificare la riga con bind-address così
bind-address = 0.0.0.0
Il file di configurazione cambia a seconda della distribuzione.
- Debian: si trova in
/etc/mysql/mariadb.conf.d/50-server.cnf
sudo systemctl restart mariadb.service
Creare un nuovo utente ed assegnarli tutti i privilegi.
sudo mysql -u root
Creare l'utente ( % significa qualsiasi provenienza) ed assegnargli tutti i privilegi a qualsiasi database.
In MariaDB (Debian)
CREATE USER 'webmobili'@'%' IDENTIFIED BY 'W3bm0b1l!';
GRANT ALL PRIVILEGES ON *.* to 'webmobili'@'%';
FLUSH PRIVILEGES;
exit
VS Code XDebug
- In VS Code installare estensione di Microsoft
Remote - SSHhttps://code.visualstudio.com/docs/remote/ssh - Creare una cartella ad esempio
C:\LAVORO\wordpress-debug\.ssh
in cui creare il seguente file senza estensione config con questi dati:
Host wordpress-proxmox
HostName 10.13.17.125
User designbest
Port 22
- Hostname -> corrisponde all'indirizzo ip del container Proxmox
- Username -> utente del container per accesso SSH
Connessione SSH al container
- Aprire il folder appena creato con VS Code.
- Premere F1
- Selezionare Remote-SSH: Connect to Host
- Configure SSH Hosts e inserire nel settings il percorso al file config appena creatoù
- Premere nuovamente F1
- Selezionare wordpress-proxmox e poi Linux
- Si aprirà una nuova finestra VSCode e bisogna inserire la password dell'utente ssh
- Poi selezionare Open Folder nella sezione a sinistra
- Selezionare il folder www, dare ok e reimmettere la password.
Configurazione Container per PHP/Wordpress
- Creare una cartella
.vscodenella root.
- Estensioni da installare:
- PHP Debug
- Creare configurazione di debug e aggiungere la voce seguente a
"name": "Listen for Xdebug",
"pathMappings": {
"/var/www/html/wordpress": "${workspaceFolder}"
}
- Sezione PORTS -> aggiungere solo 9003 e confermare
- Installare pacchetti da terminale del container:
apt install php-xdebug
apt install php-curl php-xml php-imagick php-gd php-mbstring php-zip php-intl
- Modificare php.ini in
/etc/php/8.2/apache2/:
upload_max_filesize = 128M
post_max_size = 256M
max_execution_time = 900
max_input_vars = 5000
memory_limit = 4096M
max_input_time = 400
- Modificare config di php-xdebug in
etc/php/8.2/apache2/conf.d/20-xdebug.ini:
zend_extension=xdebug.so
[xdebug]
xdebug.mode=develop,debug
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
FTP
Installare un FTP server su Linux, in questo caso "Very Secure FTP Daemon" (questi sono cretini)
sudo apt install vsftpd
configuriamo
sudo nano /etc/vsftpd.conf
cercare e cambiare così
write_enable=YES
chroot_local_user=YES
# aggiungere questa riga che evita un errore legato ai permessi di scrittura per gli utenti chrootati
allow_writeable_chroot=YES
# cercare e scommentare la riga
local_umask=022
#ed aggiungere appena sotto
file_open_mode=0777
#Queste specificano che i file vengono introdotti coi permessi 777 ma viene tolto un 022 per fare 755.
Se si vuole utilizzare la modalità passiva aggiungere
pasv_enable=YES
pasv_max_port=50030
pasv_min_port=50000
riavviare vsftpd
sudo systemctl reload vsftpd.service
a questo punto ogni utente della macchina può connettersi via FTP usando le proprie credenziali.
La root è la propria Home folder.
ESEMPIO:
Se siamo su un server e vogliamo mostrare solo la cartella www:
Si crea un utente ad hoc e gli si montano nella home tutte le cartelle che servono col comando
mkdir /home/ftp_user/www
mount --bind /var/www /home/ftp_user/www
ovviamente consideriamo che l'utente in questione abbia i permessi di scrittura sulla WWW.
Si potrebbe fare
sudo chown root:www-data /var/www -R
sudo chmod 775 /var/www -R
sudo adduser <nomeutente> www-data
Note per Template
Clonare il Container (102 - per-template) dal nostro template pulito con Wordpress e estensioni necessarie tra cui Xdebug.
Clone Mode -> Full per avere un container completamente isolato e separato dal template.
Aggiornare Siteurl e Home
Meglio non mettere indirizzo IP, ma settarlo solo dal proprio file hosts locale. In questo modo se dovesse cambiare ip interno assegnato da Proxmox, basta cambiarlo solo nel proprio file hosts locale.
Accedere a MySQL sul container
mysql -u webmobili -p W3bm0b1l! Database wordpress_db password bucRd29By9GRY
SELECT option_name, option_value FROM wp_options WHERE option_name in ('siteurl','home');
UPDATE wp_options SET option_value = 'http://pve.wp.webmobili.local' WHERE option_name in ('siteurl','home');