V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Yourdaye
V2EX  ›  问与答

nginx+apache 做动静分离,遭遇 PHP 版本不同,何解?

  •  
  •   Yourdaye · 2017-04-07 15:37:29 +08:00 · 1613 次点击
    这是一个创建于 2567 天前的主题,其中的信息可能已经有所发展或是发生改变。

    看 V 友提到做动静分离可以提供效率,然后去试了一下,看了很多教程,然而一直出错,偶然发现原来是 PHP 版本不同导致的! WTF!

    在 nginx 下, php 版本是 5.4 ,在 Apache 下, php 版本是 5.2 ,而且 PHP 的配置 TM 还不一样

    那么问题来了,怎样它俩绑定到同一个 PHP 版本下?

    13 条回复    2017-04-09 17:36:34 +08:00
    fengyqf
        1
    fengyqf  
       2017-04-07 18:26:13 +08:00 via Android
    既然动静分离,为什么 Apache 跟 Nginx 都处理 PHP 请求?好奇你的动静是按什么条件分离的。
    imyip
        2
    imyip  
       2017-04-07 18:30:46 +08:00 via iPhone
    动静分离难道不是,静态请求交给 nginx 处理,动态请求交给 apache 么,所以应该是 apache 处理 php 吧
    ivmm
        3
    ivmm  
       2017-04-07 18:56:23 +08:00
    Nginx 80/443 反代 Apache Httpd 8088 , Httpd 用 mod_PHP 处理 PHP 或者 fastcgi 加载 PHP-FPM
    Love4Taylor
        4
    Love4Taylor  
       2017-04-07 20:09:29 +08:00
    难道不是非 PHP 文件直接由 Nginx 处理 PHP 文件反代给 Apache ?
    param
        5
    param  
       2017-04-07 20:15:13 +08:00 via Android
    不是很懂。。 Apache 和 Nginx 分别处理静态文件和 PHP 的好处是什么。。
    Yourdaye
        6
    Yourdaye  
    OP
       2017-04-08 09:33:17 +08:00 via iPhone
    @fengyqf 因为出错了,所以分别做了检测,并非同时处理 PHP
    Yourdaye
        7
    Yourdaye  
    OP
       2017-04-09 15:08:41 +08:00
    @ivmm 兄弟能不能说详细点?

    我的 nginx 里面是这样配置的,用的 8080 端口

    location ~ \.(php)?$ {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:8080;
    }

    怎样才能做到你说的那样呢?多谢了!
    Yourdaye
        8
    Yourdaye  
    OP
       2017-04-09 15:12:40 +08:00
    @ivmm 目前的 nginx 是这样配置的:

    location ~ .*\.(php|php5)?$
    {
    #fastcgi_pass unix:/tmp/php-cgi.sock;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
    Yourdaye
        9
    Yourdaye  
    OP
       2017-04-09 15:25:43 +08:00
    @ivmm 是不是直接把 fastcgi_pass 127.0.0.1:9000; 改为: fastcgi_pass http://127.0.0.1:8080;
    ivmm
        10
    ivmm  
       2017-04-09 15:49:12 +08:00
    @Yourdaye 你反代了 apache 就不需要再反代一个 php-fpm 了
    Yourdaye
        11
    Yourdaye  
    OP
       2017-04-09 16:30:36 +08:00
    @ivmm 反代的 PHP 版本是 5.2 ,跟现有版本 5.4 不同,怎么解决呢?
    ivmm
        12
    ivmm  
       2017-04-09 17:11:03 +08:00
    @Yourdaye 因为 mod_php 驱动的 PHP 是 5.2 , PHP5.4 是 PHP-FPM

    你最好找一篇详细介绍 LANMP 的教程,而不是这样没有逻辑的提问
    Yourdaye
        13
    Yourdaye  
    OP
       2017-04-09 17:36:34 +08:00
    @ivmm 好吧,找了很多了,能解释清楚的非常少
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4546 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 04:07 · PVG 12:07 · LAX 21:07 · JFK 00:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.