[prev in list] [next in list] [prev in thread] [next in thread] 

List:       nginx
Subject:    Re: Ask About Framework-Nginx
From:       "dika" <andika () agrakom ! com>
Date:       2007-12-27 12:00:33
Message-ID: 00b701c84880$15b3d560$0215a8c0 () dikaaxioo
[Download RAW message or body]

Thank you very much Mr. Sysoev, it's nicely work!


----- Original Message ----- 
From: "Igor Sysoev" <is@rambler-co.ru>
To: <nginx@sysoev.ru>
Sent: Thursday, December 27, 2007 2:25 PM
Subject: Re: Ask About Framework-Nginx


> On Thu, Dec 27, 2007 at 01:33:46PM +0700, dika wrote:
> 
> > Dear All,
> > 
> > Im a System Admin from Indonesia.
> > I have a little trouble with Engine-X (nginx).
> > My server can recognize PHP & FCGI well, but a trouble appear when I use 
> > a FuseBox frame work in my server.
> > I assume that the troubles are here:
> > ~ when server access a page like this:
> > http://jkt6.detiksport.com/raket/index.php/home.read/tahun/2007/bulan/12/tgl/17/time/235133/idnews/868421/idkanal/79
> >  
> > Engine-X will parse that as folder (identified by slash (/)), but that 
> > doesn't really a folder. Those are a fuseBox parsing methode.
> > I run this application in Apache, and everything going well.
> > 
> > What should I do  ?
> > 
> 
> location ~ \.php($|/) {
> 
> set   $script     $uri;
> set   $path_info  "";
> 
> if ($uri ~ "^(.+\.php)(/.+)") {
> set   $script     $1;
> set   $path_info  $2;
> }
> 
> fastcgi_pass   127.0.0.1:9000;
> 
> fastcgi_param  SCRIPT_FILENAME 
> /data/labdetiksport/site/sport$script;
> fastcgi_param  PATH_INFO        $path_info;
> 
> ...
> 
> > This is my nginx.conf and spawn-php.sh config:
> > 
> > ---------------------------------------------nginx.conf--------------------------------------------
> >  user  detik users;
> > worker_processes  10;
> > pid /var/run/nginx.pid;
> > events {
> > worker_connections 1024;
> > }
> > http {
> > include /usr/local/nginx/conf/mime.types;
> > default_type  application/octet-stream;
> > log_format main '$remote_addr - $remote_user [$time_local] '
> > '"$request" $status $body_bytes_sent "$http_referer" '
> > '"$http_user_agent" "$http_x_forwarded_for"';
> > sendfile on;
> > tcp_nopush        on;
> > tcp_nodelay       off;
> > gzip            on;
> > gzip_http_version 1.0;
> > gzip_comp_level 2;
> > gzip_proxied any;
> > gzip_types      text/plain text/html text/css application/x-javascript 
> > text/xml application/xml application/xml+rss text/javascript;
> > server {
> > listen 202.158.66.30:80;
> > client_max_body_size 50M;
> > #server_name www.rubyonrailsworkshops.com rubyonrailsworkshops.com;
> > # doc root
> > root /data/labdetiksport/site/sport;
> > #access_log  /var/log/nginx.vhost.access.log  main;
> > access_log  /var/log/httpd/jkt6.detiksport-access.log  main;
> > error_log /var/log/httpd/jkt6.detiksport-error.log debug;
> > if (-f $document_root/system/maintenance.html) {
> > rewrite  ^(.*)$  /system/maintenance.html last;
> > break;
> > }
> > 
> > location / {
> > proxy_set_header  X-Real-IP  $remote_addr;
> > # If the file exists as a static file serve it directly without
> > # running all the other rewite tests on it
> > if (-f $request_filename) {
> > break;
> > }
> > 
> > # check for index.html for directory index
> > # if its there on the filesystem then rewite
> > # the url to add /index.html to the end of it
> > # and then break to send it to the next config rules.
> > if (-f $request_filename/index.html) {
> > rewrite (.*) $1/index.html break;
> > }
> > 
> > # Look for existence of PHP index file.
> > # Don't break here...just rewrite it.
> > if (-f $request_filename/index.php) {
> > rewrite (.*) $1/index.php;
> > }
> > 
> > # this is the meat of the rails page caching config
> > # it adds .html to the end of the url and then checks
> > # the filesystem for that file. If it exists, then we
> > # rewite the url to have explicit .html on the end
> > # and then send it on its way to the next config rule.
> > # if there is no file on the fs then it sets all the
> > # necessary headers and proxies to our upstream mongrels
> > if (-f $request_filename.html) {
> > rewrite (.*) $1.html break;
> > }
> > }
> > location /content_images/ {
> > alias /data/images/;
> > }
> > 
> > error_page   500 502 503 504  /500.html;
> > location = /500.html {
> > root   /data/labdetiksport/site/sport;
> > }
> > 
> > # Pass the PHP scripts to FastCGI server listening on ip:port.
> > #
> > # Requires you to start one instance of 
> > http://topfunky.net/svn/shovel/nginx/php-fastcgi.sh
> > location ~ \.php$ {
> > fastcgi_pass   127.0.0.1:9000;
> > fastcgi_index  index.php;
> > 
> > fastcgi_param  SCRIPT_FILENAME 
> > /data/labdetiksport/site/sport$fastcgi_script_name;
> > include /usr/local/nginx/conf/fastcgi.conf;
> > #fastcgi_param  QUERY_STRING     $query_string;
> > #fastcgi_param  REQUEST_METHOD   $request_method;
> > #fastcgi_param  CONTENT_TYPE     $content_type;
> > #fastcgi_param  CONTENT_LENGTH   $content_length;
> > }
> > 
> > }
> > 
> > }
> > ----------------------------------------------------------end of 
> > nginx.conf-----------------------------------------------
> > 
> > 
> > 
> > ----------------------------------------------------------spawn-php.sh-----------------------------------------------
> >  #!/bin/bash
> > 
> > # Description: PHP-FastCgi start script from 
> > http://blog.kovyrin.net/2006/05/30/nginx-php-fastcgi-howto/
> > #
> > # Author: Alexey Kovyrin http://blog.kovyrin.net
> > # Comments by: Geoffrey Grosenbach http://topfunky.com
> > #
> > # This script is started once and receives PHP requests from Nginx for
> > # all apps. The Nginx config passes the full path to the script being 
> > requested, so
> > # only one fastcgi runner is needed for all apps, virtual hosts, etc.
> > #
> > # See also the init.d script for starting this on boot.
> > #
> > # To install PHP, I had to also compile the following:
> > #
> > #   * http://www.gnu.org/software/m4/
> > #   * http://flex.sourceforge.net/
> > #   * http://php.net/ with 
> > './configure --prefix=/usr/local --enable-fastcgi'
> > 
> > ## ABSOLUTE path to the PHP binary
> > PHPFCGI="/usr/local/bin/php"
> > 
> > ## tcp-port to bind on
> > FCGIPORT="9000"
> > 
> > ## IP to bind on
> > FCGIADDR="127.0.0.1"
> > 
> > ## number of PHP children to spawn
> > PHP_FCGI_CHILDREN=5
> > 
> > ## number of request before php-process will be restarted
> > PHP_FCGI_MAX_REQUESTS=1000
> > 
> > # allowed environment variables sperated by spaces
> > ALLOWED_ENV="PATH USER"
> > 
> > ## if this script is run as root switch to the following user
> > USERID=detik
> > GROUPID=users
> > 
> > ################## no config below this line
> > 
> > if test x$PHP_FCGI_CHILDREN = x; then
> > PHP_FCGI_CHILDREN=5
> > fi
> > 
> > ALLOWED_ENV="$ALLOWED_ENV PHP_FCGI_CHILDREN"
> > ALLOWED_ENV="$ALLOWED_ENV PHP_FCGI_MAX_REQUESTS"
> > ALLOWED_ENV="$ALLOWED_ENV FCGI_WEB_SERVER_ADDRS"
> > 
> > if test x$UID = x0; then
> > #  EX="/bin/su -m -c \"$PHPFCGI -q -b $FCGIADDR:$FCGIPORT\" $USERID"
> > EX="/usr/local/bin/php -q -b 127.0.0.1:9000 detik"
> > else
> > EX="$PHPFCGI -b $FCGIADDR:$FCGIPORT"
> > fi
> > 
> > echo $EX
> > 
> > # copy the allowed environment variables
> > E=
> > 
> > for i in $ALLOWED_ENV; do
> > E="$E $i=${!i}"
> > done
> > 
> > # clean environment and set up a new one
> > nohup env - $E sh -c "$EX" &> /dev/null &
> > 
> > 
> > ----------------------------------------------------------end of 
> > spawn-php.sh-----------------------------------------------
> > 
> > 
> > Thank you very much for your kind attentions.
> > 
> > 
> > best regards,
> > Dika
> > .indonesian
> 
> -- 
> Igor Sysoev
> http://sysoev.ru/en/
> 
> 
> 
> -- 
> No virus found in this incoming message.
> Checked by AVG Free Edition.
> Version: 7.5.516 / Virus Database: 269.17.8/1195 - Release Date: 
> 12/24/2007 11:19 AM
> 
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic