Il deploy di un sito web o un’applicazione web con capistrano su uno spazio di hosting gestito tramite ispconfig non è affatto immediato; ciò dipende dall’architettura, o meglio dalla struttura delle directory del virtual host, prevista da ispconfig.
L’alberatura delle directory di un virtual host di ispconfig è di questo tipo
- cgi-bin - log - private - ssl - tmp - web - webdav
La directory di nostro interesse in questo momento è web, in quanto quella che contiene tutto il codice del nostro sito web o applicazione.
Capistrano prevede invece una struttura diversa, di questo tipo
- current - releases -- 20200108143420 -- 20200109104523 -- 20200109133325
Il codice della nostra applicazione risiede nelle directory contenute in releases e current.
In current troviamo la versione on-line della nostra applicazione; quesato in realtà è un link simbolico alla directory vera e propria, che nell’albertaura mostrata sopra è releases/0200109133325
Risulta evidente la differenza.
Con queste diversa gestione delle directory, con capistrano il deploy su ispconfig non è fattibile.
Premesso che non è possibile rinominare o sostituire la directory web di ispconfig, possiamo integrare i due sistemi in questo modo:
La configurazione è così completa.
E’ importante che l’utente con cui capistrano si collega alla macchina abbia i permessi per
Come sappiamo ISPconfig crea un utente per ogni virtual host, il cui nome è composto da web e dal numero del vh stesso, ad esempio web100.
Affinchè capistrano possa fare il deploy e le directory del progetto vengano assegnate all’utente ispconfig corretto, nel nostro esempio web100, dobbiamo
Questo un esempio di configurazione di capistrano
server "xxx.xxx.xxx.xxx", :app, :web, :db, :primary => true set :deploy_to, "/ispconfig_user_home/deploy/" set :branch, 'master' set :ssh_options, {user: 'ispconfig_user', forward_agent: true} set :user, "ispconfig_user" set :use_sudo, false set :keep_releases, 5
dove
Fatto ciò dobbiamo fare un’ultima cosa, autorizzare l’utente ispconfig web100 all’accesso al repository git. Per fare ciò dobbiamo
Buon deploy!
Reading Time: < 1 minute Esclusione di una serie di prodotti selezionati tramite l'apposito menù…
Reading Time: < 1 minute Nel video che vedete di seguito, a titolo di esempio,…
Reading Time: 2 minutes Vediamo come è possibile fare il restart di php-fpm con capistrano…
"Stiamo scoprendo modi migliori di creare software,sviluppandolo e aiutando gli altri a fare lo stesso.Grazie…
Shopware ha rilasciato una security patch in grado di colmare alcune lacune di sicurezza per…
Il tema e-commerce ed omnicanalità ha sostituito l'ormai obsoleta multicanalità, vediamo di cosa si tratta.…
View Comments
Se, alla creazione della directory deploy, riscontrate l'errore
mkdir: cannot create directory ‘deploy’: Operation not permitted
questo è dovuto alla presenza dell'attributo immutabile, che si può
- cambiare da System > Server Config > Web > Permissions > Make web folders immutable (extended attributes)
- togliere tramite il comando chattr -i
La chiave ssh per l'utente web100 può essere generata con il seguente comando
sudo -u web100 ssh-keygen -t rsa
Affinchè l'utente web100 riesca a loggarsi sul server di deploy è necessario che abbia un accesso ssh valido e che nel file passwd sia impostata la bash
ex. web100:x:5004:5005::/var/www/clients/client1/web100:/bin/bash