[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Система и инструменты для PHP разработки
Страницы: 1, 2
phpforumone
Подскажите начинающему:

1. Какое и в каких случаях нужно/лучше иметь окружение для веб разработки? Я сейчас использую win, установлен openserver. Среда - PHP Storm. Изучаю PHP, MySQL. С CLI в целом, композером знаком только очень поверхностно, щупал пару раз через консоль опенсервера.

2. Для чего нужен/какие преимущества в контексте веб разработки на PHP использования линукса по сравнению с окнами? Как в плане самостоятельной разработки, так и профессионально. Что нельзя/сложнее сделать в win по сравнению с linux? Линукс сам по себе меня не пугает, я не понимаю в чем его преимущества, т.к. сложностей в нем побольше - в частности все устанавливать и настраивать по отдельности. Вероятно что я не знаю, что можно/нужно/легче/правильнее/быстрее делать именно в линукс?

3. Есть ли смысл в разработке под win, использовать не готовую сборку типа опенсервер, денвер и т.п. и консоль или в этом случае логичнее(а проще ли, не имея опыта в *nix?) переходить в линукс?

4. Что должно быть дополнительно установлено, правильно дополнительно настроено на линуксе в дистрибутиве из коробке того же ubuntu, чтобы как минимум обеспечить окружение уровня сборки опенсервера?
Michael
1) В основном сейчас все разворачивают с docker-ом.

Но для сайтиков(когда работаешь один) можно и на опенсервере запустить.

Усредненный вариант - это vagrant.
Разрабатываешь на винде, а сайт будет крутиться на виртуалке на линуксе, как в реальной жизни он на сервере.

2) Ну вот докером ставится на линуксе нужное окружение, не надо отдельно ставить.
На линуксе оно в результате будет работать, поэтому на нем лучше и проверять.
Хотя конечно разницу для простых сайтов, когда не используется дополнительное ПО, не так просто прочувствовать, нормальные скрипты работают и тут и там.

3) и 4) смотри 2)

p.s. Если еще не изучал, начинай изучать Git

_____________
There never was a struggle in the soul of a good man that was not hard
TranceIT
1) Разрабатывай где удобно и на чем угодно.

2) Т.к., в основном, на серверах используется линукс, то подобный опыт даст понимание как развернуть боевое окружение на голом сервере. Если же рассматривать только в контексте веб-разработки, то преимуществ перед окнами никаких.

3) См. 1. Хочешь пощупать линукс? Пощупай. Вдруг понравится.

4) sudo apt install tasksel
Там выбираешь LAMP (Linux Apache+MySQL+PHP). Вот тебе готовая сборка уровня Обычного веб-сервера.

_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать.

Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!

user posted image
phpforumone
Цитата
В основном сейчас все разворачивают с docker-ом.

Слышал, читал, но пока - только в общих чертах. Интересно. Вагрант мне показался слишком заумным вариантом.
Цитата
Но для сайтиков(когда работаешь один) можно и на опенсервере запустить.

Вопросы выше - на вырост - для работы в команде. Т.к. это получается разные направления - сама разработка и сопутствующее администрирование окружения что-ли.. Но хочется заранее хоть понемногу изучать эти вопросы, чтобы не изучать все скопом, когд понадобится.Хотя может это и не правильно - не своевременно. Не знаю. Но пытаюсь изучать потихоньку.
Цитата
Ну вот докером ставится на линуксе нужное окружение, не надо отдельно ставить.

Я так понял, что и на окнах можно работать с докером, хотя опять таки, не вижу тогда смысла это делать именно в окнах, разве что если только какими то вещами сильно привязан к окнам.
Цитата
Если еще не изучал, начинай изучать Git
Это еще один больной впрос - пока тоже преимущественно в стадии: "слышал звон, но не знаю где он". Знаю что это и для чего, но как это работает и как использовать - пока не знаю даже с какой стороны подступиться. Есть над чем работать.

*********
Цитата
Разрабатывай где удобно и на чем угодно.
Я интересуюсь этими вопросами "на вырост". Сейчас конечно мне удобно и в опернсервере. Возможно это для всех так, а возможно потому, что я другого ничего не пробовал(не изучил еще много чего в разработке) и не знаю плюсы и минусы. Да и все начинающие наверное начинают с какой-то готовой сборки, да с окон. С одной стороны - это облегчает процесс. С другой стороны - при самообучении вот как у меня - потом возникает масса вопросов - и это для меня сейчас как обратная сторона луны. Много нового и непонятного. С другой стороны - а нужно ли мне оно прямо сейчас, когда нет в этом острой необходимости.
Цитата
Хочешь пощупать линукс? Пощупай. Вдруг понравится.

Щупал уже - ничего так. Готов перейти на линукс - как основную систему а win рядом законсервировать. Но пока не знаю досконально как развернуть, настроить локальный сервер на линуксе и работать с ним - не перехожу.
phpforumone
П.С.: Попытался поставить докер на окна - не получилось. Процессор не поддерживает виртуализацию. Т.е. докер и на линуксе не запустится?
Michael
Цитата (phpforumone @ 12.04.2020 - 13:37)
П.С.: Попытался поставить докер на окна - не получилось. Процессор не поддерживает виртуализацию. Т.е. докер и на линуксе не запустится?

А что за винда, седьмая?

Для виртуализации часто нужно в биосе включить возможность.

_____________
There never was a struggle in the soul of a good man that was not hard
Michael
Цитата (phpforumone @ 12.04.2020 - 10:54)
Вагрант мне показался слишком заумным вариантом.

Вагрант - это как раз такой себе попроще вариант.

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

И вот с пунктом 1-ым, если это опенсервер, можно попасть:
- нужно тебе по идее выяснить с какими точно версиями всего они работают
- какие точные настройки каждого, у php свое, у мускуля свое, у нжинкс свое, все эти конфиги тебе надо как то со своими опенсерверовскими подружить
- что точно нужно доустановить и насколько это реально для винды

А с вагрантом предполагается что в нем уже зашиты и установка нужных версий и все конфиги, и это все в проекте лежит в гите рядом с кодом.
Тебе для такого проекта достаточно зайти в папку и выполнить vagrant up, оно долговато потупит первый раз, но потом ты в браузере сможешь открыть этот сайт и он будет работать на линуксе в виртуалке.
И можно свой код писать и смотреть работу.

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

Насчет гита, у него есть pro git book , пошагово неплохо объяснено

_____________
There never was a struggle in the soul of a good man that was not hard
phpforumone
Цитата
Например есть какой то проект.
Тебя к нему подключают. Удаленно.
...
А с вагрантом предполагается что в нем уже зашиты и установка нужных версий и все конфиги, и это все в проекте лежит в гите рядом с кодом.


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

Хотя, если честно, не вижу в чем сложность настроить тот же AMP посредством опенсервера? Исключение - модули подключаемые извне, типа композера, но и это же можно у себя локально развернуть, если иметь lock файл. Разве что, если есть что-то используемое в проекте и не поддерживается в окнах. А есть такое?

Было бы наверное неплохо в любом случае вместе с проектом иметь типа конфиг-файла со всем используемым в проекте.

Цитата
А что за винда, седьмая?

нет, win 10 Enterprise 2016 LTSB.
Для установки обычного докера не подошла версия, нужна более свежая. Пробовал через toolbox - не устанавился, а виртуализация я так понял - в контексте процессора. Он у меня действительно старый. Intel Core 2 Duo 7300.

Ну и раз не поддерживается виртуализация на уровне железа то и virtualbox не встанет в любом случае, я так понимаю...
За доку на гит отдельное спасибо)
Michael
Цитата (phpforumone @ 12.04.2020 - 15:18)
В этом случае, я так понимаю, что и остальные участники проекта должны работать в вагранте? Иначе откуда взяться конфигурациям для вагранта?

Ну по логике, да.
Кто руководит проектом, тот настраивает это окружение, и все одним пользуются.

Но это не надо сейчас делать с нуля, полно примеров и сборок на гитхабе.

А в проектах на фреймворках, например, уже начальные эти настройки стоят, работает из коробки.

_____________
There never was a struggle in the soul of a good man that was not hard
killer8080
Цитата (phpforumone @ 12.04.2020 - 17:18)
Ну и раз не поддерживается виртуализация на уровне железа то и virtualbox не встанет в любом случае, я так понимаю...

нет, отсутствие аппаратной виртуализации Virtualbox-у не помеха, будет работать.
phpforumone
Цитата (TranceIT @ 12.04.2020 - 12:03)

4) sudo apt install tasksel
Там выбираешь LAMP (Linux Apache+MySQL+PHP). Вот тебе готовая сборка уровня Обычного веб-сервера.


Что -то все равно как-то сложновато у меня получается, или я все сам усложнил...

Почитал про этот tasksel. Вобщем как-то отпало желание даже пробовать. В нескольких источниках видел, что-то типа Ubuntu+tasksel+lamp = переустановка системы. Какие-то проблемы с тем что сыпется система то ли сразу после установки. то после попытки удаления. Короче говоря, испытавть на себе нет желания, хотя установка в виде сборки конечно прельщает.

В опенсервере я апач не настраивал отдельно и никакие дополнительные расширения не ставил кроме сервиса для работы с smtp.

В ручную я сам не знаю как правильно ставить AMP поэтому просто нашел инструкцию в интернете:
Цитата
sudo apt install apache2
sudo apt install mysql-server
sudo apt install php7.2 libapache2-mod-php7.2 php-mysql
sudo apt install php-curl php-json php-cgi php-gd php-zip php-mbstring php-xml php-xmlrpc
sudo ufw allow in 80/tcp


версия 7.2. Я пытался установить то же самое с более поздней версией. но команда не срабатывает. Это вообще обязательно, или достаточно для начала просто install php и верию?

расширения тип curl и т.д. можно потом отдельно доустанавливать, сразу не обязательно это делать?
Файервол тоже - получается обязательно нужно указать порт,протокол?

Цитата
/var/www/html
-это я так понял настройка апача по умолчанию - это корень проекта? Непонятно почему по умолчанию он прописывается в корен системы, а не в домашний раздел.

Ну и вот это дальше:
Цитата
sudo a2dismod mpm_event
sudo a2dismod mpm_worker
sudo a2enmod mpm_prefork
sudo a2enmod rewrite
sudo vi /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Это же настройка апача, чего на опенснрвере я тоже не делал - и это для меня вообще темный лес пока что...
Получается, тут еще куча отдельных настроек - для апача. для PHP, mysql.

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

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

П.С, Я так понял, что все что я установил можно удалить через командную строку через remove или purge? Обновлять на более свежие версии пока не знаю как ))
Michael
Цитата
версия 7.2. Я пытался установить то же самое с более поздней версией. но команда не срабатывает.

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

расширения тип curl и т.д. можно потом отдельно доустанавливать, сразу не обязательно это делать?

да, конечно. Все это можно потом доустановить

Цитата
Получается, тут еще куча отдельных настроек - для апача. для PHP, mysql.

Ну это линукс. У каждой программы есть документация, все это надо изучать.
В том числе изучать:
Цитата

Это же настройка апача, чего на опенснрвере я тоже не делал - и это для меня вообще темный лес пока что...

Вот подробная инструкция, коих много.

Цитата
Может кто подскажет откуда почерпнуьт информацию - наиболее полно, структурированно

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

ps1. На практике будет все же нужен не apache, а nginx
ps2. Своей попыткой установить все, уже уловил намек, как бы это все было жутко в команде?
Например ты кому то говоришь: подними себе lamp, вот тебе конфиги, и давай программировать, а в ответ будет вот что ты написал, а когда и получится то окружение будет совсем не факт что аналогичное


_____________
There never was a struggle in the soul of a good man that was not hard
phpforumone
Цитата
Вот подробная инструкция, коих много.

Как ни странно, но я в т.ч. и этим ресурсом пользовался при установке LAMP ))

У меня вопрос по поводу корня сайта:

Где его правильно/логично размещать? Я так понял, что можно по умолчанию оставить в системном разделе в /var/www, а можно вынести в домашний раздел например. С одной стороны, я вижу, что вопросам разработки как-то не совсем место в системных папках, хотя опенсервер тоже стоял на винде в системном разделе и там же были рабочие "домены". При этом, нужно же будет дать права общего доступа для /var/www. Как это соотносится с таким чутким отношением линукса к безопасности с системном разделе?Или тут нет никакого криминала? Зачем сразу тогда при установке давать этим папкам права root? Я с этим еще не очень знаком, линукс пока только начинаю осваивать.

Цитата
На практике будет все же нужен не apache, а nginx


Зачем все с апача начинать тогда советуют? Он проще, но принципы те же?

Цитата
Например ты кому то говоришь: подними себе lamp, вот тебе конфиги, и давай программировать

Да вот кстати, еще и этот момент. Я вот уже с неделю в свободное время этим занимаюсь и пока что не очень понял прелести использования линукса) Все нужно установить вручную, настроить кучу всего и действительно далеко не факт, что все будет на 100% идентично конфигурации других разработчиков в проекте. По моим очень смутным представлениям как раз в унификации и в условном облегчении этого процесса может помочь докер? Хотя я так понял, что его освоение будет тоже не легким)) Но в любом случае, освоение командной строки, линукса в целом, хоть пока общее представление о LAMP, как об отдельных единицах и их настройках - будут не лишними и принесут свою пользу.
killer8080
Цитата (phpforumone @ 20.04.2020 - 15:30)
Почитал про этот tasksel. Вобщем как-то отпало желание даже пробовать. В нескольких источниках видел, что-то типа Ubuntu+tasksel+lamp = переустановка системы. Какие-то проблемы с тем что сыпется система то ли сразу после установки. то после попытки удаления. Короче говоря, испытавть на себе нет желания, хотя установка в виде сборки конечно прельщает.

не юзал эту тулзу, но учитывая что она всего лишь ставит стандартный набор пакетов из нативного репозитория, сомневаюсь что что-то сломается в системе, тем более так жестко.
Цитата (phpforumone @ 20.04.2020 - 15:30)
В ручную я сам не знаю как правильно ставить AMP поэтому просто нашел инструкцию в интернете:
Цитата
sudo apt install apache2
sudo apt install mysql-server
sudo apt install php7.2 libapache2-mod-php7.2 php-mysql
sudo apt install php-curl php-json php-cgi php-gd php-zip php-mbstring php-xml php-xmlrpc
sudo ufw allow in 80/tcp

рецепт устаревший, не знаю как в убунте, в дебиане теперь нет пакета mysql-server, теперь там default-mysql-server. Кроме того по факту mysql сервера в репозитории нет, там лежит его форк MariaDB. Это может быть не принципиально, но нужно учитывать. Если нужен оригинальный mysql, то нужно подключать репозиторий от Oracle.

Цитата (phpforumone @ 20.04.2020 - 15:30)
sudo ufw allow in 80/tcp

это нужно только в том случае, если порт задраен фаерволом, по умолчанию все порты открыты.

Цитата (phpforumone @ 20.04.2020 - 15:30)

Цитата
/var/www/html
-это я так понял настройка апача по умолчанию - это корень проекта? Непонятно почему по умолчанию он прописывается в корен системы, а не в домашний раздел.


Потому что это документ рут для веб хоста по умолчанию, он не привязан ни к пользователю (которого может вообще не быть), ни к вебсерверу (apache, nginx, lighttpd и т.д).

Цитата (phpforumone @ 20.04.2020 - 15:30)
Ну и вот это дальше:
Цитата
sudo a2dismod mpm_event
sudo a2dismod mpm_worker
sudo a2enmod mpm_prefork
sudo a2enmod rewrite
sudo vi /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>

Это же настройка апача, чего на опенснрвере я тоже не делал - и это для меня вообще темный лес пока что...
Получается, тут еще куча отдельных настроек - для апача. для PHP, mysql.

в линуксе этого тоже делать не нужно, если ставишь из репы, не знаю где ты это откопал :)

Цитата (phpforumone @ 20.04.2020 - 15:30)
Я так понял, что все что я установил можно удалить через командную строку через remove или purge?

да

Цитата (phpforumone @ 20.04.2020 - 15:30)
Обновлять на более свежие версии пока не знаю как ))

то что установлено из репы, будет обновляться вместе с системой.
apt update
apt upgrade
apt clean

Цитата (phpforumone @ 22.04.2020 - 01:11)
У меня вопрос по поводу корня сайта:

Где его правильно/логично размещать? Я так понял, что можно по умолчанию оставить в системном разделе в /var/www, а можно вынести в домашний раздел например.

виртуальные хосты можешь создавать где хочешь, дефолтный лучше не перемещать.
Опять же речь идет о докере или об обычном линукс сервере? В докере обычно один проект - один контейнер, и нет нужды в виртуальных хостах. Если это просто сервер, то для каждого сайта свой виртуальны хост, как и в опенсервере.
Цитата (phpforumone @ 22.04.2020 - 01:11)
При этом, нужно же будет дать права общего доступа для /var/www.

нет не нужно, для проекта создаётся например директория
/var/www/example.com
документ рут сайта
/var/www/example.com/public
для директории проекта владельцем делается пользователь, который будет иметь права на запись.

sudo chown -R userName:userGroup /var/www/example.com

где вместо userName и userGroup имя и группа пользователя.

Цитата (phpforumone @ 22.04.2020 - 01:11)
Зачем все с апача начинать тогда советуют? Он проще, но принципы те же?

ни чем он не проще, просто во времена дорогих хостингов размещать маленькие сайтики на впс-ках было слишком накладно, все юзали шаред хостинги. А главное преимущество апача в возможности рантайм конфигурирования без админских прав, через .htaccess. Это упрощало работу хостерам и жизнь их клиентам, т.к. не нужно обращаться в поддержку чтоб настроить реврайты и т.п. Сейчас я вообще не вижу смысла в связке apache+mod_php

Цитата (phpforumone @ 22.04.2020 - 01:11)
Я вот уже с неделю в свободное время этим занимаюсь и пока что не очень понял прелести использования линукса) Все нужно установить вручную, настроить кучу всего и действительно далеко не факт, что все будет на 100% идентично конфигурации других разработчиков в проекте.

к выбору ОС вопрос идентичности конфигурации как бы отношения не имеет. На самом деле ничего особо сложного нет.

Цитата (phpforumone @ 22.04.2020 - 01:11)
По моим очень смутным представлениям как раз в унификации и в условном облегчении этого процесса может помочь докер?

докер дает возможность создать единое окружение для проекта. Тот кто создает контейнер в любом случае должен уметь конфигурировать сервер. Если тебе его спускает тимлид, то особо шарить не нужно.
Цитата (phpforumone @ 22.04.2020 - 01:11)
Но в любом случае, освоение командной строки, линукса в целом, хоть пока общее представление о LAMP, как об отдельных единицах и их настройках - будут не лишними и принесут свою пользу.

это однозначно ;)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.