47.4.11. Apache2 FCGI

Odkazy:

Poznámka

Uvedený postup je pro Debian Sarge, toho času stable.

FIXME:Předpokládám že máme nainstalováno vše co je popsáno v článku 47.4.9 – „Apache 2“. Doinstalujeme modul fcgid do apache a fcgi knihovnu k ruby.

Na server rapp mám enablované následující moduly apache: cgid, fcgid, rewrite, ruby, ssl, userdir.

# aptitude install libfcgi-ruby1.8 libapache2-mod-fcgid
# a2enmod fcgid

Upravil jsem konfiguraci fcgid modulu takto:

Příklad 47.2. fcgid.conf

<IfModule mod_fcgid.c>
        AddHandler fcgid-script .fcgi
        SocketPath /var/lib/apache2/fcgid/sock
        IPCCommTimeout 120
        IPCConnectTimeout 10
        MaxProcessCount 40
        ProcessLifeTime 86400
        IdleTimeout 1800
        DefaultMaxClassProcessCount 8
        DefaultInitEnv RAILS_ENV production
</IfModule>

FIXME:

Příklad 47.3. apache2.fcgi.conf

# Apache 2 configuration for Kontejnery using FastCGI (fcgid).

# Documentation directory is aliased into application/doc.

Alias /kontejnery/doc /home/rails/kontejnery/doc

<Directory /home/rails/kontejnery/doc>
        AllowOverride None

        # Access rules
        Order allow,deny
        Allow from all
</Directory>


# Application is aliased into public directory where are static pages
# and dispatcher.

Alias /kontejnery /home/rails/kontejnery/public

<Directory /home/rails/kontejnery/public>
        Options ExecCGI FollowSymlinks
        AllowOverride None

        RubySafeLevel 0
        RubySetEnv RAILS_ENV production

        RubyRequire apache/ruby-run
        <Files *.rb>
                SetHandler ruby-object
                RubyHandler Apache::RubyRun.instance
        </Files>

        # Restrict access to the application on apache level.  We
        # could specify any apache authentication.

        # AuthType Basic

        Order allow,deny
        Allow from all


        # Rewrite engine configuration

        RewriteEngine On
        RewriteBase /kontejnery
        RewriteRule ^$ index.html [QSA]
        RewriteRule ^([^.]+)$ $1.html [QSA]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]

        # Specific error message for error 500.

        ErrorDocument 500 "<h2>Application fatal error</h2>Rails application failed to start properly."

</Directory>

Výstraha

Může se stát že nám aplikace nefunguje, sám jsem strávil několik hodin hledáním řešení na Internetu. Po různých pokusech jsem se nakonec dostal k tomu, že jsem neměl v pořádku oprávnění na adresáři ./tmp/sessions.

Tip

Zkuste použít pro ukládání sessions databázi.

Licence Creative Commons
Tento dokument Ruby, jehož autorem je Radek Hnilica, podléhá licenci Creative Commons Uveďte autora-Nevyužívejte dílo komerčně-Zachovejte licenci 3.0 Česká republika .