如何为命令行强制使用PHP版本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为命令行强制使用PHP版本?相关的知识,希望对你有一定的参考价值。

我与1and1.com一起托管,我已经设置了我的文件,使用.htaccess解析php5。

但这只适用于apache,而不是命令行,默认为服务器默认php4。

所以目前我无法设置cron作业来运行我的代码作为php5。有任何想法吗?

答案

如果两者都已安装,您需要做的就是使用相关的PHP二进制文件运行脚本。

例如:

 // Runs using the PHP binary located at /usr/bin/php
 * * * * * root /usr/bin/php -n "/path/to/script.php"

要么

 // Runs using the PHP binary located at /var/php5
 * * * * * root /var/php5 -n "/path/to/script.php"

您需要知道的是PHP CLI二进制文件的完整文件系统路径,并调用相关的文件系统路径来运行您的代码。

另一答案

根据qazxsw poi,在根项目中创建.profile并添加以下行:

https://community.1and1.com/using-php-composer-at-1and1/

这个对我有用。注销并以SSH身份重新登录并执行:

alias php='/usr/bin/php5.5-cli'

结果:

PHP 5.5.32(cli)(建于2016年2月15日16:13:44)

另一答案

如果你可以直接在shell中执行PHP脚本,如:

php -v

你可以指定将在它的第一行执行脚本的二进制文件:

$ script.php

那条线叫做#!/usr/bin/php <?php 。您的系统上的行可能不同,您需要知道要用于该脚本的PHP CLI二进制文件的完整文件系统路径。

如果在shell中执行该文件,则将使用指定的二进制文件。对于cron也一样。

如果您通过Web服务器执行该文件,PHP将以静默方式删除该行。

另见:shebang

另一答案

必须有两个PHP目录,其中一个应该是默认目录。尝试从服务器的根目录找出php5的路径,并在你的cron作业中使用完整路径。

另一答案

这是在1and1上从命令行强制PHP的另一种方法。

在你的服务器上使用ssh登录并在那里创建一个名为Features: Using PHP from the command line的新文件,你将编写以下行.profile使用ssh重新登录并使用alias php='/usr/local/bin/php5'检查php版本你应该看到版本现在是5。

另一答案

我终于搞定了这个。问题是几个问题。

首先,使用的PHP是在/ etc / bin而不是MAMP版本。我能够改变它并使用MAMP版本。

其次,要通过CLI使用php,你必须确保使用PHP的完整路径而不仅仅是php本身。即在exec()调用中使用/MAMP/bin/php/php5.3.x/php。现在这对我有用。

你可以在这里查看我的GIST ... https://gist.github.com/1861487

以上是关于如何为命令行强制使用PHP版本?的主要内容,如果未能解决你的问题,请参考以下文章

如何为命令行程序制作 gui?

有多个 xampp 版本时如何为作曲家设置 php 版本?

如何为 youtube 添加 wmode="opaque" 或 wmode="transparent" 到这个 php 片段? [复制]

php命令行操作

在Android 6中打开wifi时如何为任何应用程序强制使用移动数据

你如何为 python 模块的 argparse 部分编写测试?