/ / Apache2 s mod_fastcgi a Symfony2 nesprávne identifikuje obrazové súbory - symfony, apache2, mod-fastcgi

Apache2 s mod_fastcgi a Symfony2 správne neidentifikuje obrazové súbory - symfony, apache2, mod-fastcgi

Ja som na chvíľu bojoval a hľadal v spoločnosti Google nápady a riešenia môjho problému, ale stále si nemôžem uvedomiť toto.

Mám server Apache2 pomocou mod_fastcgi apoužívam Symfony2. Všetko sa zdá byť v poriadku, súbory CSS a JS a súbory PHP sú správne analyzované. Problém je však so súbormi obrázkov, ako sú súbory .png (aj favicon.ico sa nerozpozná). Priamy prístup k súboru mi dáva Prístup zamietnutý, pri použití súboru vo vnútri .twig šablóny dáva nasledujúca chyba v apache error.log:

    FastCGI: server "/home/{...}/www/fastcgi/mina/php5.external/favicon.ico" stderr: Access to the script "/home/{...}/www/fastcgi/mina/php5.external/favicon.ico" has been denied (see security.limit_extensions)

Súčasné konfigurácie sú:

fastcgi.conf:

    <IfModule mod_fastcgi.c>
FastCgiIpcDir /var/lib/apache2/fastcgi/
AddHandler php5-fcgi .php
Action php5-fcgi /cgi-bin/php5.external
<Location "/cgi-bin/php5.external">
Order Allow,Deny
Allow from All
</Location>
</IfModule>

Moja konfigurácia VirtualHost:

<VirtualHost *:6308>
ServerName mina.loc
DocumentRoot /home/{...}/www/mina/web

# Fast CGI + FPM
FastCgiExternalServer /home/{...}/www/fastcgi/mina/php5.external -socket /var/run/php5-fpm.sock
Alias /cgi-bin/ /home/{...}/www/fastcgi/mina/

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

<Directory /home/{...}/www/mina/web>
Options FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

Action application/x-httpd-php /cgi-bin/php5
ErrorLog /var/log/apache2/error.log
LogLevel debug

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %T/%D" extended
CustomLog /var/log/apache2/mina_access.log extended

# Enable output compression for all text/html files
AddOutputFilterByType DEFLATE text/html text/plain
</VirtualHost>

kde php5.external je symbolickým odkazom na moje Symfony web priečinok obsahujúci app.php, app_dev.php, .htaccess súbory, ako aj odkazy na moje balíky, javascript a css súbory.

Nie som si úplne istý, kde je problém, ako väčšinaz toho, čo som čítal na túto tému je o Nginx + fastcgi.Myslím, že to je nastavenie celej webovej zložky sa používa s fastcgi, ale nemôžete naozaj byť istí.Má niekto má nejaké návrhy?

odpovede:

0 pre odpoveď č. 1

pridajte to do konfigurácie php-fpm na vyriešenie problému:

 security.limit_extensions = FALSE

0 pre odpoveď č. 2

OK, podarilo sa mi to opraviť sám. Bola to moja nedorozumenie rýchlych konfigurácií, ktoré vytvorili problém a nasledovali tento odkaz, Problém som vyriešil.

Tu sú dva súbory revidované:

fastcgi.conf

<IfModule mod_fastcgi.c>
ScriptAlias /cgi-bin/ "/home/{...}/www/fastcgi/"

AddHandler php5-fcgi .php .php5 .php4
Action php5-fcgi /cgi-bin/php5.fcgi

</IfModule>

Tu, php5.fcgi je nasledujúci skript:

#!/bin/bash
#
# php5.fcgi
# Shell Script to run PHP5 using mod_fastcgi under Apache 2.x
#
#USER=$(/usr/bin/whoami)
#PHPRC="/var/www/$USER/.cgi-bin/php.ini"
PHP_FCGI_CHILDREN=5
#PHP_FCGI_MAX_REQUESTS=1000
#export PHPRC
export PHP_FCGI_CHILDREN
#export PHP_FCGI_MAX_REQUESTS
exec /usr/bin/php5-cgi

konfigurácia virtuálneho hostiteľa:

<VirtualHost *:6308>
ServerName mina.loc
DocumentRoot /home/{...}/www/mina/web

FastCgiExternalServer /home/{...}/www/fastcgi/php5.fcgi -socket /var/run/php5-fpm.sock

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

<Directory /home/{...}/www/mina/web>
Options FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>

ErrorLog /var/log/apache2/error.log
LogLevel debug

LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i" %T/%D" extended
CustomLog /var/log/apache2/mina_access.log extended

# Enable output compression for all text/html files
AddOutputFilterByType DEFLATE text/html text/plain
</VirtualHost>