Proxmox - Container: differenze tra le versioni
| (18 versioni intermedie di 2 utenti non mostrate) | |||
| Riga 1: | Riga 1: | ||
== Operazioni Preliminari == | |||
<syntaxhighlight lang="bash"> | |||
# aggiungere utente '''designbest''' | |||
adduser designbest | |||
adduser designbest www-data | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
# aggiungere cartella utente e montarla: | |||
mkdir /home/designbest/www | |||
mount --bind /var/www/html/wordpress /home/designbest/www | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash"> | |||
# rendere il mount persistente in /etc/fstab | |||
/var/www/html/wordpress /home/designbest/www none defaults,bind 0 0 | |||
</syntaxhighlight> | |||
== Database == | == Database == | ||
Di default la configurazione ha una restrizione per le connessione solo sull'IP locale.<br/> | Di default la configurazione ha una restrizione per le connessione solo sull'IP locale.<br/> | ||
| Riga 23: | Riga 41: | ||
== VS Code XDebug == | == VS Code XDebug == | ||
* In VS Code installare estensione di Microsoft <code>Remote - SSH</code> | * In VS Code installare estensione di Microsoft <code>Remote - SSH</code> https://code.visualstudio.com/docs/remote/ssh | ||
*Creare una cartella ad esempio <code>C:\LAVORO\wordpress-debug\.ssh</code> | *Creare una cartella ad esempio <code>C:\LAVORO\wordpress-debug\.ssh</code> | ||
in cui creare il seguente file senza estensione <code>config</code> con questi dati: | in cui creare il seguente file senza estensione <code>config</code> con questi dati: | ||
| Riga 41: | Riga 59: | ||
* Premere '''F1''' | * Premere '''F1''' | ||
* Selezionare '''Remote-SSH: Connect to Host''' | * Selezionare '''Remote-SSH: Connect to Host''' | ||
* Selezionare '''wordpress-proxmox''' | * 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 | * Si aprirà una nuova finestra VSCode e bisogna inserire la password dell'utente ssh | ||
* Poi selezionare '''Open Folder''' nella sezione a sinistra | * Poi selezionare '''Open Folder''' nella sezione a sinistra | ||
* Selezionare il folder '''www''', dare ok e reimmettere la password. | * Selezionare il folder '''www''', dare ok e reimmettere la password. | ||
=== Configurazione Container === | === Configurazione Container per PHP/Wordpress === | ||
* Creare una cartella <code>.vscode</code> nella root. | * Creare una cartella <code>.vscode</code> nella root. | ||
| Riga 52: | Riga 72: | ||
* Estensioni da installare: | * Estensioni da installare: | ||
** PHP Debug | ** PHP Debug | ||
* Creare configurazione di debug e aggiungere la voce seguente a <code> "name": "Listen for Xdebug",</code> | * Creare configurazione di debug e aggiungere la voce seguente a <code> "name": "Listen for Xdebug",</code> | ||
| Riga 62: | Riga 81: | ||
* Sezione '''PORTS''' -> aggiungere solo 9003 e confermare | * Sezione '''PORTS''' -> aggiungere solo 9003 e confermare | ||
* Installare pacchetti da terminale del container: | |||
<syntaxhighlight lang="bash"> | |||
apt install php-xdebug | |||
apt install php-curl php-xml php-imagick php-gd php-mbstring php-zip php-intl | |||
</syntaxhighlight> | |||
* Modificare php.ini in <code>/etc/php/8.2/apache2/</code>: | |||
<syntaxhighlight lang="ini"> | |||
upload_max_filesize = 128M | |||
post_max_size = 256M | |||
max_execution_time = 900 | |||
max_input_vars = 5000 | |||
memory_limit = 4096M | |||
max_input_time = 400 | |||
</syntaxhighlight> | |||
* Modificare config di php-xdebug in <code>etc/php/8.2/apache2/conf.d/20-xdebug.ini</code>: | |||
<syntaxhighlight lang="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 | |||
</syntaxhighlight> | |||
==== FTP ==== | |||
Installare un FTP server su Linux, in questo caso ''"Very Secure FTP Daemon"'' (questi sono cretini) | |||
<syntaxhighlight lang="bash">sudo apt install vsftpd</syntaxhighlight> | |||
configuriamo | |||
<syntaxhighlight lang="bash">sudo nano /etc/vsftpd.conf</syntaxhighlight> | |||
cercare e cambiare così | |||
<syntaxhighlight lang="bash"> | |||
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. | |||
</syntaxhighlight> | |||
Se si vuole utilizzare la '''modalità passiva''' aggiungere | |||
<syntaxhighlight lang="bash"> | |||
pasv_enable=YES | |||
pasv_max_port=50030 | |||
pasv_min_port=50000 | |||
</syntaxhighlight> | |||
riavviare vsftpd | |||
<syntaxhighlight lang="bash">sudo systemctl reload vsftpd.service</syntaxhighlight> | |||
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 | |||
<syntaxhighlight lang="bash"> | |||
mkdir /home/ftp_user/www | |||
mount --bind /var/www /home/ftp_user/www | |||
</syntaxhighlight> | |||
ovviamente consideriamo che l'utente in questione abbia i permessi di scrittura sulla WWW. | |||
Si potrebbe fare | |||
<syntaxhighlight lang="bash"> | |||
sudo chown root:www-data /var/www -R | |||
sudo chmod 775 /var/www -R | |||
sudo adduser <nomeutente> www-data | |||
</syntaxhighlight> | |||
== 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 | |||
<pre> | |||
mysql -u webmobili -p W3bm0b1l! | |||
Database wordpress_db password bucRd29By9GRY | |||
</pre> | |||
<syntaxhighlight lang="sql"> | |||
show databases; | |||
use wordpress_db; | |||
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'); | |||
</syntaxhighlight> | |||
Versione attuale delle 17:27, 24 nov 2025
Operazioni Preliminari
[modifica]# 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
[modifica]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
[modifica]- 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
[modifica]- 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
[modifica]- 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
[modifica]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
[modifica]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
[modifica]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
show databases;
use wordpress_db;
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');