
рд╣рд╛рд▓ рд╣реА рдореЗрдВ,
рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдФрд░
рдХреЗрдкреАрдПрдЪрдкреА рдХреЗ рдЖрд╕рдкрд╛рд╕ "рд╢реЛрд░" рдХрд╛ рдПрдХ рдмрд╣реБрдд рдХреБрдЫ
рд╣реБрдЖ рд╣реИ : рдкреНрд░рддреНрдпреЗрдХ рд╕рд╛рдорд╛рдЬрд┐рдХ рд╡рд┐рд╢рд╛рд▓ рдЗрд╕рдХреЗ рджрд┐рдорд╛рдЧ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИред рд╢реАрд░реНрд╖рдХ рдореЗрдВ рдЗрдВрдЧрд┐рдд рдЧреБрдЪреНрдЫрд╛ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд░реБрдЪрд┐ред KPHP рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдХрд╣рдирд╛ рдЬрд▓реНрджрдмрд╛рдЬреА рд╣реЛрдЧреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ OOP рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИред рд▓реЗрдХрд┐рди рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдХрд┐рд╕реА рдиреЗ рдЗрд╕ рдЬрд╛рдирд╡рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛, рдХреБрдЫ рдиреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдХреБрдЫ рд╕рдлрд▓ рд╣реБрдПред
рд╡рд┐рд╖рдп рдбреЗрдмрд┐рдпрди 7. рдХреЗ рд▓рд┐рдП рд╕реНрд░реЛрдд рдХреЛрдб рд╕реЗ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рд╢рд╛рдпрдж рдпрд╣ рд╡рд┐рд╖рдп рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рд╕рдордп рдФрд░ рддрдВрддреНрд░рд┐рдХрд╛рдУрдВ рдХреЛ рдмрдЪрд╛рдПрдЧрд╛ рдФрд░ рдЙрд╕ рд░реЗрдХ рдкрд░ рдХрджрдо рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдЬреЛ рд╣рдо рдЧрдП рдереЗред
- рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ рдХреА рд╢рд░реНрддреЗрдВ
- рд╕рдВрдХрд▓рди
- рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк
- Nginx рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ
- рдУрд░реЛрдВ рдХреЛ рд╕реБрдЦрд╛рдпрд╛, рд░рд╡рд╛рдирд╛ рдХрд┐рдпрд╛
- рдкрд░реАрдХреНрд╖рдг
- рдирд┐рд╖реНрдХрд░реНрд╖
- рдирд┐рд╖реНрдХрд░реНрд╖
1. рдЯреЗрд╕реНрдЯ рдбреНрд░рд╛рдЗрд╡ рдХреА рд╕реНрдерд┐рддрд┐
$ 5 / рдорд╛рд╣ рдХреЗ рд▓рд┐рдП
DigitalOcian рдкрд░ рдХрд╛рд░:
- рдореЗрдореЛрд░реА: 512 рдПрдордмреА
- рдкреНрд░реЛрд╕реЗрд╕рд░: 1x 2000 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ
- рдУрдПрд╕: рдбреЗрдмрд┐рдпрди 7.0 (рд╡реНрд╣реАрдЬреА) x86_64
- рд╡реЗрдм рд╕рд░реНрд╡рд░: Nginx 1.2.1
- SWAP: 500 рдПрдордмреА
2. рд╕рдВрдХрд▓рди
HipHop VM рдХреЛ рд╕реНрд░реЛрдд рд╕реЗ, рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдХреЛрдИ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреИрдХреЗрдЬ рдирд╣реАрдВ рдорд┐рд▓рд╛ред
рдЧреАрдердм рдкрд░ рдкреНрд░рд╕реНрддреБрдд рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдкреИрдХреЗрдЬ
(рд╡реНрд╣реАрдЬреА) рдХреЗ рд▓рд┐рдП рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдкреИрдХреЗрдЬ рдХрд╛ рд▓реЗрдЦрдХ рдЕрдм рдкреИрдХреЗрдЬ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рднрдВрдбрд╛рд░ рдЕрдиреБрдкрд▓рдмреНрдз рд╣реИ
(рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдбреЗрдмрд┐рдпрди 7 рдХреЗ рд▓рд┐рдП рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдкреИрдХреЗрдЬ рдХрд╣рд╛рдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВ - рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВ)редрдЧреАрдерд╣рдм рд╕реЗ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдХрд╛ рд╕реНрд░реЛрдд рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ, рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:mkdir /opt/dev cd /opt/dev git clone git://github.com/facebook/hiphop-php.git export CMAKE_PREFIX_PATH=`pwd`/.. export HPHP_HOME=`pwd` sudo apt-get update sudo apt-get install git-core cmake g++ libboost1.48-dev libmysqlclient-dev \ libxml2-dev libmcrypt-dev libicu-dev openssl build-essential binutils-dev \ libcap-dev libgd2-xpm-dev zlib1g-dev libtbb-dev libonig-dev libpcre3-dev \ autoconf libtool libcurl4-openssl-dev libboost-regex1.48-dev libboost-system1.48-dev \ libboost-program-options1.48-dev libboost-filesystem1.48-dev wget memcached \ libreadline-dev libncurses-dev libmemcached-dev libbz2-dev \ libc-client2007e-dev libgoogle-perftools-dev \ libcloog-ppl0 libelf-dev libdwarf-dev libunwind7-dev subversion
Php5 -mcrypt рдФрд░
php5- рдХрд▓реНрдкрдирд╛ рдкреИрдХреЗрдЬ рдЬреЛ рдореИрдиреБрдЕрд▓ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдореЗрдВ рдЙрдирдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
рд╣рдо рддреГрддреАрдп-рдкрдХреНрд╖ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рд╕рдВрдХрд▓рди рдХреЗ рджреМрд░рд╛рди рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рд╕реЗ рдХрд╛рдордЪрд▓рд╛рдК рдкреИрдЪ рдкреИрдЪ: рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐
libunwind рд╕рдВрд╕реНрдХрд░рдг 1.1 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рдВрд╕реНрдХрд░рдг 1.0 рдХреЗ рд╕рд╛рдеред рдЬрд┐рд╕реЗ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ,
рд╕реЗрдореАрдХ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреНрд░реИрд╢ рд╣реЛрддрд╛ рд╣реИред
Cmake рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдЪрд▓рд╛рдПрдБ: CMAKE_PREFIX_PATH рдкреИрд░рд╛рдореАрдЯрд░ рдореЗрдВ,
рд╣рдо рдЙрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╣рд┐рдкрд╣реЙрдк VM рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рд╕рд╛рде
рд╣рд┐рдкрд╣реЙрдк- php рдлрд╝реЛрд▓реНрдбрд░ рд╕реНрдерд┐рдд рд╣реИ, рдЕрдиреНрдпрдерд╛
cmake рдХреНрд░реИрд╢ (рдпрд╣ рдореИрдиреБрдЕрд▓ рдореЗрдВ рдЪреБрдк рд╣реИ)ред
рдЕрдкрдиреА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╕рдВрдХрд▓рди рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ:
make
рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдХреЗ рдмрд╛рдж, рд╕рдВрдХрд▓рди рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рдХреБрдЫ рджреБрд░реНрдШрдЯрдирд╛рдЧреНрд░рд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ:
[рекрем%] рдмрд┐рд▓реНрдбрд┐рдВрдЧ CXX рдСрдмреНрдЬреЗрдХреНрдЯ hphp / CMakeFiles / hphp_runtime_static.dir / runtime / vm / bytecode.cpp.o c ++: рдЖрдВрддрд░рд┐рдХ рдХрдВрдкрд╛рдЗрд▓рд░ рддреНрд░реБрдЯрд┐: Killed (рдкреНрд░реЛрдЧреНрд░рд╛рдо cc1plus) Please submit a full bug report, with preprocessed source if appropriate. See <file:///usr/share/doc/gcc-4.7/README.Bugs> for instructions. make[2]: *** [hphp/CMakeFiles/hphp_runtime_static.dir/runtime/vm/bytecode.cpp.o] Error 4 make[1]: *** [hphp/CMakeFiles/hphp_runtime_static.dir/all] Error 2 make: *** [all] Error 2
рдлрд╝рд╛рдЗрд▓
/opt/dev/hiphop-php/CMakeCache.txt рдХреЛ рд╣рдЯрд╛рдПрдВ,
рдкреЗрдЬ рдлрд╝рд╛рдЗрд▓ рдХреЛ 1 рдЬреАрдмреА рддрдХ
рдмрдврд╝рд╛рдПрдВ рдФрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдлрд┐рд░ рд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ:
export CMAKE_PREFIX_PATH=`pwd`/.. export HPHP_HOME=`pwd`
рд╣рдо рдлрд┐рд░ рд╕реЗ
рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдШрдВрдЯрд╛ рдФрд░ рдЖрдзрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░рддреЗ рд╣реИрдВ ...
3. рд╡рд┐рдиреНрдпрд╛рд╕ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк
рдирд┐рдореНрди рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдПрдХ рдиреНрдпреВрдирддрдо рд╣рд┐рдкрд╣реЙрдк рд╡реАрдкреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВ:
/opt/dev/hiphop-php/config.hdf PidFile = /run/hiphop.pid Server {
рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдХреЛ рдбреЗрдореЙрди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ:
/opt/dev/hiphop-php/hphp/hhvm/hhvm --mode daemon --config /opt/dev/hiphop-php/hphp/config.hdf
рд╣рдо рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддрд╛рдХрд┐ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рджреМрд░рд╛рди рд╣рдо рдЗрд╕рдХреА рд╕рднреА "рдорд╛рддрд╛рдУрдВ" рдХреЛ рджреЗрдЦ рд╕рдХреЗрдВ:
/opt/dev/hiphop-php/hphp/hhvm/hhvm --mode server --config /opt/dev/hiphop-php/hphp/config.hdf
4. Nginx рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛
рдиреЗрдЧрдиреЗрдХреНрд╕ рд▓реЛрдХреЗрд▓ рдореЗрдВ, рдЬреЛ рдбрд╛рдпрдирд╛рдорд┐рдХреНрд╕ рдХреЗ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИ:
location ~ ^/(app|app_dev|config)\.php(/|$) {
5. рдУрд░реЛрдВ рдХреЛ рд╕реБрдЦрд╛рдпрд╛, рд░рд╡рд╛рдирд╛ рдХрд┐рдпрд╛
рд╣рдо Symfony2 рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреГрд╖реНрда
www.mysymfony2site.com/config.php рдЦреЛрд▓рддреЗ рд╣реИрдВ рдФрд░ рдХрдИ рд╕рдорд╕реНрдпрд╛рдПрдВ рдФрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ:

рдХреЛрдИ рднреА рд╡рд┐рд╕реНрддрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЦреЛрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛ (рд╢рд╛рдпрдж рдЖрдк рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдмрддрд╛рдПрдВрдЧреЗ)ред
рдЖрдЧреЗ рдмрдврд╝реЛ рдФрд░ рдореБрдЦреНрдп рд╕рд╛рдЗрдЯ
www.mysymfony2site.com рдЦреЛрд▓реЗрдВ рдФрд░ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдкреА рд╕рд░реНрд╡рд░ рдХреЗ рдЦреБрд▓реЗ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рджреЗрдЦреЗрдВ:
request.CRITICAL ... request.CRITICAL: Doctrine\ODM\MongoDB\Mapping\MappingException: No identifier/primary key specified for Document 'Project\MyBundle\Document\Visitor'. Every Document must have an identifier/primary key. (uncaught exception) at /var/www/www.mysymfony2site.com/vendor/doctrine/mongodb-odm/lib/Doctrine/ODM/MongoDB/Mapping/MappingException.php line 94 [] [] request.CRITICAL: Exception thrown when handling an exception (Doctrine\ODM\MongoDB\Mapping\MappingException: No identifier/primary key specified for Document 'Project\MyBundle\Document\Visitor'. Every Document must have an identifier/primary key.) [] []
рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдкреА рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛:
- рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ Symfony2 рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддрд╛ рд╣реИред рдирд┐рдпрдорд┐рдд PHP 5 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдХрдВрд╕реЛрд▓ рд╕реЗ рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрд╢рд╛ рдХреА рдЧрдИ рдереА рдХрд┐ рдХреИрд╢ рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рддреЗ рд╕рдордп, Symfony2 рд╕рднреА рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдХреИрд╢ рдХрд░ рджреЗрддрд╛ рд╣реИ рдФрд░ рдЬрдм app.php рдПрдХреНрд╕реЗрд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ PHP 5 рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХреИрд╢ рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред
- рдФрд░ рдЕрдЪрд╛рдирдХред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдЖрд╢рд╛рдПрдВ рдирд╣реАрдВ рд╣реБрдИред рд╢рд╛рдпрдж рднрд╡рд┐рд╖реНрдп рдХреЗ рд░рд┐рд▓реАрдЬ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рдЬрд╛рдПрдЧреАред
6. рдЯреЗрд╕реНрдЯ
рдЪреВрдВрдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдиреЗ рдЙрдбрд╝рд╛рди рднрд░реА, рд▓реЗрдХрд┐рди рдмреЛрд░реНрдб рдкрд░ рд╕рд┐рдореНрдлрдиреА 2 рдХреЗ рдмрд┐рдирд╛, рдереЛрдбрд╝рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд▓реЛрдб рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╣рд┐рдкрд╣реЙрдк-рдкреАрдПрдЪрдкреА рдХреЛ рд╕рдорд░реНрдкрд┐рдд
рддреАрди рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдХреЗ рд╡рд┐рд╖рдп рд╕реЗ рд▓рд┐рдпрд╛
рдЧрдпрд╛ рд╣реИ ред рдкрд░реАрдХреНрд╖рдг рдХреА рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдФрд░ рд╡рд╕реНрддреБрдПрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рднрд┐рдиреНрди рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рдХреЗ рд▓рд┐рдП ...
test.php <?php for($i = 0; $i < 1000; $i++) { echo var_dump($_SERVER); }
рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрдХреНрд╕рд░ рд╕рдВрджрд░реНрднрд┐рдд рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рднрд╛рд╡ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрдорд╛рдирд┐рдд рд╕рдиреНрдирд┐рдХрдЯрди рдХреЗ рд▓рд┐рдП рдХреЙрд▓ Nginx рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛:
ab -n 1000 -c 5 http://www.mysymfony2site.com/test.php
рд╣рд┐рдкрд╣реЙрдк рд╡реА.рдПрдо. Concurrency Level: 5 Time taken for tests: 24.912 seconds Complete requests: 1000 Failed requests: 97 (Connect: 0, Receive: 0, Length: 97, Exceptions: 0) Write errors: 0 Total transferred: 1588072000 bytes HTML transferred: 1587891000 bytes Requests per second: 40.14 [
PHP5-FPM + APC Concurrency Level: 5 Time taken for tests: 387.404 seconds Complete requests: 1000 Failed requests: 85 (Connect: 0, Receive: 0, Length: 85, Exceptions: 0) Write errors: 0 Total transferred: 4263063000 bytes HTML transferred: 4262907000 bytes Requests per second: 2.58 [
7. рдирд┐рд╖реНрдХрд░реНрд╖
рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВред
8. рдирд┐рд╖реНрдХрд░реНрд╖
рдЖрдк рд╕рднреА рдХреЛ рдзрдиреНрдпрд╡рд╛рдж, рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣рд┐рдкрд╣реЙрдк рд╡реАрдПрдо рдХреЛ рдЦрд░рд╛рдм рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде рд╢реБрднрдХрд╛рдордирд╛рдПрдВред