Greetings all.
I successfully installed nginx + php-fpm. I already read numerous
tutorials and exemples out there on the web, and I would need some
additional insights on how to port the various configuration options I
had via .htaccess under Apache.
For instance, CSS files needs to be processed by PHP.
Under Apache, I simply put this in the .htaccess :
SetHandler application/x-httpd-php
- How can I achieve this under Nginx with php-fpm ?
- Any way to specify per server PHP configs à -la Apache (ex : php_value
memory_limit 64M) ? - Weird behavior : if I try to access a PHP file (ex :
http://www.mydomain.com/somefile.php), I get a download prompt.
Here is the server configuration for mydomain.
Any tweaks and advices would be appreciated.
server
{
listen :80 default;
server_name mydomain.com www.mydomain.com;
expires 0;
access_log access.log;
error_log error.log;
# Redirect from non-www to www
if ($host = 'mydomain.com')
{
rewrite ^/(.*)$ http://www.mydomain.com/$1
permanent;
}
# Simple static content delivery system (versionning
only)
location ~*
“^(+)-[0-9]{10}.(js|gif|jpg|jp?g|png|css|swf)$”
{
rewrite
“(.*)/(+)-[0-9]{10}.(js|gif|jp?g|png|css|swf)$” $1/$2.$3 last;
return 403;
}
location /
{
# set document root and index file
root ;
index index.php index.html index.htm;
# if file exists, set expire and return it
if (-f $request_filename)
{
expires 1y;
break;
}
# if directory exists return it right away
if (-d $request_filename)
{
break;
}
# rewrite everyting else to index.php
if (!-e $request_filename)
{
rewrite ^ /index.php last;
break;
}
}
# if the request starts with our frontcontroller, pass
it on to fastcgi
location ~ ^/index.php
{
# set document root
root ;
# fastcgi setup
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
fastcgi_param QUERY_STRING
$query_string;
fastcgi_param REQUEST_METHOD
$request_method;
fastcgi_param CONTENT_TYPE
$content_type;
fastcgi_param CONTENT_LENGTH
$content_length;
fastcgi_param SCRIPT_NAME
$fastcgi_script_name;
fastcgi_param REQUEST_URI
$request_uri;
fastcgi_param DOCUMENT_URI
$document_uri;
fastcgi_param DOCUMENT_ROOT
$document_root;
fastcgi_param SERVER_PROTOCOL
$server_protocol;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE
nginx/$nginx_version;
fastcgi_param REMOTE_ADDR
$remote_addr;
fastcgi_param REMOTE_PORT
$remote_port;
fastcgi_param SERVER_ADDR
$server_addr;
fastcgi_param SERVER_PORT
$server_port;
fastcgi_param SERVER_NAME
$server_name;
# PHP only, required if PHP was built with
–enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;
}
# Prevent files beginning with . from being viewed
location ~ /\.
{
deny all;
}
}
Posted at Nginx Forum: