Глупо разрабатывать для LAMP на WAMP?

После того, как он несколько отдалился от открытого исходного кода и потратил несколько лет на разработку веб-приложений в ASP.NET , я собираюсь начать довольно много заниматься PHP/MySQL-разработкой.

Я довольно безболезненно установил WampServer, чтобы запустить среду разработки на моем компьютере с Windows, но платформа, на которую я буду ориентироваться, скорее всего, будет Linux. Могу ли я столкнуться с проблемами из-за разработки для Windows, ориентируясь на Linux? Целесообразно ли инвестировать в настройку среды Linux для разработки приложений LAMP?


person Nick Higgs    schedule 22.10.2008    source источник
comment
Что ж, устройство VirtualBox + TurnKey LAMP несложно настроить.   -  person Camilo Martin    schedule 10.01.2012


Ответы (10)


Если вы можете, я бы инвестировал в какую-то среду разработки Linux или, по крайней мере, * nix. Для простых приложений и веб-сайтов ваша настройка подходит, но в конечном итоге вы столкнетесь с небольшими различиями при развертывании.

Вот некоторые вещи, которые пришли мне в голову, на которые вам стоит обратить внимание, если вы придерживаетесь своей среды Windows.

  1. Пути к файлам. Многие функции PHP принимают пути к файлам в качестве аргументов. не используйте разделитель обратной косой черты Windows (\). Даже если вы работаете в Windows, PHP позволит вам использовать разделитель косой черты. В идеале абстрагируйте это с помощью собственного класса пути к файлу.

  2. Модули Apache, расширения PECL. Apache Windows и Apache Unix часто поставляются с другим набором модулей Apache, установленных по умолчанию. Кроме того, одна и та же версия модуля может работать по-разному на разных платформах. Если ваше приложение использует какой-либо модуль Apache, убедитесь, что он доступен для обеих платформ. То же самое касается пользовательских расширений PHP (PECL).

  3. Разветвление процесса. Использование exec, ` и т. д. в веб-приложении — плохая идея для начала, но если вы используете эти функции, они будут вести себя по-разному в Windows и * nix.

  4. Запись файлов, блокировка и т.д. работают по-разному

  5. Электронная почта обрабатывается по-разному на обеих платформах

  6. Кодовое слово группы PHP для Windows — это некоторые платформы. Вы можете найти больше самостоятельно если хочешь

В общем, чем ближе ваша среда разработки соответствует вашей производственной среде, тем меньше у вас будет проблем, связанных со средой/развертыванием.

person Alan Storm    schedule 22.10.2008
comment
Почти для всех проблем, о которых вы упомянули, существуют портативные обходные пути. - person Marcos Lara; 18.11.2008
comment
Знаете ли вы, есть ли различия/проблемы, связанные с отметками времени? например будут ли функции strtotime() по-прежнему предоставлять правильную временную метку unix? - person LazerSharks; 14.07.2013

Я делаю это последние пару лет и еще не сталкивался с какими-либо проблемами - во всяком случае, это дает вам преимущество, заставляя вас писать более переносимый код.

person Greg    schedule 22.10.2008
comment
да. Пожалуйста, разрабатывайте на WAMP и развертывайте на LAMP, мы делаем как раз наоборот, и хотя переход был болезненным, из-за этого нам стало намного лучше. Я могу оперативно заменять рабочие среды для тестирования, когда мне нужно, не беспокоясь о базовой платформе. - person cfeduke; 23.10.2008
comment
Просто будьте осторожны с правами доступа к файлам и помните, что Windows нечувствительна к регистру, а Linux — нет. незнание этого может вызвать некоторые неприятные ошибки. - person levhita; 23.10.2008

Разрешения и тот факт, что имена файлов в Windows не чувствительны к регистру, — это две вещи, которые, как мне кажется, причинили мне боль. Но они

  1. Решаемо, на худой конец с FTP-клиентом поменять разрешения.
  2. Хорошие и простые способы сделать вас лучшим программистом (да, в небольшой степени).
person Adriano Varoli Piazza    schedule 22.10.2008

Теоретически PHP и MySQL должны быть полностью независимыми от платформы.

На практике, если вы собираетесь работать с реальным рабочим приложением, я предлагаю вам создать тестовую среду, отражающую производственную, чтобы избегать неожиданностей.

person Gabriele D'Antona    schedule 22.10.2008

Нет, разработка на WAMP и запуск на LAMP должны быть в порядке, но, по крайней мере, этап на LAMP.

Я пошел в обоих направлениях без особых проблем (хорошо, раньше было множество проблем с развертыванием корпоративных сайтов на WAMP (не пытайтесь использовать фильтр PHP ISAPI), но теперь они решаемы (FastCGI)).

Пока вы не добавляете какие-либо модули PECL, в которых указано, что они не поддерживаются в Windows, у вас не должно возникнуть никаких проблем. Кроме того (поскольку вы заявляете, что используете WAMP, я предполагаю, что вы используете MySQL), SQL Server и у PHP есть куча проблем (требуемый древний драйвер серьезно ограничивает длину вашего запроса).

person Kris Erickson    schedule 22.10.2008

Да, я бы рекомендовал разработку в среде, максимально приближенной к вашей производственной среде.

Существуют различия между тем, как PHP работает в Windows и Linux. И другие отличия, например, как Linux обрабатывает права доступа к файлам по сравнению с Windows. Я запускаю бесплатный сервер VMware с виртуальной машиной Linux.

У меня есть общий ресурс Samba на виртуальной машине Linux, которую я подключаю как сетевой диск. в Windows. Затем я использую Eclipse в Windows в качестве редактора кода.

person ejunker    schedule 22.10.2008

Нет, потому что единственное, что вы не можете сделать в WAMP, если вы ориентируетесь на LAMP, — это использовать System()/Вызовы Exec, и обычно это хорошо, потому что их следует использовать очень редко.

person Michael Stum    schedule 22.10.2008

Стоит иметь изолированную программную среду LAMP, чтобы вы могли узнать, где найти и как редактировать файлы конфигурации, освоиться с перезапуском служб, обработкой запланированных заданий и т. д., если вам придется иметь дело с этими задачами в рабочей среде.

person Colonel Sponsz    schedule 22.10.2008

Нет.
VirtualBox + общие папки должны быть полезны, если у вас есть около 6-8 свободных часов в один из выходных, чтобы разобраться со всеми основами VirtualBox и отработать настройки.

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

Рекомендуется продолжать практиковаться в Linux на VirtualBox для Windows заранее, до переключения, используя одну из PCLinuxOS, CentOS, openSUSE или Ubuntu . Я предпочитаю CentOS и PCLinuxOS.

Есть жемчужина под названием SLAMPP и еще одна красота под названием XAMPP ‹ — работает в Linux и Windows.

ИМО, по грубой оценке, если вы планируете кодировать 2000-3000 строк кода (которые вы пишете/добавляете) для каждого проекта в течение от шести месяцев до одного года, придерживайтесь Windows и осваивайте Linux, используя VirtualBox.

Если выше этого или если вы планируете создать классный новый веб-сайт LAMP, я думаю, вам следует сначала перейти на Linux. Потратьте еще месяц, чтобы привыкнуть к Linux. Вы все еще можете использовать двойную загрузку или VirtualBox столько, сколько захотите, начиная как можно раньше — изучение Linux, достаточное для отладки приложения LAMP, требует времени.

person Community    schedule 24.10.2008

Пути, остерегайтесь путей. Вы можете создать целую CMS, и она запутается из-за путей.

person Yehonatan    schedule 27.07.2012