PHP的备选Web服务器:React或PHP嵌入式服务器?

5
我过去一直在我的PHP项目中使用Apache。但现在,我想离开它,并开始使用以下选项之一:

React
或者
PHP内置的Web服务器

哪个更具性能?确切地说,哪个更好?你有什么推荐?

5
它们两个都很糟糕。如果你想要性能,那么nginx、cherokee或lighttpd是你的选择。更重要的问题是,为什么你想离开apache? - Dave
2个回答

3

好的,这里有一个很酷的东西叫做nginx。别停下来

许多人不知道的一件事是,nginx可以快速高效地进行代理请求。

你可能会问,什么是代理请求?那就很好。

代理请求由远程用户发送到nginx。Nginx将接收到该请求,然后将其转发给另一个监听器。此监听器可以是Unix域套接字、Apache、网络中的另一个nginx服务器,甚至是内部PHP内置服务器。

就我个人而言,感觉你对基于套接字的PHP解析器PHP-FPM并不了解。在Apache的旧时代,人们使用一种叫做mod_php的东西,其中Apache会使用共享库手动解析这个请求。这非常糟糕。

如果你因为这个原因想离开,我建议你升级,并通过使用带有Nginx的PHP-FPM来提高性能。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。

就我个人而言,我建议不要使用React,它是一场噩梦,对您的健康有害。 - Mike Mackintosh

2

PHP内置的Web服务器仅用于开发和测试。它是一个简单的服务器,从未旨在处理真实世界的负载。

事件驱动的服务器只会增加大量不必要的复杂性,除非您真的需要它所提供的功能。

两者都不适用于任何严肃或通用服务器。除非您有使用不同堆栈的具体原因,否则应坚持使用Apache。它稳定、安全、可配置并且工作得非常好。


不,你不应该坚持使用Apache。Nginx才是终极解决方案。相信我的话。 - Phung D. An
他在他的Facebook网站上使用React。React是一个非常好的用于重复组件的库。Facebook如何连接React和数据库?PHP是否使用其他东西?它如何与React结合?如果您有任何信息,我很愿意听取。 - user11264432

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接