С какими проблемами я могу встретиться с Laravel 4 на PHP 5.3.3?

Я знаю, что требования Laravel 4: PHP >= 5.3.7, но мой клиент должен иметь последний сервер приложений только с PHP 5.3.3. Да, трехлетняя версия...

Мне нужно больше аргументов, чтобы объяснить ситуацию и найти с ним решение (без перемещения, обновления или облачного хостинга).

Возникают следующие вопросы:

  • Можно ли запустить L4 с PHP 5.3.3?
  • Если нет, то почему?
  • Если да, то как и с какими ограничениями?

[EDIT] Что мне известно о моей конфигурации клиента: Red Hat Enterprise Linux 6.3 на виртуальной машине VMWare с Apache 2.2 и PHP 5.3.3.

Ответ 1

Laravel 4 требует PHP 5.3.7 из-за использования алгоритма bcrypt при хешировании паролей, который получил огромное исправление в этой версии.

Посмотрите на эту статью, чтобы довести требование PHP для Laravel 4 до 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. Вы можете прочитать, как вы можете проверить, используется ли дистрибутив, один из них здесь; если это так, ваш дистрибутив поддерживает исправление и, в свою очередь, поддерживает Laravel 4 из коробки.

Ответ 2

У меня был опыт работы с удаленным веб-хостом, который предлагает несколько версий php, и каким-то образом был установлен более старая версия php.

Например, я не мог понять, почему мои миграции не выполнялись - команды artisan не выполнялись без видимых причин, когда работала почти идентичная локальная настройка. Приходите, чтобы узнать, что моя корневая папка была установлена ​​на 5.2. Быстрый сеанс чата с ребятами из веб-хостинга, и они показали мне, как исправить. Престо-миграции работают.

Большая часть остальной части моего приложения работала, но функциональность ремесленника для меня не нужна. Надеюсь, что это поможет.

Кроме того, встроенный веб-сервер разработки php удобен - начинается с 5.4.

РЕДАКТИРОВАТЬ: Вот вам немного больше боеприпасов: еще одна конкретная проблема, с которой я столкнулся:

[email protected]:/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.

...

[email protected]:/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
...

Я надеюсь, что это поможет кому-то!

UPDATE: июль 2013 г., за php.net: Обратите внимание: это будет последняя регулярная версия серии PHP 5.3. Все пользователи PHP рекомендуется обновить до PHP 5.4 или PHP 5.5. Серия PHP 5.3 получит только исправления безопасности на следующий год.