Кросс-платформенные предостережения PHP? - PullRequest
2 голосов
/ 02 апреля 2009

Мне дали существующее приложение PHP, которое изначально было развернуто на хосте LAMP.
Поскольку большая часть нашей команды - разработчики .Net, наш босс хочет, чтобы она была развернута в среде Windows.

Это безумие ожидать, что это сработает?

Вот дополнительная информация о хосте LAMP:

  • Linux 2.4.32
  • PHP 5.2.6
  • Нет нестандартных модулей

Ответы [ 5 ]

1 голос
/ 03 апреля 2009

Что я испытал за эти годы:

  • Слишком старый / новый драйвер БД для PHP
  • Проблемы на пути
  • Изменение с 32-битной на 64-битную систему или наоборот влияет на внутреннюю обработку целых чисел в PHP (битовые вычисления неожиданно возвращают странные результаты)
  • Проблемы с локалью и локализацией
  • Отсутствующие функции (руководство обычно отмечает, что оно не работает или ведет себя по-разному в Windows)
  • Имя файла оболочки

И всегда проверяйте и дважды проверяйте, чтобы модули Apache и PHP были по крайней мере той же версии, что и в старой системе.

Также неплохо запустить виртуализацию GNU / Linux поверх Windows, например, с VMWare, если кажется, что код не работает в Windows.

1 голос
/ 02 апреля 2009

Будьте очень осторожны, чтобы ни в коем случае не вызывать exec. Написано много чрезвычайно ленивого кода, который будет использовать это, и по понятным причинам он может не очень хорошо переноситься.

1 голос
/ 02 апреля 2009

Это зависит от того, что делается в приложении. Однако нужно обратить внимание на две области: где приложение ищет файлы в файловой системе (используя конкретные пути Linux?) И находит сборки Windows для любых модулей php (в частности, из PECL).

1 голос
/ 02 апреля 2009

По моему опыту, это можно сделать и работает нормально. Самые важные вещи, о которых я хочу помнить:

  1. Используйте Apache в Windows, не используйте IIS (даже если это возможно)
  2. Убедитесь, что вы используете косые черты в стиле Unix для каталогов. Они работают на обеих платформах.
  3. Будьте очень осторожны с чувствительностью к регистру. Так как Windows не чувствительна к регистру (хотя она сохраняет регистр), если вы включите файл и напишите его с неправильным регистром, он будет работать в Windows и потерпит неудачу в Linux.
1 голос
/ 02 апреля 2009

Черт возьми, даже простая миграция с одного размещенного сервера на другой обычно требует НЕКОТОРЫХ настроек и настроек. Я не представляю, что делать это в среде Windows было бы совсем по-другому. Я был вовлечен в миграцию большого PHP-приложения только на прошлой неделе, и мы (3 человека) смогли начать работу примерно за полдня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...