# Problemino di deployng sito prova

**URL:** <https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923>\
**Category:** IT\
**Created:** [December 1, 2010, 2:16pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923 "2010-12-01T14:16:47Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/77aa72/32.png) [@Dobai-Pataky\_BSSSSl](https://www.ruby-forum.com/u/Dobai-Pataky_BSSSSl)\
**Post date:** [December 1, 2010, 2:16pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/1 "2010-12-01T14:16:47Z")

</div>

Ringraziando sin d’ora coloro che vogliono darmi qualche suggermento, vi  
espongo il problemino, premettendo che sono ancora troppo poco esperto  
per poter conoscere bene Ror… e molte altre cose…  
Stò cercando di fare un sito di prova su un VPS messomi cortesemente a  
disposizione dall’amm.ne worknet.it ma ho incontrato qualche problema  
nella parte frontoffice (spero di aver scritto bene) e credo che sia  
dovuto a delle mie carenze nel capire il funzionamento di sqlite3 e  
passenger su un sistema slackware.  
Il problema lo ho incontrato sia nel VPS remoto con il quale comunico da  
terminale che con il PC che uso per fare le prove in “casa”.  
Ho l’impressione che sia un problema di permessi, ma non ne sono sicuro  
e se mai così fosse, mi piacerebbe sapere come risolvere la cosa.  
Per facilitare coloro che vogliono darmi dei suggerimenti aggiungo le  
seguenti informazioni:

Versione  
ruby 1.9.2p0 (2010-08-18 revision 29036) [i686-linux]

\*\*\* LOCAL GEMS \*\*\*

abstract (1.0.0)  
actionmailer (3.0.3, 3.0.1, 3.0.0)  
actionpack (3.0.3, 3.0.1, 3.0.0)  
activemodel (3.0.3, 3.0.1, 3.0.0)  
activerecord (3.0.3, 3.0.1, 3.0.0)  
activeresource (3.0.3, 3.0.1, 3.0.0)  
activesupport (3.0.3, 3.0.1, 3.0.0)  
arel (2.0.5, 2.0.1, 1.0.1)  
builder (3.0.0, 2.1.2)  
bundler (1.0.7, 1.0.3, 1.0.2)  
capistrano (2.5.19)  
columnize (0.3.2, 0.3.1)  
daemon\_controller (0.2.5)  
erubis (2.6.6)  
fastthread (1.0.7)  
file-tail (1.0.5)  
highline (1.6.1)  
i18n (0.5.0, 0.4.1)  
mail (2.2.11, 2.2.7, 2.2.6.1)  
mime-types (1.16)  
minitest (2.0.0, 1.7.2, 1.6.0)  
net-scp (1.0.4)  
net-sftp (2.0.5)  
net-ssh (2.0.23)  
net-ssh-gateway (1.0.1)  
passenger (3.0.0, 2.2.15)  
polyglot (0.3.1)  
rack (1.2.1)  
rack-mount (0.6.13)  
rack-test (0.5.6, 0.5.4)  
rails (3.0.3, 3.0.1, 3.0.0)  
railties (3.0.3, 3.0.1, 3.0.0)  
rake (0.8.7)  
rdoc (2.5.11, 2.5.8)  
spruz (0.2.2, 0.1.5)  
sqlite3-ruby (1.3.2, 1.3.1)  
thor (0.14.6, 0.14.3, 0.14.1)  
treetop (1.4.9, 1.4.8)  
tzinfo (0.3.23)

La configurazione VirtualHost è la seguente:

\<VirtualHost \*:80\>  
ServerAdmin removed\_email\_address@domain.invalid  
DocumentRoot “/var/www/htdocs/cyber-prova/public”  
ServerName cyber-prova.cyberservices.it

# ServerAlias www.cyber-prova.it

```
  RailsEnv development
    PassengerLogLevel 3
 RailsBaseURI /rails
ErrorLog "/var/log/httpd/cyber-prova.it-error_log"
CustomLog "/var/log/httpd/cyber-prova.it-access_log" common
    <Directory /home/www/htdocs/cyber-prova/public >
      Options -MultiViews
      AllowOverride all
      Order deny,allow
      # Deny from all
      Allow from all
    </Directory>

```

ho riscontrato lo stesso problema anche con l’istruzione RailsEnv  
production  
non riesco a superare lo scoglio (error 500)  
Grazie ancora a tutti coloro che gentilmente mi possono fornire qualche  
dritta.

---

<div class="post-metadata">

**Author:** ![romeo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7feea3/32.png) [@romeo\_c](https://www.ruby-forum.com/u/romeo_c)\
**Post date:** [December 1, 2010, 4:50pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/2 "2010-12-01T16:50:41Z")

</div>

Ciao Romeo,

Controlla nei files di log e posta qui le parti interessanti.

In ogni caso stai usando RailsBaseURI nel modo sbagliato, dai  
un’occhiata alla documentazione  
[http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying\_rails\_to\_sub\_uri](http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying_rails_to_sub_uri)

–  
Duilio R.  
[http://sinetris.info](http://sinetris.info)

---

<div class="post-metadata">

**Author:** ![romeo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7feea3/32.png) [@romeo\_c](https://www.ruby-forum.com/u/romeo_c)\
**Post date:** [December 1, 2010, 4:55pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/3 "2010-12-01T16:55:10Z")

</div>

il primo consiglio di guardare i logs in TUA\_RAILS\_APP/log/

l trovi i log per development production

controlla bene anche i logs di apache (se non ricordo male dovrebbero  
essere in  
/var/log/http/)

sicuramente in questi files troverai almeno l’origine del problema (cio  
quello  
che causa error 500). poi in caso ri-posta l’errore qui in lista, cos  
sar pi  
facile indirizzarti per una soluzione 😉

ciao,  
A.

Il 01/12/2010 14:16, Romeo C. ha scritto:

> Ho l’impressione che sia un problema di permessi, ma non ne sono sicuro  
> \*\*\* LOCAL GEMS \*\*\*  
> bundler (1.0.7, 1.0.3, 1.0.2)  
> minitest (2.0.0, 1.7.2, 1.6.0)  
> railties (3.0.3, 3.0.1, 3.0.0)
> 
> ```
> <Directory /home/www/htdocs/cyber-prova/public>
> 
> ```
> 
> production  
> non riesco a superare lo scoglio (error 500)  
> Grazie ancora a tutti coloro che gentilmente mi possono fornire qualche  
> dritta.

–  
[http://twitter.com/apeacox](http://twitter.com/apeacox)

---

<div class="post-metadata">

**Author:** ![romeo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7feea3/32.png) [@romeo\_c](https://www.ruby-forum.com/u/romeo_c)\
**Post date:** [December 4, 2010, 5:18pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/4 "2010-12-04T17:18:56Z")

</div>

Grazie ragazzi per i consigli, appena posso (quando riesco a ricavarmi  
un po’ di tempo) controllo meglio la situazione. Per il momento ho  
sbirciato el file production.log ed effettivamente c’era:  
SQLite3::CantOpenException (unable to open database file):  
farò qualche modifica e qualche prova, poi mi rifaccio sentire…  
Grazie ancora

---

<div class="post-metadata">

**Author:** ![romeo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7feea3/32.png) [@romeo\_c](https://www.ruby-forum.com/u/romeo_c)\
**Post date:** [December 7, 2010, 3:45pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/5 "2010-12-07T15:45:16Z")

</div>

Ciao Ragazzi,  
in seguito al problemino di deploing dell’applicazione di prova, ho  
scelto di ricominciare l’esperimento partendo da questo punto:  
ho modificato la parte httpd-vhosts.conf tenendo conto di quanto scritto  
da Duilio R. inibendo il comando RailsBaseURI/rails, e ho  
condizionato RailsEnv production, mi sono accorto anche che vi era un  
errore di indirizzamento al comando \<Directory  
/home/www/htdocs/cyber-prova/public \> che ho corretto, quindi il  
risultato della parte di codice è questo:

\<VirtualHost \*:80\>  
ServerAdmin [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
DocumentRoot “/var/www/htdocs/cyber-prova/public”  
ServerName cyber-prova.cyberservices.it

# ServerAlias www.cyber-prova.it

```
  RailsEnv production
    PassengerLogLevel 3

```

# RailsBaseURI /rails

```
ErrorLog "/var/log/httpd/cyber-prova.it-error_log"
CustomLog "/var/log/httpd/cyber-prova.it-access_log" common
    <Directory /var/www/htdocs/cyber-prova/public >
      Options -MultiViews
      AllowOverride all
      Order deny,allow
      # Deny from all
      Allow from all
    </Directory>

```

ho fatto ripartire apache, mi sono ricollegato e ovviamente il risultato  
è rimasto invariato: errore 500, il problemino di scrittura su sQlite3  
continua a persistere.  
A questo punto credo che sia meglio rifare tutta la procedura  
specificando al meglio i passaggi, magari si riesce a capire quali siano  
i possibili errori o omissioni che impediscono il funzionamento della  
applicazione:  
per prima cosa rimuovo la Dir cyber-prova con il comando rm -r  
cyber-prova lanciato da terminale su posizione /var/www/htdocs/  
poi riparto da rails new cyber-prova  
segue generazione directorys dell’applicazione  
mi porto in cyber-prova con cd cyber-prova  
e lancio l’installazione di bundle con il comando bundle install per il  
coordinamento delle gems  
ed ottengo la risposta:  
Fetching source index for [http://rubygems.org/](http://rubygems.org/)  
Using rake (0.8.7)  
Using abstract (1.0.0)  
Using activesupport (3.0.3)  
Using builder (2.1.2)  
Using i18n (0.5.0)  
Using activemodel (3.0.3)  
Using erubis (2.6.6)  
Using rack (1.2.1)  
Using rack-mount (0.6.13)  
Using rack-test (0.5.6)  
Using tzinfo (0.3.23)  
Using actionpack (3.0.3)  
Using mime-types (1.16)  
Using polyglot (0.3.1)  
Using treetop (1.4.9)  
Installing mail (2.2.12)  
Using actionmailer (3.0.3)  
Installing arel (2.0.6)  
Using activerecord (3.0.3)  
Using activeresource (3.0.3)  
Using bundler (1.0.7)  
Using thor (0.14.6)  
Using railties (3.0.3)  
Using rails (3.0.3)  
Using sqlite3-ruby (1.3.2)  
Your bundle is complete! Use `bundle show [gemname]` to see where a  
bundled gem is installed.  
a questo punto come nella più classica delle applicazioni proposte dall  
guida [Getting Started with Rails — Ruby on Rails Guides](http://guides.rubyonrails.org/getting_started.html)  
eseguo il comando rake db:create  
(in /var/www/htdocs/cyber-prova)  
db/test.sqlite3 already exists  
db/development.sqlite3 already exists  
a questo punto, ricordando che lavoro da terminale, vado a verificare se  
riesco a vedere la paginetta di default delle applicazioni RoR  
ovviamente la paginetta compare, ma se si va a cliccare sulla parte  
About your application’s environment compare l’errore  
We’re sorry, but something went wrong.  
We’ve been notified about this issue and we’ll take a look at it  
shortly.

Effettuando la stessa procedura sul PC di casa, quindi in locale dove  
il file httpd-vhosts.conf ha come differenza questa: ServerName  
127.0.0.1  
compare la scritta: SQLite3::CantOpenException  
Rails.root: /var/www/htdocs/cyber-prova  
nota: se la procedura viene effettuata lanciando WEBrick, invece tutto  
funziona correttamente e la pagina welcome elenca le caratterisctiche  
dell’applicazione.  
Certo, il settaggio di httpd-vhosts.conf è configurato su RailsEnv  
production  
ma anche se si modifica in RailsEnv development la sostanza resta  
quella.  
Io credo che già a questo livello si possa notare quale sarà il problema  
nel prosieguo della pubblicazione, ma andiamo avanti…  
sempre seguendo la procedura illustrata in getting\_started.html,  
generiamo il controller home con il comando: rails generate controller  
home index  
a questo punto entro nella dir public e rinomino il file index.html con  
il comando mv index.html vecchio.html (la guida dice di rimuoverlo con  
il comando rm index.html)  
a questo punto però dobbimo modificare routes.rb dicendogli di far  
riferimento alla pagine index del controller home quindi mi sposto nella  
dir config e con il comando nano (da terminale) modifico il file  
routes.rb e ottengo il seguente risultato:

root :to =\> “home#index”  
(se si prova a visitare la pagina del VPS adesso compare direttamente  
l’errore 500: We’re sorry, but something went wrong.  
su quello locale all’indirizzo [http://127.0.0.1](http://127.0.0.1) risulta:  
SQLite3::CantOpenException ecc.)  
ma se in locale, dopo aver lanciato WEbrick si accede alla pagina  
[http://localhost:3000/](http://localhost:3000/) compare correttamente index.html.erb dovuto a  
home controlloer  
detto questo, mi sposto in cyber-prova e continuo a seguire  
scrupolosamente la guida e utilizzo il comando:

# rails generate scaffold Post name:string title:string content:text si generano le directorys i files ecc. relative a questa potente istruzione. e si può procedere con la migrazione utilizzando il comando: rake db:migrate tutto procede bene e ottengo: (in /var/www/htdocs/cyber-prova) == CreatePosts: migrating

# – create\_table(:posts) → 0.0071s == CreatePosts: migrated (0.0100s)

# pronto per la modifica del file nella directory ../app/views/home/index.html.erb che vado ad apportare con “nano” (da terminale) aggiungendo semplicemente la riga di comando \<%= link\_to “Cyber Blog”, posts\_path %\> quindi, in locale lanciando WEBrick si può incominciare ad accedere al database anche in scrittura nella modalità predefinita development mentre se utilizziamo apache e passenger, anche con l’istruzione RailsEnv development in httpd-vhosts.conf ottengo il solito errore. a questo punto però, siccome ho fatto la migrazione solo in modalità development, rifaccio la migrazione anche per la modalità production con il comando: rake db:migrate RAILS\_ENV=production ed ottengo la risposta: (in /var/www/htdocs/cyber-prova) == CreatePosts: migrating

# – create\_table(:posts) → 0.0051s == CreatePosts: migrated (0.0075s)

ed ecco la prima magia, compare anche con apache e passenger la pagina  
index del controller home, psosso anche portarmi sulla pagina index del  
controller posts e addirittura inoltrarmi sino alla pagina New post, ma  
quando, dopo aver inserito i dati sugli appositi campi, invio il comando  
“Create Post” la magia svanisce e ritorno al solito errore nella  
visualizzazione da terminale, mentre in quella locale, compare più  
dettaglatamente che il problema risale all’impossibilità di creare il  
file : ActiveRecord::StatementInvalid in PostsController#create.  
SQlite3::ReadOnlyException:  
A questo punto mi appello a voi Egregi Signori… (con un pizzico di  
ironia )… per l’ardua sentenza… ovviamente ringraziando  
anticipatamente e scusandomi se mi sono dilungato anche più del dovuto.

---

<div class="post-metadata">

**Author:** ![romeo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7feea3/32.png) [@romeo\_c](https://www.ruby-forum.com/u/romeo_c)\
**Post date:** [December 7, 2010, 9:09pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/6 "2010-12-07T21:09:38Z")

</div>

Ciao Romeo,

> We’re sorry, but something went wrong.  
> We’ve been notified about this issue and we’ll take a look at it  
> shortly.

Questo “errore” è normale che compaia dato che la pagina che richiedi è  
visibile solo in development.

> SQLite3::CantOpenException

Questo è molto probabilmente un errore di permessi.  
Controlla l’utente dei files della tua applicazione rails (non deve  
essere l’utente root) ed i permessi di lettura e scrittura.  
(Phusion viene eseguito con l’utente del file [config.ru](http://config.ru))

> Il fatto è che io ho una applicazione che è www.cyberservices.it e ho  
> fatto anche questo sito di prova per cui in questo momento ho due  
> applicazioni e purtroppo essendo molto analfabeta in inglese non ho  
> capito bene le istruzioni della guida, in particolare credo si tratti  
> della configuraione del httpd-vhosts.conf mediante istruzioni del tipo
> 
> \<VirtualHost \*:80\>  
> …  
> RailsBaseURI /app1  
> RailsBaseURI /app2  
> RailsBaseURI /app3

RailsBaseURI va usato quando vuoi più applicazioni rails sotto lo stesso  
dominio, ad esempio:

[www.example.com/prima\_app](http://www.example.com/prima_app)  
[www.example.com/seconda\_app](http://www.example.com/seconda_app)

se invece vuoi due applicazioni su due domini (o sottodomini) diversi,  
basta creare un secondo virtualhost, ad esempio:

\<VirtualHost \*:80\>  
ServerAdmin [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
DocumentRoot “/var/www/htdocs/cyber-prova2/public”  
ServerName [cyber-prova2.example.com](http://cyber-prova2.example.com)  
RailsEnv production  
PassengerLogLevel 3  
ErrorLog “/var/log/httpd/cyber-prova2-error\_log”  
CustomLog “/var/log/httpd/cyber-prova2-access\_log” common  
\<Directory /var/www/htdocs/cyber-prova2/public \>  
Options -MultiViews  
AllowOverride all  
Order deny,allow  
Allow from all

Spero di esserti stato utile.  
Se queste informazioni non ti dovessero bastare per risolvere il  
problema, posta un po più di informazioni dai log di rails e di apache.

–  
Duilio R.

> **[Home | Sinetris's viewpoints](https://sinetris.info/)**

---

<div class="post-metadata">

**Author:** ![romeo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7feea3/32.png) [@romeo\_c](https://www.ruby-forum.com/u/romeo_c)\
**Post date:** [December 7, 2010, 8:00pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/7 "2010-12-07T20:00:35Z")

</div>

una piccola integrazione, se non ricordo male, nella guida  
[Phusion Passenger users guide, Apache version](http://www.modrails.com/documentation/Users%20guide%20Apache.html#deploying_rails_to_sub_uri),  
vi è scritto che si dovrebbe inserire un file vuoto nella directory  
/tmp/restart.txt della mia applicazione, che ho prontamente fatto  
tramite il comando touch restart.txt.  
Il fatto è che io ho una applicazione che è www.cyberservices.it e ho  
fatto anche questo sito di prova per cui in questo momento ho due  
applicazioni e purtroppo essendo molto analfabeta in inglese non ho  
capito bene le istruzioni della guida, in particolare credo si tratti  
della configuraione del httpd-vhosts.conf mediante istruzioni del tipo

\<VirtualHost \*:80\>  
…  
RailsBaseURI /app1  
RailsBaseURI /app2  
RailsBaseURI /app3

grazie per la pazienza… e per i suggerimenti.

---

<div class="post-metadata">

**Author:** ![romeo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7feea3/32.png) [@romeo\_c](https://www.ruby-forum.com/u/romeo_c)\
**Post date:** [December 12, 2010, 12:28am UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/8 "2010-12-12T00:28:07Z")

</div>

Ciao ragazzi, ho ancora quel problemino con l’applicazione cyber-prova,  
e credo proprio che sia una questione di permessi  
Nel VPS remoto la condizione è questa  
l’applicazione è stata generata come root ma poi ho modificato utente e  
permessi e quindi con il comando ls - alt si nota che i permessi della  
directory sono questi:

drwxrwxrwx 13 romeo users 4096 2010-12-11 19:39 cyber-prova/

l’errore indicato da production.log è questo

Started POST “/posts” for 94.xxx.xxx.xxx at 2010-12-11 23:45:57 +0100  
Processing by PostsController#create as HTML  
Parameters: {“utf8”=\>“â\<9C\>\<93\>”,  
“authenticity\_token”=\>“NyWpQgfqrSIREja273dU18REePA5L4i8VTqEcbuyLaQ=”,  
“post”=\>{“name”=\>“s”, “title”=\>“ss”, “content”=\>“sss”},  
“commit”=\>“Create Post”}  
Completed in 47ms

ActiveRecord::StatementInvalid (SQLite3::ReadOnlyException: attempt to  
write a readonly database: INSERT INTO “posts” (“name”, “title”,  
“content”, “created\_at”, “updated\_at”) VALUES (‘s’, ‘ss’, ‘sss’,  
‘2010-12-11 22:45:57.832125’, ‘2010-12-11 22:45:57.832125’)):  
app/controllers/posts\_controller.rb:46:in `block in create' app/controllers/posts_controller.rb:45:in`create’

Ne pc di casa posso risolvere il problema semplicemente creando un  
utente per passenger (PassengerDefaultUser ruby ) e inserendolo in  
httpd.conf  
ma non posso farlo nel VPS, mi richiederebbe le credenziali di  
accesso…)  
qualcuno mi sa indicare qualche possibile soluzione?  
grazie per la cortesia  
(grazie Duilio per i suggerimenti)

---

<div class="post-metadata">

**Author:** ![romeo\_c](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/7feea3/32.png) [@romeo\_c](https://www.ruby-forum.com/u/romeo_c)\
**Post date:** [December 13, 2010, 10:26pm UTC](https://www.ruby-forum.com/t/problemino-di-deployng-sito-prova/199923/9 "2010-12-13T22:26:12Z")

</div>

Ciao Ragazzi,  
ho risolto il problemino e mi sembra giusto far partecipi altri  
dilettanti come me che si imbattono in cose analoghe.  
“Il problemino” erano i permessi che devono essere dati correttamente,  
sul sito cyber-prova ho dato i permessi solo al livello della radice con  
chmod 777 e quindi non davo la possibilità agli utenti di accedere in  
scrittura alla /db ecc.  
Sul pc di casa, avendo creato l’utente per passenger al livello di  
httpd.conf o inserendolo nel httpd-vhosts.conf, non riscontravo nessun  
problema, ma non potevo fare lo stesso con il VPS remoto.  
E’ bastato dare i giusti permessi e anche con l’applicazione remota sono  
riuscito a risolvere il problemino.  
su quello di casa, anche senza l’utente privilegiato di passenger,  
settando i permessi per la dir con chmod -R 777 cyber-prova,  
l’applicazione funziona.  
Credo però sia meglio settare i permessi in modo più occulato per una  
applicazione pubblica.  
Ringrazio tutti quelli che mi hanno dato dei suggerimenti utili e spero  
un giorno di poter fare altrettanto.
