Puoi tranquillamente creare un repository GEM all'interno di una qualsiasi cartella, anche solo della tua home directory.dunque il server non è mio ma dell'università, non ho una macchina virtuale a disposizione ma solo un utente con una home.
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
3. Controlla il file di configurazione del database.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"
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.

Rispondi quotando