Drush: Installazione, Aggiornamento, Sincronizzazione Siti Drupal
Schede primarie
Preparazione connessione ssh tra computer locale e remoto
ssh-keygen -t rsa
ssh-copy-id user@serverSuReteLocale
Synology: x abilitare login via ssh, modificare il seguente file con ":/bin/ash"
vi /etc/passwd
Installazione Drush:
Versione HEAD cioè sempre aggiornatissima
Esempio installazione in /root/drush ma è valido x qualunque dir (fuori dallo spazio web se possibile)
cd /root
wget http://ftp.drupal.org/files/projects/drush-All-Versions-HEAD.tar.gz
tar xzvf drush-All-Versions-HEAD.tar.gz
chmod -R "u=rwx","g=rwx","o=x" drush
#Prova:
drush/drush
#FAQ:
#se "permesso negato" -> dare a drush il bit di esecuzione (via FTP, attributi)
#se "Drush requires at least PHP 5.2" -> Attenzione: Druapl7 richiede PHP5.3!!!
#Esecuzione da altre directory o altri user
#x esecuzione si può creare una alias
alias drush='/[path_to_drush_from_root]/drush/drush'
alias drush='/volume1/homes/user/drush/drush'
alias drush='/root/drush/drush'
#o meglio sistemare il path del server come descritto di seguito
#Meglio creare un link simbolico nel sistema xkè drush cerca la i suoi file
ln -s /root/drush /usr/local/bin/drush
Aliases per indicare a Drush come collegarsi e come gestire i vari siti:
/home/quickstart/.drush/aliases.drushrc.php
<?php
$aliases['sitodev'] = array(
'uri' => 'nomesito.dev',
'root' => '/home/quickstart/websites/nomesito.dev',
'path-aliases' => array(
'%dump' => '/home/quickstart/websites/nomesito.dev/dump.sql',
),
);
$aliases['sitosy'] = array(
'uri' => '192.168.1.2/~nomesito',
'root' => '/volume1/homes/nomesito/www',
'remote-host' => '192.168.1.2',
'remote-user' => 'nomesito',
'path-aliases'=> array(
'%dump' => '/volume1/homes/nomesito/www/dump.sql',
),
);
//Drush richiede PHP5.2 e Druapl7 richiede PHP5.3
$aliases['sitoweb'] = array(
'remote-host' => 'www.nomesito.com',
'remote-user' => 'nomesito#nomesito.com',
'uri' => 'www.nomesito.com',
'root' => '/var/www/html',
);
?>
Installazione Drupal7 usando drush:
http://www.leveltendesign.com/blog/tom/installing-drupal-7-using-ssh-drush
mysqladmin –u [db_user] –p create [db_name]
cd ~
drush dl drupal-7.0
mv drupal-7.0/* ~/www
mv drupal-7.0/.htaccess ~/www
rm –r drupal-7.0
drush site-install standard --account-name=admin --account-pass=[useruser_pass] --db-url=mysql://[db_user]:[db_pass]@localhost/[db_name]
x Sincronizzare files:
drush rsync @sitodev @sitosy -v
x Sincronizzare DB:
drush sql-sync @sitodev @sitosy -v --no-cache
#--no-cache serve xkè drush non rifà il dump sorgente se son passate meno di 24h
Preparazione serverino Synology o vari NAS:
Modifica Profilo Globale per sistemare Path, Prompt, HomePath e Alias vari:
vi /etc/profile
#Copiare tutto questo blocco nel Profilo globale
#/etc/profile: system-wide .profile file for ash.
#
PATH="$PATH:/opt/bin:/opt/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin:/usr/syno/mysql/bin" #non aggiungere ":/root/drush/"
export PATH
#
umask 022
#This fixes the backspace when telnetting in.
#if [ "$TERM" != "linux" ]; then
# stty erase
#fi
#
TERM=${TERM:-cons25}
export TERM
#
PAGER=more
export PAGER
#
PGDATA=/var/service/pgsql
export PATH PGDATA
#
PS1="\u@\h:\W $> "
export PS1
#
alias ll="ls -al"
alias dir="ls -al"
#Se in /etc/profile non si imposta la HOME essa viene gestita automaticamente
#è possibile sistemare i profili dei singoli utenti (correzzione path di ~Home)
#vi .profile #nella home dell'utente da sistemare ed aggiungere
#HOME=/pathAllaHomeDellUtente
#export HOME
#alias vari
open_basedir su server Synology(NAS):
PannelloDiControllo/ServiziWeb/ImpostazioniPHP/PresonalizzaPHPopen_basedir
Originale:
/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes
Ok x Drush a meno di un warning:
/usr/bin/php:/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes:/volume1:/volume1/homes:/usr
Ottimale x Drush: svuotare completamente la casella.
Appunti solo x casi problematici speciali:
#Since sshd for BusyBox was configured not to parse /etc/profile or ~/.profile
# we have to fall back to providing a environment file with the correct path:
#Volendo si può copiare da /root/.profile
vi ~/.ssh/environment
PATH=/opt/bin:/opt/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/syno/bin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/syno/bin:/usr/syno/sbin:/usr/local/bin:/usr/local/sbin
#Ora bisogna dire al demone sshd di usare questo file:
vi /etc/ssh/sshd_config
PermitUserEnvironment yes
#Then restart sshd.
Errori tipici:
Errori tipo "not found" dipendono dal fatto che quando si accede ad un sistema
via ssh il ricevente avvia una shell rapida senza caricare ne extra ne path.
Avendo solo le path di default bisogna x forza fare dei link vs quelle directory
"Could not open input file:"..."drush.php"
#drush non deve essere nel path altrimenti trova il file senza estensione .php
#ci vuole un link simbolico /usr/bin/drush -> /root/drush/drush.php
ln -s /root/drush/drush.php /usr/bin/drush
ash: mysql: not found
ln -s /usr/syno/mysql/bin/mysql /usr/bin/mysql
#x i siti nelle home tipo /~nomesito/index.php
#bisogna modificare il file .htaccess alla linea
RewriteBase /~nomeutente
#i siti virtual host tipo /xyz/index.php non ne hanno bisogno
*** Alla fine provare a riavviare i server tipo Synology x verificare la tenuta!
Versione stampabile- Accedi o registrati per inserire commenti.
- letto 1028 volte
- Send to friend

