25 messages in ru.sysoev.nginxRe: PHP can't run under alias folder
FromSent OnAttachments
e123e123e123Jul 17, 2009 9:48 am 
Edho P AriefJul 17, 2009 9:59 am 
Dick MiddletonJul 17, 2009 1:19 pm 
Edho P AriefJul 17, 2009 4:20 pm 
Igor SysoevJul 18, 2009 12:30 am 
e123e123e123Jul 18, 2009 1:15 am 
Igor SysoevJul 18, 2009 2:14 am 
e123e123e123Jul 18, 2009 6:43 am 
Igor SysoevJul 18, 2009 7:08 am 
Edho P AriefJul 18, 2009 7:12 am 
Igor SysoevJul 18, 2009 7:16 am 
e123e123e123Jul 18, 2009 7:52 am 
Edho P AriefJul 18, 2009 7:57 am 
e123e123e123Jul 18, 2009 8:02 am 
edogawaconanJul 18, 2009 8:04 am 
edogawaconanJul 18, 2009 8:06 am 
e123e123e123Jul 18, 2009 8:18 am 
e123e123e123Jul 18, 2009 8:21 am 
edogawaconanJul 18, 2009 8:36 am 
Igor SysoevJul 19, 2009 4:24 am 
Igor SysoevJul 19, 2009 4:25 am 
dennis caoSep 22, 2009 8:30 am 
Weibin YaoSep 23, 2009 3:08 am 
wolfenstockSep 23, 2009 7:34 pm 
Weibin YaoSep 23, 2009 7:53 pm 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: PHP can't run under alias folderActions...
From:Igor Sysoev (is@rambler-co.ru)
Date:Jul 18, 2009 7:08:46 am
List:ru.sysoev.nginx

On Sat, Jul 18, 2009 at 09:44:03AM -0400, e123e123e123 wrote:

example :

http://website1.website.com/abc.gif <--- can display .gif

http://website1.website.com/phpmyadmin/mylogo.gif < ---- can't dispaly .gif

the config file as below :

This is because these images are handled not in

location /phpmyadmin/ {

but in regex location

location ~ .*\.(php|php5)?$

since it has more priority. Look at http://wiki.nginx.org/NginxHttpCoreModule#location to see how nginx chooses location.

You need something like this:

location ~ ^/phpmyadmin/(.*\.php)$ { }

location ~ ^/phpmyadmin/ { }

Also, you do not need "alias" here. These locations:

location /phpmyadmin/ { alias /home/httpd/html/phpmyadmin/;

location ~ ^/phpmyadmin/(.*\.php)$ { alias /home/httpd/html/phpmyadmin/$1;

should be changed to

location /phpmyadmin/ { root /home/httpd/html;

location ~ ^/phpmyadmin/.*\.php$ { root /home/httpd/html;

----------------------------------------------------------------------------------------------- user username username; worker_processes 8; error_log /var/log/nginx_error.log crit; pid /usr/local/webserver/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this
process. worker_rlimit_nofile 51200;

events { use epoll; worker_connections 51200; }

http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on;

fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k;

gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;

server { listen 80; server_name website1.website.com; index index.html index.htm index.php; root /home/httpd/html/website1;

location /phpmyadmin/ { alias /home/httpd/html/phpmyadmin/; index index.php index.html index.htm; auth_basic "Restricted"; auth_basic_user_file /home/httpd/html/phpmyadmin/.htpasswd; }

location ~ ^/phpmyadmin/(.*\.php)$ { alias /home/httpd/html/phpmyadmin/$1; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; fastcgi_param SCRIPT_FILENAME $request_filename; }

location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; }

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; }

location ~ .*\.(js|css)?$ { expires 1h; }

log_format access '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; access_log /var/log/access.log access; }

Posted at Nginx Forum: http://forum.nginx.org/read.php?2,4151,4177#msg-4177