2013-08-07 13 views
7

Ho già installato gli strumenti necessari e ho seguito diversi tutorial cercando di far rispondere i passeggeri.Errore 403 utilizzando il passeggero per i binari in apache

posso accedere ai file statici nella cartella pubblica (500.html pubblico/o 422.hml). Ieri sono entrato attraverso un vhost e ho trovato alcuni errori dei passeggeri. Ma qualche tempo dopo l'hosting ha riavviato il servizio e da allora non ho più potuto accedere all'app rails.

link

link

link

Questi sono alcuni dei collegamenti che ho usato per configurare il server. Ho anche letto che potrebbe essere un problema di autorizzazione; L'ho controllato, ma non sono sicuro che vada bene.

+0

403 errore proibito è problema di autorizzazione. Controlla la root del documento e assicurati che index.php abbia il permesso 644. Assicurati inoltre che index.php abbia la proprietà dell'utente come quella di 500.html a cui è possibile accedere. –

+0

Questa è un'applicazione Rails, che funziona attraverso Apache + passenger. Posso accedere ai file locali, come le immagini. Ma quando i binari dovrebbero rispondere, mi dà quell'errore. – narc88

risposta

1

risposta è stata che passeggero mi ha dato 403 perché ho dovuto impostare variabile d'ambiente "RackEnv" sulla configurazione di Apache per lo "sviluppo" (sul mio caso).

15

Prima di tutto controlla il registro degli errori. Per impostazione predefinita, è posizionato a /var/log/apache2/.

Se si dispone del problema client denied by server configuration, controllare il file di configurazione del sito allo /etc/apache2/sites-available/your-site.conf. Deve essere conforme a Phusion Passenger User Guide. Dai uno sguardo allo Require all granted.

<Directory "/home/user/folder"> 
    Require all granted 
    Options FollowSymLinks 
    # This relaxes Apache security settings. 
    AllowOverride None 
    # MultiViews must be turned off. 
    Order allow,deny 
    Allow from all 
</Directory> 
+4

Grazie! Il comando "Richiedi tutto concesso" ha funzionato – macool

+1

Sembra che "Richiede tutto concesso" è * obbligatorio * se si utilizza Apache> = 2.4 – rogerdpack

2

ho anche avuto un 403 errore utilizzando passeggero per rotaie in Apache sul mio Mac OS 10.9 (un sistema Unix-like). Ecco alcuni suggerimenti:

  1. È possibile controllare directory di log di Apache e vedere la cosa è successo. La directory: /var/log/apache2/error_log.
  2. Problema: Permesso negato: l'accesso a/negato (filesystem percorso 'path_apache_access') perché le autorizzazioni di ricerca mancano su un componente del percorso di.

    Controllare 'path_apache_access' dalla CLI: ls -ld 'path_apache_access' e utilizzare chmod + x per modificare il privilegio del percorso.

    Inoltre, notare che questo: Httpd Wiki - (13) Permission Denied-.

  3. Problema: errore di configurazione: non poteva eseguire l'autenticazione. AuthType non impostato!.

    Problema: client negato dalla configurazione del server.

    Passare a /etc/apache2/httpd.conf e dare un'occhiata al tag <Directory>.

    controllare la versione di Apache da CLI: apachectl -v, se Apache < 2.4, non rimuovere il commento "richiedono che tutte concesso".

    <Directory "rails_app_directory/public"> 
         # This relaxes Apache security settings. 
         AllowOverride all 
         # MultiViews must be turned off. 
         Options -MultiViews 
         # Uncomment this if you're on Apache >= 2.4: 
         # Require all granted 
         Options FollowSymLinks 
         Order allow,deny 
         Allow from all 
    </Directory> 
    
4

OK per me questo significava stavo correndo rotaie 2.3 e utilizzando Phusion passeggeri 5.x

Apparentemente 5.x non funziona con 2.2 a tutti, e richiede 2.3 per voi copia in un file config.ru in modo che utilizzi il rack per il back-end.

esempio di file config.ru per 2.3:

# Rack Dispatcher 

# Require your environment file to bootstrap Rails 
require File.dirname(__FILE__) + '/config/environment' 

# Dispatch the request 
run ActionController::Dispatcher.new 

Non riuscivo a capire perché non incantesimi sembrava funzionare, era come passeggero stava ignorando la mia applicazione Rails.

Nel mio file /var/log/apache2/error.log, ho avuto questa:

[Mon May 11 15:47:00.397891 2015] [autoindex:error] [pid 17490:tid 3058694976] [client 216.49.181.251:49248] AH01276: Cannot serve directory /home/x/y/railsapp/public/: No matching DirectoryIndex (index.html,index.cgi,index.pl,index.php,index.xhtml,index.htm) found, and server-generated directory index forbidden by Options directive, referer: https://www.google.com/

che hanno confuso il heck fuori di me un apparentemente significava "passeggero non è in esecuzione su questo host virtuale" .

Se ho creato un file public.index.html, Apache ha fornito quell'ammenda in modo che non si trattasse di un problema di autorizzazioni.

Ho visto anche questo, il che significava passeggeri è stato avviando ok:

[ 2015-05-11 18:23:53.9594 4964/b7415700 agents/Watchdog/Main.cpp:728 ]: All Phusion Passenger agents started!

Vedi anche https://www.phusionpassenger.com/documentation/Users%20guide%20Apache%204.0.html#_i_get_a_403_forbidden_error

Quindi, fondamentalmente con 5.x passeggero (in note di rilascio si dice che Rails 2.2 isn' t supportato, 2.3 è supportato solo se si crea un file "config.ru" nella radice dell'app Rails. Funziona con le vecchie versioni di rack like rails 2.3, basta rimuovere la gemma più recente del rack e installare 1.1.6 o cosa no, rimuovi eventuali gemme di rack vendute. GL!

anche come nota a margine, questo messaggio:

[Mon May 11 18:25:10.235574 2015] [core:alert] [pid 5263:tid 3017780032] [client 127.0.0.1:56737] /home/rdp/dev/prod_flds/public/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

significava "rimuovere il tuo pubblico/.htaccess il file non è necessaria in genere passeggeri"

+0

wow ottima spiegazione, cosa andrebbe all'interno del file config.ru? –

+1

@SurgePedroza ha aggiunto quello che sembra il mio, FWIW. – rogerdpack

Problemi correlati