dunque il server non è mio ma dell'università, non ho una macchina virtuale a disposizione ma solo un utente con una home.
Puoi tranquillamente creare un repository GEM all'interno di una qualsiasi cartella, anche solo della tua home directory.
Per quanto riguarda il deploy, premesso che usando Capistrano fai in 1 minuto quello che altrimenti faresti in ore, procedi così.
1. Fai un checkout dell'intera cartella dal repository in una cartella della homedir.
Se usi svn
svn checkout svn://path/repos/apps homedir/~user/apps
2. Entra in apps ed assicurati di avere i file dispatch.cgi ed il seguente .htacess
codice:
AddHandler cgi-script .cgi
Options +FollowSymLinks +ExecCGI
# If you don't want Rails to look in certain directories,
# use the following rewrite rules so that Apache won't rewrite certain requests
#
# Example:
# RewriteCond %{REQUEST_URI} ^/notrails.*
# RewriteRule .* - [L]
# Redirect all requests not available on the filesystem to Rails
# By default the cgi dispatcher is used which is very slow
#
# For better performance replace the dispatcher with the fastcgi one
#
# Example:
# RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
RewriteEngine On
# If your Rails application is accessed via an Alias directive,
# then you MUST also set the RewriteBase in this htaccess file.
#
# Example:
# Alias /myrailsapp /path/to/myrailsapp/public
# RewriteBase /myrailsapp
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.cgi [QSA,L]
# In case Rails experiences terminal errors
# Instead of displaying this message you can supply a file here which will be rendered instead
#
# Example:
# ErrorDocument 500 /500.html
ErrorDocument 500 "<h2>Application error</h2>Rails application failed to start properly"
3. Controlla il file di configurazione del database.
4. I permessi di tmp, log devono essere writable per l'utente web. Nel tuo caso non lo erano.
Verifica chi è l'utente web e setta i permessi appropriati. Di norma cgi non viene eseguito dallo stesso utente unix per cui ti tocca dare i permessi di scrittura oltre che a owner, anche a group (se il tuo account è nello steso gruppo di chi esegue cgi, in genere www-data) o addirittura 777 se il tuo utente e quello che esegue l'app non condividono nulla.
5. Avvia l'applicazione da http://il/persorco/pubblico/homedir/~user/apps/public
Ricordati che in teoria solo /public dovrebbe essere mappata all'esterno.
Quindi se hai la possibilità di configurare un vhost punta la directory pubblica a public, altrimenti devi inibire l'accesso pubblico a tutte le altre cartelle o chiunque potrà vedere i tuoi file di configurazione.
Inoltre, ricordati che di default l'environment caricato è development se non specifichi una diversa impostazione.
Su fastcgi e cgi, l'unico modo di cambiare impostazione è agire su una variabile d'ambiente o impostare l'environment in config/environment.rb.
Infine, se hai problemi ad eseguire spostati nella root dell'applciazione e lancia il comando
ruby public/dispatch.cgi
Ora hai l'errore a video.