banner

[Rule] Rules  [Home] Main Forum  [Portal] Portal  
[Members] Member Listing  [Statistics] Statistics  [Search] Search  [Reading Room] Reading Room 
[Register] Register  
[Login] Loginhttp  | https  ]
 
Forum Index Thảo luận hệ điều hành *nix [Thảo luận] PHP và Apache worker-MPM  XML
  [Question]   [Thảo luận] PHP và Apache worker-MPM 28/04/2008 09:55:07 (+0700) | #1 | 127899
[Avatar]
nhuhoang
Elite Member

[Minus]    0    [Plus]
Joined: 27/06/2007 00:49:10
Messages: 111
Location: /dev/null
Offline
[Profile] [PM] [WWW]
Trong PHP manual có một đoạn

Why shouldn't I use Apache2 with a threaded MPM in a production environment?
PHP is glue. It is the glue used to build cool web applications by sticking dozens of 3rd-party libraries together and making it all appear as one coherent entity through an intuitive and easy to learn language interface. The flexibility and power of PHP relies on the stability and robustness of the underlying platform. It needs a working OS, a working web server and working 3rd-party libraries to glue together. When any of these stop working PHP needs ways to identify the problems and fix them quickly. When you make the underlying framework more complex by not having completely separate execution threads, completely separate memory segments and a strong sandbox for each request to play in, feet of clay are introduced into PHP's system.

If you feel you have to use a threaded MPM, look at a FastCGI configuration where PHP is running in its own memory space.

And finally, this warning against using a threaded MPM is not as strong for Windows systems because most libraries on that platform tend to be threadsafe.
 

Nghĩa là php yêu cầu một không gian bộ nhớ biệt lập khi phục vụ request, do đó nó chạy ổn định trên webserver dạng process hơn là trên dạng thread

Như vậy thì có nên sử dụng php với worker không? Theo mình biết thì worker là một dạng lai giữa process và thead nên nó có một số ưu điểm về mặt hiệu suất so với prefork và tất nhiên là mình muốn sử dụng worker. Nhưng trên thực tế thì đa số các gói binary đóng gói sẵn cho linux đều sử dụng prefork.

Mong các bạn có ý kiến về việc này
[Up] [Print Copy]
  [Question]   [Thảo luận] PHP và Apache worker-MPM 25/09/2008 14:04:36 (+0700) | #2 | 152936
[Avatar]
quanta
Moderator

Joined: 28/07/2006 14:44:21
Messages: 7265
Location: $ locate `whoami`
Offline
[Profile] [PM]

nhuhoang wrote:

...
Như vậy thì có nên sử dụng php với worker không? Theo mình biết thì worker là một dạng lai giữa process và thead nên nó có một số ưu điểm về mặt hiệu suất so với prefork và tất nhiên là mình muốn sử dụng worker. Nhưng trên thực tế thì đa số các gói binary đóng gói sẵn cho linux đều sử dụng prefork.

Mong các bạn có ý kiến về việc này 

Bạn thử 2 trường hợp:
1. Build PHP như một module của Apache
2. Sử dụng FastCGI để chạy PHP trên http://httpd.apache.org/docs/2.2/mod/event.html (dựa trên worker MPM)

Sau đó dùng http://httpd.apache.org/docs/2.0/programs/ab.html để đánh giá xem sao.

File cấu hình fastcgi.conf để bạn tham khảo:
Code:
# cat fastcgi.conf 
LoadModule fastcgi_module modules/mod_fastcgi.so
AddHandler php-fastcgi .php

<Location /cgi-bin/php-cgi>
       SetHandler fastcgi-script
</Location>

Action php-fastcgi /cgi-bin/php-cgi
DirectoryIndex index.html index.php
AddType application/x-httpd-php .php

<VirtualHost *:80>
	ServerName host.quanta.com
	ServerAdmin quanta@
	DocumentRoot /usr/local/apache2/htdocs	

	<Directory /usr/local/apache2/htdocs>
	        Options ExecCGI
	</Directory>
</VirtualHost>
Let's build on a great foundation!
[Up] [Print Copy]
[digg] [delicious] [google] [yahoo] [technorati] [reddit] [stumbleupon]
Go to: 
 Users currently in here 
1 Anonymous

Powered by JForum - Extended by HVAOnline
 hvaonline.net  |  hvaforum.net  |  hvazone.net  |  hvanews.net  |  vnhacker.org
1999 - 2013 © v2012|0504|218|