phpforumone
12.04.2020 - 00:37
Подскажите начинающему:
1. Какое и в каких случаях нужно/лучше иметь окружение для веб разработки? Я сейчас использую win, установлен openserver. Среда - PHP Storm. Изучаю PHP, MySQL. С CLI в целом, композером знаком только очень поверхностно, щупал пару раз через консоль опенсервера.
2. Для чего нужен/какие преимущества в контексте веб разработки на PHP использования линукса по сравнению с окнами? Как в плане самостоятельной разработки, так и профессионально. Что нельзя/сложнее сделать в win по сравнению с linux? Линукс сам по себе меня не пугает, я не понимаю в чем его преимущества, т.к. сложностей в нем побольше - в частности все устанавливать и настраивать по отдельности. Вероятно что я не знаю, что можно/нужно/легче/правильнее/быстрее делать именно в линукс?
3. Есть ли смысл в разработке под win, использовать не готовую сборку типа опенсервер, денвер и т.п. и консоль или в этом случае логичнее(а проще ли, не имея опыта в *nix?) переходить в линукс?
4. Что должно быть дополнительно установлено, правильно дополнительно настроено на линуксе в дистрибутиве из коробке того же ubuntu, чтобы как минимум обеспечить окружение уровня сборки опенсервера?
Michael
12.04.2020 - 11:16
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
12.04.2020 - 12:03
1) Разрабатывай где удобно и на чем угодно.
2) Т.к., в основном, на серверах используется линукс, то подобный опыт даст понимание как развернуть боевое окружение на голом сервере. Если же рассматривать только в контексте веб-разработки, то преимуществ перед окнами никаких.
3) См. 1. Хочешь пощупать линукс? Пощупай. Вдруг понравится.
4) sudo apt install tasksel
Там выбираешь LAMP (Linux Apache+MySQL+PHP). Вот тебе готовая сборка уровня Обычного веб-сервера.
_____________
Безвозмездно помогаю только тем, кто сам пытается что-то сделать. Остальным за WMR
Даже если там 10 строк кода!
Даже если мне это ничего не стоит!
Даже если вы нуб!
phpforumone
12.04.2020 - 12:54
Цитата |
В основном сейчас все разворачивают с docker-ом. |
Слышал, читал, но пока - только в общих чертах. Интересно. Вагрант мне показался слишком заумным вариантом.
Цитата |
Но для сайтиков(когда работаешь один) можно и на опенсервере запустить. |
Вопросы выше - на вырост - для работы в команде. Т.к. это получается разные направления - сама разработка и сопутствующее администрирование окружения что-ли.. Но хочется заранее хоть понемногу изучать эти вопросы, чтобы не изучать все скопом, когд понадобится.Хотя может это и не правильно - не своевременно. Не знаю. Но пытаюсь изучать потихоньку.
Цитата |
Ну вот докером ставится на линуксе нужное окружение, не надо отдельно ставить. |
Я так понял, что и на окнах можно работать с докером, хотя опять таки, не вижу тогда смысла это делать именно в окнах, разве что если только какими то вещами сильно привязан к окнам.
Цитата |
Если еще не изучал, начинай изучать Git |
Это еще один больной впрос - пока тоже преимущественно в стадии: "слышал звон, но не знаю где он". Знаю что это и для чего, но как это работает и как использовать - пока не знаю даже с какой стороны подступиться. Есть над чем работать.
*********
Цитата |
Разрабатывай где удобно и на чем угодно. |
Я интересуюсь этими вопросами "на вырост". Сейчас конечно мне удобно и в опернсервере. Возможно это для всех так, а возможно потому, что я другого ничего не пробовал(не изучил еще много чего в разработке) и не знаю плюсы и минусы. Да и все начинающие наверное начинают с какой-то готовой сборки, да с окон. С одной стороны - это облегчает процесс. С другой стороны - при самообучении вот как у меня - потом возникает масса вопросов - и это для меня сейчас как обратная сторона луны. Много нового и непонятного. С другой стороны - а нужно ли мне оно прямо сейчас, когда нет в этом острой необходимости.
Цитата |
Хочешь пощупать линукс? Пощупай. Вдруг понравится. |
Щупал уже - ничего так. Готов перейти на линукс - как основную систему а win рядом законсервировать. Но пока не знаю досконально как развернуть, настроить локальный сервер на линуксе и работать с ним - не перехожу.
phpforumone
12.04.2020 - 15:37
П.С.: Попытался поставить докер на окна - не получилось. Процессор не поддерживает виртуализацию. Т.е. докер и на линуксе не запустится?
Michael
12.04.2020 - 16:12
Цитата (phpforumone @ 12.04.2020 - 13:37) |
П.С.: Попытался поставить докер на окна - не получилось. Процессор не поддерживает виртуализацию. Т.е. докер и на линуксе не запустится? |
А что за винда, седьмая?
Для виртуализации часто нужно в биосе включить возможность.
_____________
There never was a struggle in the soul of a good man that was not hard
Michael
12.04.2020 - 16:25
Цитата (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
12.04.2020 - 17:18
Цитата |
Например есть какой то проект. Тебя к нему подключают. Удаленно. ... А с вагрантом предполагается что в нем уже зашиты и установка нужных версий и все конфиги, и это все в проекте лежит в гите рядом с кодом. |
В этом случае, я так понимаю, что и остальные участники проекта должны работать в вагранте? Иначе откуда взяться конфигурациям для вагранта?
Хотя, если честно, не вижу в чем сложность настроить тот же AMP посредством опенсервера? Исключение - модули подключаемые извне, типа композера, но и это же можно у себя локально развернуть, если иметь lock файл. Разве что, если есть что-то используемое в проекте и не поддерживается в окнах. А есть такое?
Было бы наверное неплохо в любом случае вместе с проектом иметь типа конфиг-файла со всем используемым в проекте.
Цитата |
А что за винда, седьмая? |
нет, win 10 Enterprise 2016 LTSB.
Для установки обычного докера не подошла версия, нужна более свежая. Пробовал через toolbox - не устанавился, а виртуализация я так понял - в контексте процессора. Он у меня действительно старый. Intel Core 2 Duo 7300.
Ну и раз не поддерживается виртуализация на уровне железа то и virtualbox не встанет в любом случае, я так понимаю...
За доку на гит отдельное спасибо)
Michael
13.04.2020 - 07:36
Цитата (phpforumone @ 12.04.2020 - 15:18) |
В этом случае, я так понимаю, что и остальные участники проекта должны работать в вагранте? Иначе откуда взяться конфигурациям для вагранта? |
Ну по логике, да.
Кто руководит проектом, тот настраивает это окружение, и все одним пользуются.
Но это не надо сейчас делать с нуля, полно примеров и сборок на гитхабе.
А в проектах на фреймворках, например, уже начальные эти настройки стоят, работает из коробки.
_____________
There never was a struggle in the soul of a good man that was not hard
killer8080
14.04.2020 - 15:24
Цитата (phpforumone @ 12.04.2020 - 17:18) |
Ну и раз не поддерживается виртуализация на уровне железа то и virtualbox не встанет в любом случае, я так понимаю... |
нет, отсутствие аппаратной виртуализации Virtualbox-у не помеха, будет работать.
phpforumone
20.04.2020 - 15:30
Цитата (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 и т.д. можно потом отдельно доустанавливать, сразу не обязательно это делать?
Файервол тоже - получается обязательно нужно указать порт,протокол?
-это я так понял настройка апача по умолчанию - это корень проекта? Непонятно почему по умолчанию он прописывается в корен системы, а не в домашний раздел.
Ну и вот это дальше:
Цитата |
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
21.04.2020 - 06:46
Цитата |
версия 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
22.04.2020 - 01:11
Цитата |
Вот подробная инструкция, коих много. |
Как ни странно, но я в т.ч. и этим ресурсом пользовался при установке LAMP ))
У меня вопрос по поводу корня сайта:
Где его правильно/логично размещать? Я так понял, что можно по умолчанию оставить в системном разделе в /var/www, а можно вынести в домашний раздел например. С одной стороны, я вижу, что вопросам разработки как-то не совсем место в системных папках, хотя опенсервер тоже стоял на винде в системном разделе и там же были рабочие "домены". При этом, нужно же будет дать права общего доступа для /var/www. Как это соотносится с таким чутким отношением линукса к безопасности с системном разделе?Или тут нет никакого криминала? Зачем сразу тогда при установке давать этим папкам права root? Я с этим еще не очень знаком, линукс пока только начинаю осваивать.
Цитата |
На практике будет все же нужен не apache, а nginx |
Зачем все с апача начинать тогда советуют? Он проще, но принципы те же?
Цитата |
Например ты кому то говоришь: подними себе lamp, вот тебе конфиги, и давай программировать |
Да вот кстати, еще и этот момент. Я вот уже с неделю в свободное время этим занимаюсь и пока что не очень понял прелести использования линукса) Все нужно установить вручную, настроить кучу всего и действительно далеко не факт, что все будет на 100% идентично конфигурации других разработчиков в проекте. По моим очень смутным представлениям как раз в унификации и в условном облегчении этого процесса может помочь докер? Хотя я так понял, что его освоение будет тоже не легким)) Но в любом случае, освоение командной строки, линукса в целом, хоть пока общее представление о LAMP, как об отдельных единицах и их настройках - будут не лишними и принесут свою пользу.
killer8080
22.04.2020 - 22:10
Цитата (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, как об отдельных единицах и их настройках - будут не лишними и принесут свою пользу. |
это однозначно ;)
Быстрый ответ:
Powered by dgreen