Proxmox - Container

Da Webmobili Wiki.

Operazioni Preliminari

  • aggiungere utente designbest
 adduser designbest
 adduser designbest www-data
  • aggiungere cartella utente e montarla:
mkdir /home/ftp_user/www
mount --bind /var/www/html/wordpress /home/ftp_user/www

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 - 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

  • Creare una cartella .vscode nella 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