我知道Laravel 4的要求是PHP> = 5.3.7但我的客户端必须最近的应用服务器只有PHP 5.3.3。是的,三岁的版本......
我需要更多的论据来解释这种情况并找到他的解决方案(没有移动,升级或云托管)。
问题如下:
[编辑]我对客户端配置的了解是:使用Apache 2.2和PHP 5.3.3的VMWare虚拟机上的Red Hat Enterprise Linux 6.3。
答案 0 :(得分:12)
Laravel 4需要PHP 5.3.7
,因为在散列密码时使用了bcrypt算法,在该版本中收到了一个巨大的错误修复。
看一下这篇文章,将Laravel 4的PHP要求降低到5.3.2
:http://laravel.io/topic/39/laravel-4-easily-extended
编辑:这是链接文章的存档版本,因为原始文件似乎已关闭: https://web.archive.org/web/20130805153640/http://laravel.io/topic/39/laravel-4-easily-extended
注意:某些发行版上的某些PHP版本的5.3.3
确实将bcrypt算法修复后向移植到它们中,例如RedHat。您可以阅读如何测试您使用的发行版是否为其中之一here;如果是,你的发行版支持修复,反过来支持Laravel 4开箱即用。
答案 1 :(得分:2)
我有一个使用远程webhost的经验,它提供了几个版本的php,并且不知何故,被设置为旧的默认版本的php。
例如,我无法弄清楚为什么我的迁移不会运行 - 当几乎相同的本地设置工作时,artisan命令没有明显的原因失败。来发现我的根文件夹设置为5.2。与webhost人员进行快速聊天,他们向我展示了如何修复。 Presto-迁移工作。
我的大部分应用程序都有效,但工匠的功能对我来说是一个无法做到的事情。希望有所帮助。
此外,built-in php development web server非常方便 - 从5.4开始。
编辑:这是给你的一点弹药:我遇到的另一个特定问题:
root@Grisbuntu:/home/ryan/MyApp6# php /usr/bin/composer.phar update
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.
Problem 1
- zizaco/entrust dev-master requires php >=5.4.0 -> no matching package found.
...
root@Grisbuntu:/home/ryan/MyApp6# php -v
PHP 5.3.10-1ubuntu3.6 with Suhosin-Patch (cli) (built: Mar 11 2013 14:31:48)
所以你有它:Entrust是一个没有5.4你不能使用的包的一个具体例子....
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get install php5
php -v
...PHP 5.4.15-1~precise+1 (cli) (built: May 13 2013 16:00:00)
composer update
...
我希望能帮助别人!
更新:2013年7月,每php.net:请注意:这将是PHP 5.3系列的最后一个常规版本。鼓励所有PHP用户升级到PHP 5.4或PHP 5.5。 PHP 5.3系列将仅获得明年的安全修复程序。