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ď č. 1pridajte 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>