我试图将我的项目移动到使用Apache的linux redhat服务器,但我面临的问题是该服务器安装了2个不同的PHP版本。
Symfony(2.5.12)似乎默认在/usr/bin/php
查找php可执行文件,但安装了5.2版本,这是其他项目所需。
在/opt/rh/php55/root/usr/bin/php
是我想要用于symfony的已安装5.5版本的PHP。
那么如何配置Symfony以使用自定义路径上安装的php版本?
答案 0 :(得分:2)
我有一个同样的问题,我正在使用ubuntu 18.04和Symfony 5.1,我在项目根路径中添加了一个.php_version文件,如`要控制目录中使用的版本中所述,请创建一个.php-version文件,包含版本号(例如7.2或7.2.15)。 我的.php版本文件内容:
7.4
答案 1 :(得分:1)
我知道这很旧,但是使用比我已安装的PHP版本(在我的情况下为7.1,在OSX Mojave中默认为7.1)存在相同的Symfony问题。我的$PATH
变量指向较新的7.2版本,php -v
显示为7.2,而Symfony仍使用7.1。
当我跑步时,这似乎已解决:
symfony local:php:list
它列出了我系统上的所有PHP版本,并将7.2标记为默认版本。运行并执行symfony server:start
之后,它就在7.2上。
php:list
命令还提供了有关为项目设置特定PHP版本的有用说明:
要控制目录中使用的版本,请创建一个包含版本号(例如7.2或7.2.15)的
.php-version
文件。 如果您使用的是SymfonyCloud,则还可以在.symfony.cloud.yaml
文件中指定版本。
答案 2 :(得分:1)
我在执行 symfony serve
时遇到了同样的问题。
首先,我运行 symfony local:php:list
以了解我的项目使用的是哪个版本的 php。
然后我运行echo 7.4.9 > .php-version
(7.4.9是我下载的最新php版本)来切换我项目的php版本。
它对我来说很好。
答案 3 :(得分:0)
安装 PHP 7.4.16 后,尝试启动我的服务器时:
symfony server:start
我收到以下错误:
exec: "/usr/local/bin/php": stat /usr/local/bin/php: no such file or directory
运行后
symfony local:php:list
发现:
┌─────────┬────────────┬────────────┬─────────┬─────────┬─────────┬─────────┐
│ Version │ Directory │ PHP CLI │ PHP FPM │ PHP CGI │ Server │ System? │
├─────────┼────────────┼────────────┼─────────┼─────────┼─────────┼─────────┤
│ 7.4.14 │ /usr/local │ bin/php │ │ │ PHP CLI │ * │
│ 7.4.16 │ /usr │ bin/php7.4 │ │ │ PHP CLI │ │
└─────────┴────────────┴────────────┴─────────┴─────────┴─────────┴─────────┘
事实证明,我有一些以前安装的 PHP 7.4.14 遗留的文件,而 Symfony 试图仍然使用该版本,该版本已被删除。
删除 php-config, phpize and phpdbg
处的 /usr/local/bin
文件后,我可以毫无问题地运行我的服务器。