Portál AbcLinuxu, 14. května 2024 17:40


Dotaz: Redmine v apache na Centos 7

11.6.2017 11:02 lertimir | skóre: 64 | blog: Par_slov
Redmine v apache na Centos 7
Přečteno: 555×
Odpovědět | Admin
Instaloval jsem Redmine na Centos 7 a zatím se mi nepodařilo jej rozběhnout. Pokud rovedu testování instalace přes
bundle exec rails server webrick -e production
dostanu správný funkční testovací server na portu 3000. Pokud se o totéž pokusím přes apache dostanu do error logu hlášky.
/usr/bin/env: ruby: No such file or directory
[Sun Jun 11 10:38:34.115643 2017] [fcgid:warn] [pid 2574] (104)Connection reset by peer: [client 192.168.112.102:43744] mod_fcgid: error reading data from FastCGI server
[Sun Jun 11 10:38:34.115799 2017] [core:error] [pid 2574] [client 192.168.112.102:43744] End of script output before headers: dispatch.fcgi
což si vysvětluji tak, že při startu skriptu dispatch.fcgi který je:
#!/usr/bin/env ruby 

require File.dirname(__FILE__) + '/../config/boot'
require File.dirname(__FILE__) + '/../config/environment'

class Rack::PathInfoRewriter
  def initialize(app)
    @app = app
  end

  def call(env)
    env.delete('SCRIPT_NAME')
    parts = env['REQUEST_URI'].split('?')
    env['PATH_INFO'] = parts[0]
    env['QUERY_STRING'] = parts[1].to_s
    @app.call(env)
  end
end

Rack::Handler::FastCGI.run Rack::PathInfoRewriter.new(RedmineApp::Application)
nejsou k dispozici proměnné prostředí, které říkají kde je ruby a jeho knihovny. Jediné na co jsem narazil, je tady v části o freeBSD se zmiňují o tom že je potřeba dostat do fcgi proměnnou RAILS_ENV=production. Ale to není k linuxu.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

11.6.2017 18:31 NN
Rozbalit Rozbalit vše Re: Redmine v apache na Centos 7
Odpovědět | | Sbalit | Link | Blokovat | Admin
Stejna chyba.
11.6.2017 19:32 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Redmine v apache na Centos 7
Bohužel stejná není. ten rozdíl je že #!/usr/bin/env ruby kterým začíná fcgi skript se vůbec neprovede. protože není nalezeno. (ruby je fakticky hluboko v /opt stromu, a pokud první řádek vyměním za přesný odkaz na ruby binárku tak to padne také díky nenalezeným knihovnám - také hluboko v /opt, ale se správnými cestami v LD_LIBRARY_PATH) chybovou hlášku, kterou jsi poslal a která nasleduje nenalezení ruby, je podle mne generální hláška na jakýkoliv pád fcgi skriptu a v jeho případě bylo to s gemem.
11.6.2017 22:01 ttt
Rozbalit Rozbalit vše Re: Redmine v apache na Centos 7
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ta chybová hláška neříká nic moc užitečného, jen že je něco špatně. Skript z nějakého důvodu neproběhl. Vyhledávat podobné případy asi moc nepomůže, každému to bude nefungovat z jiného důvodu. Není něco v /path/to/redmine/log/*.log?

Trváš na FastCGI? Neříkám, že mám kdovíjaký přehled, ale s Rails jsem ho naposled viděl tak před pěti lety. Od té doby už jen různé servery, které spustí aplikaci na portu/socketu (podobně jako webrick) a apache/nginx se na něj jen přesměrují. Je potřeba starat se, aby kromě apache běžel i ten rails-server, na konfiguraci a případné hledání chyb je to jednodušší. Pokud je FastCGI požadavek, vybavuju si, že u tam býval i dispatch.cgi, kterým šlo provést jeden request, z příkazově řádky snad i tak, že se mu poslat na STDIN HTTP request. Zkusil bych to nejdřív prorazit tak.

Pokud to potřebuješ jen "nějak" rozchodit, pak bych sáhnul třeba po unicornu a apache použil jen jako proxy. Někde mám instanci redminu, která tak běží, jen s nginx místo apache. Dej vědět, případně sem dám i konfiguráky a jak to spouštím.

kozzi avatar 12.6.2017 11:54 kozzi | skóre: 55 | blog: vse_o_vsem | Pacman (Bratrušov)
Rozbalit Rozbalit vše Re: Redmine v apache na Centos 7
Odpovědět | | Sbalit | Link | Blokovat | Admin

No ja to nakonec vyresil tim ze mi redmine bezi v dockeru a mam klid :)

https://hub.docker.com/r/sameersbn/redmine/

Linux je jako mušketýři "jeden za všechny, všichni za jednoho"
Max avatar 12.6.2017 21:22 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Redmine v apache na Centos 7
Odpovědět | | Sbalit | Link | Blokovat | Admin
Takto mám nastaven apache na produkčním Redmine (sice Debian, ale nevidím problém, čistě přes Passenger, žádné cgi):

/etc/apache2/sites-enabled/redmine.conf

<VirtualHost *:80>
  ServerAdmin admin@devaine.cz
  ServerName bt1-ph.corp.devaine.cz
  ServerAlias helpdesk helpdesk.corp.devaine.cz helpdesk.corp.devaine.eu

  VirtualDocumentRoot /var/www/redmine/public

  LogLevel warn
  ErrorLog /var/log/apache2/redmine-error.log
  CustomLog /var/log/apache2/redmine-access.log combined

     <Location /redmine>
            RailsEnv production
            RackBaseURI /redmine
            Options -MultiViews
     </Location>

  <IfModule mod_rewrite.c>
    <IfModule mod_ssl.c>
        RewriteEngine on
        RewriteCond %{HTTPS} !^on$ [NC]
        RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI}  [L]
    </IfModule>
  </IfModule>


</VirtualHost>



<VirtualHost *:443>
  ServerAdmin admin@devaine.cz
  ServerName bt1-ph.corp.devaine.cz
  ServerAlias helpdesk helpdesk.corp.devaine.cz helpdesk.corp.devaine.eu
   

  VirtualDocumentRoot /var/www/redmine/public

  Include /etc/apache2/cert.conf

  LogLevel warn
  ErrorLog /var/log/apache2/redmine-error.log
  CustomLog /var/log/apache2/redmine-access.log combined


      <Location /redmine>
              RailsEnv production
              RackBaseURI /redmine
              Options -MultiViews
      </Location>

   # zpusobuje castecnou nekompatibilitu s mode_rewrite a par dalsimi moduly apache (neco nemusi fungovat)
   PassengerHighPerformance on

   # dalsi tuning :
   PassengerMaxPoolSize 15
   PassengerMinInstances 3

   # lze nastavit jen u verze enterprise passengeru :
   #PassengerMaxInstances 30
  
   # cas v s, po kterem se app po necinnosti (neprijde zadny web pozadavek) ukonci - spawne, 0 = neukoncovat app
   PassengerPoolIdleTime 0
</VirtualHost>
/etc/apache2/cert.conf

SSLEngine On

# Here, I am allowing only "high" and "medium" security key lengths.
#SSLCipherSuite HIGH:MEDIUM

SSLHonorCipherOrder on

# Prefer PFS, allow TLS, avoid SSL, for IE8 on XP still allow 3DES
SSLCipherSuite "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+AESGCM EECDH EDH+AESGCM EDH+aRSA HIGH !MEDIUM !LOW !aNULL !eNULL !LOW !RC4 !MD5 !EXP !PSK !SRP !DSS"

# Here I am allowing SSLv3 and TLSv1, I am NOT allowing the old SSLv2.
SSLProtocol all -SSLv2 -SSLv3

# Prevent CRIME/BREACH compression attacks
SSLCompression Off

#   Server Certificate:
SSLCertificateFile /etc/apache2/ssl/bt1-ph.corp.devaine.cz.crt

#   Server Private Key:
SSLCertificateKeyFile /etc/apache2/ssl/bt1-ph.corp.devaine.cz.pem

#   Server Certificate Chain:
SSLCertificateChainFile /etc/apache2/ssl/DevaineRootCA-G2.crt

#   Certificate Authority (CA):
SSLCACertificateFile /etc/apache2/ssl/DevaineRootCA-G2.crt
Jinak ty jsi asi postupoval podle tohoto howto : How to Install Redmine on CentOS (Detailed)
Já bych se spíše řídil tím pro Debian : HowTo Install Redmine on Debian 8 with Apache2-Passenger.
Další věcí je, že Redmine dost často vyžaduje celkem nový ruby aj. věci kolem. Už jen z toho důvodu nepovažuji CentOS za dobrou volbu OS pro Redmine.
Zdar Max
Měl jsem sen ... :(

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.