Веб-сайт PHP, я должен развиваться в дистрибутив Linux вместо Windows? - PullRequest
5 голосов
/ 06 октября 2008

Через несколько месяцев я запускаю проект на PHP и не решаюсь поступать как обычно: разрабатывать на моей машине с Windows Vista 64bit. Поскольку я знаю немного о Linux, я думаю, что это может быть хорошим способом обучения, работая над дистрибутивом Linux.

Как вы думаете, это хорошая идея или нет? Я бы запустил VirtualBox с Ubuntu (на моих Vista64bits). Я думал об установке XAMPP для возможности разработки на PHP.

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

Обновление Я построил много веб-сайтов на PHP с Windows, вопрос в том, хороший ли это способ начать изучение Linux, разрабатывая его на виртуальной машине? У меня есть 4 гигабайта оперативной памяти, будет ли гладко, если я установлю Eclipse на виртуальной машине? и т.д.

Ответы [ 13 ]

5 голосов
/ 06 октября 2008

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

Однако, по моему опыту и наблюдениям, в Linux работает больше сайтов с PHP, чем в Windows.

Настроить Apache и PHP на что-то вроде Ubuntu или Fedora совсем непросто, и протестировать все тоже довольно просто.

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

5 голосов
/ 06 октября 2008

Вы должны действительно разрабатывать на той же платформе, где вы собираетесь развернуть. Я не говорю, что плохо поступать иначе, но это может избавить вас от боли в долгосрочной перспективе. OTOH, вы могли бы узнать больше о различиях платформ таким образом. Итак, главный вопрос: хотите ли вы, чтобы производственная система работала как можно скорее без головной боли? Или вы хотите потратить некоторое время и приложить усилия, чтобы научиться разрабатывать кроссплатформенные вещи?

И да, есть различия. Например, регистрозависимые и регистрозависимые имена файлов. Затем некоторые функции PHP используют собственные функции C, которые имеют различную реализацию. Например, printf () не создает одинаковое количество пробелов для некоторых типов. Разрешение измерения времени (миллисекунды или микросекунды) может быть разным и т. Д. Затем у вас есть разные способы обработки разрешений файловой системы. Это лишь некоторые недавние проблемы, которые я обнаружил и могу вспомнить на макушке.

3 голосов
/ 06 октября 2008

Работа над дистрибутивом Linux, безусловно, самый простой способ изучить его. А настройка некоторых серверов и выполнение некоторых разработок - отличное начало.

Виртуализация Linux также очень проста. Я делал это довольно много раз, и это действительно отвратительно. Кроме того, такой путь облегчит вам использование Linux, гораздо лучше, чем просто прыгнуть и обнаружить, что ваша беспроводная карта не поддерживается, как я сделал :)

Что касается разработки PHP под Linux ... Я сделал несколько кодов PHP под Windows и под Linux, и я могу сказать, что между ними очень мало различий. Я использую Eclipse на обеих платформах и Apache & MySQL / XAMPP. Единственное существенное отличие, которое я видел, заключается в том, что Linux гораздо более привередлив в отношении разрешений и регистра.

3 голосов
/ 06 октября 2008

Лично я не думаю, что для локального производства вы должны использовать виртуальную машину. Вы бы тоже запустили свою IDE внутри виртуальной машины?

Если вы достаточно осведомлены о подводных камнях при перемещении между средами Windows и Linux (таких как чувствительность к регистру и разрешения), у вас не должно возникнуть проблем при разработке в Windows и развертывании в Linux.

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

PHP не одинаков на всех платформах, и до недавнего времени в версиях Windows были проблемы, которых не было в версиях Linux. Множество полезных функций зависят от * nix.

Я бы повторил мнение @ Милана о разработке в среде развертывания. Делая это, вы узнаете намного больше о среде развертывания.

Что касается проблемы с виртуальной машиной, если вам нужны все инструменты Windows и ваш компьютер с Windows, настройте Linux сервер на своей виртуальной машине (если хотите, можете иметь графический интерфейс, но вы будете использовать в основном это как сервер). Настройте его так, чтобы windows мог просматривать установку apache, запущенную на вашей виртуальной машине, и вы используете общие ресурсы samba для доступа к файлам виртуальной машины, например к диску в windows. Таким образом, вы разрабатываете в Windows, но тестируете развертывание / настройку на работающем сервере Linux. В то время как два разработчика в моем магазине работают с Ubuntu, третьему нужно постоянно использовать Photoshop и различные другие программы для Windows, поэтому она использует этот метод для запуска сервера в виртуальной машине, но для разработки из Windows.

О, и если вы работаете в Linux, не используйте XAMPP! Несколько простых команд приведут вас в порядок, и вы получите гораздо лучшее представление о своем развертывании. XAMPP - это хорошо, но для ОС, у которых нет управления пакетами в Linux.

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

Обычно мне нравится среда Linux лучше, чем Windows. Главным образом потому, что все инструменты CLI, которые вам понадобятся, предоставляются, и Bash превосходит cmd.ext в любое время. Но с Cygwin я нахожу даже Windows удобной средой разработки.

Что касается разработки PHP, я не могу понять, насколько она будет сильно отличаться. Возможно, есть некоторая выгода от того, что вы вынуждены сделать код более переносимым (например, окончания строк, косые черты в именах файлов и т. Д.), Если вы используете системы стенда.

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

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

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

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

, в то время как XAMPP отлично работает, работает Apache и PHP на Linux; в то время как на Windows это что-то дополнительное, что вы должны сделать ... и поддерживать. Кроме того, большинство частей стека гораздо более оптимизированы и подходят для среды POSIX. Производительность ядра (баз) данных особенно чувствительна к доступным примитивам.

Большинство OSS работает на окнах, но это круглый колышек на квадратном отверстии.

0 голосов
/ 22 апреля 2013

5 лет спустя: мое мнение - использовать решение Linux. Есть много преимуществ для использования PHP в Linux. Основной причиной является уровень помощи, предоставляемой сообществом. Похоже, что PHP оптимизирован и для Linux.

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

Сделайте свою жизнь проще и сразу начните изучать PHP.

0 голосов
/ 02 марта 2009

Побочный эффект от разработки внутри виртуальной машины: дополнительные издержки и, в конечном итоге, необходимость в дополнительных инструментах для повышения удобства разработки. Часто людям требуются специальные инструменты для их разработки, такие как Photoshop или некоторые инструменты векторного дизайна, недоступные в Linux. Если рабочая копия проекта находится внутри виртуальной машины, имеет смысл иметь к ней легкий доступ. Таким образом, вы настроите SAMBA (что часто создает проблемы при входе из XP) или настройте SSL (SFTP) / FTP. Также вы должны научиться использовать сеть с виртуальной машиной (NAT, мостовые соединения, переадресация портов).

С другой стороны, развитие на другой платформе в качестве цели может вызвать головную боль. Я часто путался с файлами .htaccess для защиты паролем из-за различий в Windows / Linux. Если вы забудете изменить эти записи позже на рабочем сервере, у вас возникла проблема ...

Лучшее решение: используйте лучшее из обоих миров. В конце концов, виртуальная машина запускается без головы (без графического интерфейса, больше как «удаленный сервер» с Ubuntu / Debian / FreeBSD) и работает только с необходимыми серверами (Apache, MySQL, FTP, SSH ...)

Eclipse или другие инструменты разработки для Windows / Mac.

...