Это глупо разрабатывать для LAMP на WAMP? - PullRequest
15 голосов
/ 23 октября 2008

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

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

Ответы [ 10 ]

15 голосов
/ 23 октября 2008

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

Вот некоторые вещи, которые мне не нравятся, но вы должны следить за ними, если вы придерживаетесь своей среды Windows.

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

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

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

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

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

  6. Кодовое слово группы PHP для Windows - «некоторые платформы». Вы можете исследовать больше самостоятельно , если хотите

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

Надеюсь, это поможет!

13 голосов
/ 23 октября 2008

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

2 голосов
/ 23 октября 2008

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

  1. Решаемо, в худшем случае с FTP-клиентом для изменения разрешений.
  2. Хорошие, простые способы сделать вас лучшим программистом (в некотором смысле, да).
1 голос
/ 23 октября 2008

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

1 голос
/ 23 октября 2008

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

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

1 голос
/ 23 октября 2008

Нет, развиваться на вале и работать на лампе должно быть хорошо, но, по крайней мере, на лампе. Я пошел в обе стороны без особых проблем (хорошо, раньше было множество проблем с развертыванием корпоративных сайтов на WAMP (не пытайтесь использовать фильтр PHP ISAPI), но теперь они решаемы (fastcgi)). Пока вы не добавляете какие-либо модули PECL, которые заявляют, что они не поддерживаются в Windows, у вас не должно быть никаких проблем. Также (поскольку вы заявляете, что используете WAMP, я предполагаю, что вы используете MySql), у mssql и PHP есть куча проблем (древний драйвер, который ему требуется, серьезно ограничивает длину вашего запроса).

0 голосов
/ 27 июля 2012

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

0 голосов
/ 24 октября 2008

№.
VirtualBox + общие папки могут быть полезны, если у вас есть 6-8 часов свободного времени в выходные, чтобы прояснить все основы VBox и проработать настройки. Если вы переходите на Linux, этот процесс может занять до месяца, и вы будете очень непродуктивными в то время с точки зрения производственного кода.
Рекомендуется продолжать практиковать Linux на VBox для Windows, прежде чем переключаться, используя один из [PCLinuxOS, CentOS, OpenSuse, Ubuntu]. Я предпочитаю CentOS, PCLinuxOS. Есть драгоценный камень под названием SLAMPP, а другой - XAMPP <- работает в Linux и Windows. <Br /> IMO, как грубое предположение, если вы ожидаете кодировать 2000-3000 строк кода (которые вы пишете / добавляете) на проект, для 6mo-1yr, придерживайтесь Windows и в то же время осваивайте Linux, используя VBox.
Если выше этого, или если вы планируете создать крутой новый сайт LAMP, я думаю, что вы должны сначала перейти на Linux. Потратьте еще месяц, чтобы привыкнуть к Linux. Вы по-прежнему можете перемещаться с двойной загрузкой или VBox столько времени, сколько хотите, начиная с самого начала - изучение Linux достаточно для отладки приложения LAMP действительно занимает время.

0 голосов
/ 23 октября 2008

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

0 голосов
/ 23 октября 2008

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

...