PHP的替代Web服务器:React或PHP的嵌入式服务器?

时间:2013-12-17 16:06:11

标签: php webserver reactphp

我总是将Apache用于我的 PHP 项目。但现在,我想离开它,开始使用以下选项之一:

React

PHP's built-in web server

哪个表现更好?当然,什么是最好的?你的推荐是什么?

2 个答案:

答案 0 :(得分:3)

好的,所以有一个很酷的东西叫做nginx。 不要停止阅读

许多人没有意识到的一件事是nginx可以非常快速且高效地执行代理请求。

你可能会问,什么是代理请求?!好的。

从远程用户收到代理请求到nginx。 Nginx将接收该请求,然后将请求转发给另一个侦听器。这个监听器可以是一个unix域套接字,Apache,网络上的另一个nginx服务器,甚至是内置的PHP内置服务器。

就个人而言,听起来你对PHP-FPM知之甚少,这是一个基于套接字的PHP解析器。回到Apache的旧时代,人们过去常常使用名为mod_php的东西,Apache会使用共享库手动解析请求。这是可怕的。

如果您因为这个原因想要离开,我建议升级,并通过将PHP-FPM与Nginx一起使用来提升您的性能。 Rackspace有一篇很好的文章:http://www.rackspace.com/knowledge_center/article/installing-nginx-and-php-fpm-setup-for-nginx

段:

示例nginx配置:

server {
    server_name  www.DOMAINNAME;
    rewrite ^(.*) http://DOMAINNAME$1 permanent;
}

server {
        listen 80;
        server_name DOMAINNAME;
                root   /var/www/DOMAINNAME/htdocs;
                index index.php;
        include /etc/nginx/security;

        # Logging --
        access_log  /var/log/nginx/DOMAINNAME.access.log;
        error_log  /var/log/nginx/DOMAINNAME.error.log notice;

        # serve static files directly
        location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt)$ {
            access_log        off;
            expires           max;
        }

        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm/DOMAINNAME.socket;
                fastcgi_index index.php;
                include /etc/nginx/fastcgi_params;
        }
}

location ~ \.php$路由会将所有PHP请求转发到您的php-fpm实例。当然,更新你的nginx配置以匹配你的套接字名称。

如果你想在内置的PHP服务器中使用它,你可以这样做(假设它在localhost:8000上运行):

location ~ \.php$ {
    fastcgi_pass http://localhost:8000;
}

这样,你可以拥有两全其美。 (请记住,内部PHP服务器未经过优化或强化。我建议使用PHP-FPM。

答案 1 :(得分:2)

PHP的内置网络服务器仅用于开发和测试。它是一个从未打算处理实际负载的简单服务器。

事件驱动的服务器只会增加一堆不必要的复杂性,除非你真的添加它的功能。

它们都不适用于任何严肃或通用的服务器。除非你有一个具体的理由使用不同的堆栈,否则你应该坚持使用Apache。它稳定,安全,可配置,并且能够很好地完成工作。