【问题标题】:Laravel: how to specify the php version?Laravel:如何指定 php 版本?
【发布时间】:2020-10-26 13:39:22
【问题描述】:

我有一个在 redhat7 机器上运行 apache2 的 Laravel (5.7.19) 应用程序。机器上安装了php5.6,php7.1和php7.4,不知何故apache使用php5.6作为默认值,该应用程序不适用于php5.6。有没有办法为 Laravel 应用程序指定 php 版本,例如在 .env 或应用程序的其他配置文件中设置 php 版本?我用谷歌搜索,找不到答案。现在我可以让应用程序工作的唯一方法是禁用 php5.6,然后 apache 将使用 php7.1 作为默认值。

【问题讨论】:

  • 你的问题有点混乱。是否要更改 Apache 使用的 PHP 版本.... 或 ... 是否要让 App 拒绝在 PHP5.6 上运行?
  • 我认为你只在一个项目中更改 php 版本是否正确?
  • 尝试在 laravel 应用程序的虚拟主机确认中包含 php7.1,例如 Include "conf-available/php7.1-fpm.conf"
  • @RiggsFolly 谢谢。我只是希望为 Laravel 应用程序指定一个 php 版本。假设我有两个 Laravel 应用,一个使用 php5.6,一个使用 php7.1。如何为这两个应用程序中的每一个设置 php 版本?在这种情况下,我假设使用 php5.6 的应用程序默认可以工作,但是如何使使用 php7.1 的应用程序也可以工作?
  • @Babak,是的,这就是我需要做的。

标签: apache redhat


【解决方案1】:

“有没有办法为 Laravel 应用程序指定 php 版本,例如在 .env 或应用程序的其他配置文件中设置 php 版本?”

  • 没有。 PHP 解释器不知道自己。应用程序本身会读取应用程序的 dotenv 文件,这意味着已经有一个解释器在做这项工作,所以如果它被 php5 拾取,解释器就无法将它传递给 php7 解释器。

  • 如果您使用的是 Apache(并假设运行单个 Apache),您可以使用 fastcgi 模块在同一 Apache 服务器下设置多个 PHP 版本,如下所述:https://medium.com/@sivaschenko/apache-running-multiple-php-versions-simultaneously-570fc1541580 然后根据应用程序,您可以设置虚拟使用不同 php 版本的主机

  • 更好的方法是使用 nginx + fpm,你可以有不同的 php 版本,不同的 fpm 实例在不同的端口上运行,你可以设置服务器块来适当地路由 php 请求。

【讨论】:

  • 谢谢。我会研究这些替代方案。
猜你喜欢
  • 2016-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 2012-09-21
  • 1970-01-01
  • 1970-01-01
  • 2015-01-24
相关资源
最近更新 更多