С какими проблемами я могу встретиться с 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 получит только исправления безопасности на следующий год.