effective life plus

Binzy's blog

nginx + Zend Framework @ Windows

| Filed under Programming

If you feel pretty boring with Apache, just like me, so having a try of nginx might be good idea. Although at most of my time, I’m using Windows, fortunately, nginx has native Windows build. So my steps might be helpful to you to try nginx on Windows, especially Windows 7.

1. Download nginx and php and install

2. Configure nginx and php

  • PHP, no specific configuration, just do what you like to php.ini.
  • Nginx
    Fast-CGI of php
    You can find sample from wiki.nginx.org, http://wiki.nginx.org/PHPFastCGIOnWindows, below works for me.
    location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9999;
                fastcgi_index  index.php;
                fastcgi_param  SCRIPT_FILENAME  D:/www/public/$fastcgi_script_name;
                include        fastcgi_params;
            }

    Configure for Zend Framework
    -f and !-f are used for checking whether file exists.
            error_page 404 /index.php;
    
            if (!-f $request_filename) {
                rewrite ^.*$ /index.php last;
                break;
            }

3. batch script to start and stop nginx + php-cgi

I’m using RunHiddenConsole to hide the prompt window and actually you also can use vbs to run nginx.

start-nginx.bat

@ECHO OFF
ECHO Starting PHP FastCGI...
C:\nginx\RunHiddenConsole.exe C:\PHP5\php-cgi.exe -b 127.0.0.1:9999
ECHO Starting nginx...
C:\nginx\RunHiddenConsole.exe c:\nginx\nginx.exe

stop-nginx.bat
@ECHO OFF
ECHO Stopping nginx...
taskkill /F /IM nginx.exe
ECHO Stopping php-cgi...
taskkill /F /IM php-cgi.exe

but php-pfm doesn’t work on Windows unless you are using cygwin.

nginx_zend

Zend Framework Multiple Helper Path Configuration

| Filed under Programming

As you may have multiple configuration for helpers of Zend View, simply configure as below will help

resources.view.helperPath.Zend_View_Helper = APPLICATION_PATH "/views/helpers"
resources.view.helperPath.My_Custom_Helper = "/path to helpers"

The “My_Custom_Hepler” is the prefix, so that you can support your different modules’ help path without hard coding in php codes.

subversion client and http

| Filed under Programming

I hate subversion…

while using linux, I thought subversion client should natively support http schema,  but actually it doesn’t. By reading installation instruction, it says I need Neon… Then I download Neon and configure with –with-neon=<neonpath>, doesn’t work! try copy neon to subversion source code, reconfigure it… without –with-neon option… still doesn’t work! Shit… via looking into configure log, it says…

checking neon library version… 0.29.0
You have a neon/ subdir containing version 0.29.0,
but Subversion needs neon 0.28.4.

An appropriate version of neon could not be found, so libsvn_ra_neon
will not be built.  If you want to build libsvn_ra_neon, please either
install neon 0.28.4 on this system

or

get neon 0.28.4 from:
    http://www.webdav.org/neon/neon-0.28.4.tar.gz
unpack the archive using tar/gunzip and rename the resulting
directory from ./neon-0.28.4/ to ./neon/

no suitable neon found

… download 0.28.4, copy to sub folder, configure… yeah… works, finally. You can check whether it supports http via “svn –version”, there should be a ra_neon module.