Вопрос

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

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

Это было полезно?

Решение

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

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

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

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

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

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

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

  • Кодовое слово группы PHP для Windows - " некоторые платформы " ;. Вы можете самостоятельно исследовать если хотите

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

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

    Другие советы

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

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

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

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

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

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

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

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top