我与1and1.com一起托管,我已经设置了我的文件,使用.htaccess
解析了php5。
但这只适用于apache,而不适用于命令行,默认为服务器默认php4。
所以目前我无法设置 cron jobs 来运行我的代码为php5。有什么想法吗?
答案 0 :(得分:18)
根据https://community.1and1.com/using-php-composer-at-1and1/,在根项目中创建.profile并添加以下行:
alias php='/usr/bin/php5.5-cli'
它对我有用。 注销并以SSH身份重新登录并执行:
php -v
结果:
PHP 5.5.32(cli)(建于2016年2月15日16:13:44)
答案 1 :(得分:11)
如果两者都已安装,您需要做的就是使用相关的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二进制文件的完整文件系统路径,并调用相关的文件系统路径来运行您的代码。
答案 2 :(得分:4)
如果您可以直接在shell中执行PHP脚本,如:
$ script.php
您可以指定将在其第一行执行脚本的二进制文件:
#!/usr/bin/php
<?php
该行称为shebang。您的系统上的行可能不同,您需要知道要用于该脚本的PHP CLI二进制文件的完整文件系统路径。
如果在shell中执行该文件,将使用指定的二进制文件。对于cron也一样。
如果您通过网络服务器执行该文件,PHP将以静默方式删除该行。
答案 3 :(得分:1)
必须有两个PHP目录,其中一个应该是默认目录。尝试从服务器的根目录中找出php5的路径,并在你的cron作业中使用完整路径。
答案 4 :(得分:1)
这是另一种在1和1上从命令行强制PHP的方法。
使用服务器上的ssh登录并创建一个名为.profile
的新文件
在那里你会写下面这一行
alias php='/usr/local/bin/php5'
使用ssh重新登录并使用php -v
检查php版本
版本现在是5。
答案 5 :(得分:0)
我终于有了这个工作。这个问题有几个问题。
首先,使用的PHP是在/ etc / bin而不是MAMP版本。我能够改变它并改为使用MAMP版本。
其次,要通过CLI使用php,你必须确保使用PHP的完整路径而不仅仅是php本身。即在exec()调用中使用/MAMP/bin/php/php5.3.x/php。现在这对我有用。
你可以在这里查看我的GIST ... https://gist.github.com/1861487
答案 6 :(得分:0)
至少在Linux上,您还可以在脚本的第一行中指定所需的PHP版本,如下所示:
#!/usr/bin/php5.6
<?php
echo 'This is PHP version ' . phpversion() . "\n";
?>
使脚本可执行,并通过以下方式指定cron作业:
# Just runs the script, which itself cares for the right php version
* * * * * root "/path/to/script.php"