Веб-сайт PHP, должен ли я перейти на дистрибутив Linux вместо Windows?

StackOverflow https://stackoverflow.com/questions/175425

  •  05-07-2019
  •  | 
  •  

Вопрос

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

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

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

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

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

Решение

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

немецкий студент ;)

Используйте операционную систему, под управлением которой будет работать ваш сервер развертывания, и весьма вероятно, что это будет linux.Недавно я видел, как развертывание прошло крайне неудачно, потому что оно было разработано с использованием wampserver и развернуто на CentOS.С существенными различиями в конфигурации apache и PHP.Поэтому знайте свой сервер развертывания и подбирайте его как можно ближе.

Попробуйте создать среду разработки с помощью VMware Player.У меня есть несколько сред Linux, которые я запускаю на своем ноутбуке Vista.Вы также можете просто выполнить двойную загрузку.Я использую Ubuntu, это просто.

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

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

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

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

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

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

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

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