Thursday, May 31, 2012

PHP Benchmarking Tools

1. ab: http://httpd.apache.org/docs/2.0/programs/ab.html
2. flood: http://httpd.apache.org/test/flood/
3. Web Capacity Analysis Tool: http://support.microsoft.com/kb/231282

reference: http://phplens.com/lens/php-book/optimizing-debugging-php.php

Sunday, May 13, 2012

Use Event Dispatcher in Symfony2

Just use the code below to get the "event_dispatcher" service, easy!
$eventDispatcher = $this->container->get('event_dispatcher');

Sunday, May 06, 2012

Compile PHP binary with Lua extension on Windolws 7

  1. download and install Microsoft Windows SDK for Windows 7 and .NET Framework 3.5 SP1 
  2. download PHP source code (php-5.3.11.tar.bz2) from: http://windows.php.net/download/
  3. download PHP SDK (php-sdk-binary-tools-20110915.zip) from: http://windows.php.net/downloads/php-sdk/
  4. download PHP Dependable libs (deps-5.3-vc9-x86.7z) from: http://windows.php.net/downloads/php-sdk/
  5. download PHP PECL Lua extension source code (lua-0.9.4.tgz) from: http://pecl.php.net/package/lua
  6. download and install Lua 5.1 from http://code.google.com/p/luaforwindows/downloads/list
    install Lua at C:\Lua
  7. create a directory at C:\php-sdk, unzip the php-sdk-binary-tools-20110915.zip into this directory
  8. open Microsoft Windows SDK v7.0 CMD Shell
  9. enter those commands below:
    setenv /x86 /win7 /Release
    cd C:\php-sdk
    bin\phpsdk_setvars.bat
    bin\phpsdk_buildtree.bat php-5.3.11
  10. unzip php-5.3.11.tar.bz2 into C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.11
  11. create a directory at C:\php-sdk\php-5.3.11\vc9\x86\deps, unzip deps-5.3-vc9-x86.7z into this directory
  12. create a directory at C:\php-sdk\php-5.3.11\vc9\x86\pecl, unzip lua-0.9.4.tgz into C:\php-sdk\php-5.3.11\vc9\x86\pecl\lua
  13. back to Microsoft Windows SDK v7.0 CMD Shell, and enter those commands below:
    cd C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.11
    buildconf
    configure --disable-zts --enable-snapshot-build --with-lua=C:\Lua\5.1
    nmake
    nmake snap
  14. go to the directory C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.11\Release, you can get the PHP Winodows Binaries: pecl-5.3.11-nts-Win32-VC9-x86.zip and php-5.3.11-nts-Win32-VC9-x86.zip
  15. enjoy to use the binaries!

troubleshooting:
  1. "ext\calendar\jewish.c(324) : error C2001: newline in constant": open two files: jewish.c and calendar.c, re-save them with UTF-8 encoding.
  2.         cd Release\php-5.4.7
            ..\..\..\..\bin\zip.exe -9 -q -r ..\php-5.4.7-nts-Win32-VC9-x86.zip .
    The system cannot find the path specified.
            cd ..\..
            cd Release\pecl-5.4.7
            ..\..\..\..\bin\zip.exe -9 -q -r ..\pecl-5.4.7-nts-Win32-VC9-x86.zip .
    The system cannot find the path specified.
            cd ..\..
            cd Release\php-test-pack-5.4.7
            ..\..\..\..\bin\zip.exe -9 -q -r ..\php-test-pack-5.4.7.zip .
    The system cannot find the path specified.
            cd ..\..
            cd Release
            ..\..\..\..\bin\zip.exe -9 -q php-debug-pack-5.4.7-nts-Win32-VC9-x86.zip *.pdb
    The system cannot find the path specified.
            cd
    Z:\PHP-SDK\_php54\vc9\x86\php-5.4.7-src\Release
            cd
    Z:\PHP-SDK\_php54\vc9\x86\php-5.4.7-src\Release
            ..\..\..\..\bin\zip.exe -9 -q -r php-devel-pack-5.4.7-nts-Win32-VC9-x86.zip php-5.4.7-devel-VC9-x86
    The system cannot find the path specified.
            cd ..\..


    open Makefile, added a line as below after "PHP_SRC_DIR =C:\php-sdk\php-5.3.11\vc9\x86\php-5.3.11":
    ZIP="$(PHP_SRC_DIR)\..\..\..\..\bin\zip.exe"
memo:
  1. There is no php_lua.dll.
    The lua extension is static only.

reference1: Build your own PHP on Windows
reference2: Windows 中编译 PHP5.4 + xdebug
reference3: /dev/php/php-on-windows
pre-build DLLs: http://downloads.php.net/pierre/