Linux для php разработчика

Linux для начинающего разработчика или как навсегда забыть о Windows

Дисклеймер

Внимание, очень много букв! Предлагаю запастись попкорном и выделить время для данного мероприятия.

Пост предназначен в первую очередь для тех, кто занимается разработкой, но так же очень сильно поможет тем, кто пытался перейти на linux, но из-за каких бы то ни было непонятных вещей и трудностей плюнул и сказал: «Да ну нафиг этот линукс, еще возиться с ним буду».

В статье рассматривается установка Ubuntu 16.04 и настройка оной исключительно для работы.

Предыстория

Ранее уже были предприняты попытки перекатиться на linux, но из-за своей чрезмерной привязанности к продукту компании Microsoft, миграция в который раз откладывалась в «долгий ящик».

Так же меня всегда останавливало большое количество вопросов, на которые я не смог найти ответы, проблемы, ошибки и.т.д.
Но после того, как я заинтересовался и начал изучение Node.js, один товарищ меня все же подбил на переезд под предлогом того, что работать в linux будет удобнее. И вот, после нескольких неудачных попыток установки и некоторого времени использования Ubuntu в качестве основной ОС, я удалили драгоценную винду и навсегда забыл о ней. Ничуть об этом не жалею.

Приступаем к установке

Первое что нам надо сделать — записать загрузочную флешку или диск. Дистрибутив Ubuntu 16.04 весит всего 1.4 гб, поэтому лучше всего нам подойдет флешка. Скачиваем программу Unetbootin -> unetbootin.github.io.

Тут все довольно просто. Ставим «Образ диска», выбираем .iso файл, который мы скачали, выбираем носитель и нажимаем ОК. Запись не заставит себя долго ждать.

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

Чтобы все же завести флешку, пробуем загрузится с нее в UEFI режиме. Но позже, нас спросят, хотим ли мы продолжить установку в UEFI режиме. В случае если ваше решение перейти на linux является окончательным, то можете ответить утвердительно. Если же у вас есть необходимость загружаться в других ОС, то нажимаем «вернуться» (ума не приложу, почему именно так обозвали эту кнопку). Сама установка не должна вызывать каких-либо трудностей. Выбираем свой язык, и двигаемся дальше. Рекомендую в следующем окне поставить галочки:

В следующем окне выбираем пункт: «Другой вариант».

Далее нам нужно разметить диск. Если у вас 2 жестких диска и один из них не используется и на нем нет никаких данных, то просто выбираем его и нажимаем -> «Создать новую таблицу разделов».

У нас появится «свободное место», на него мы так же нажимаем и создаем первый раздел.

Размер root раздела может составлять и 4гб, но рекомендую поставить 40-50, чтобы имелся запас.
Тип — первичный
Местоположение — на всех разделах должно стоять «Начало этого пространства»
Использование — Ext4
Точка монтирования — » / «

Размер = размеру вашей оперативной памяти
Использование — раздел подкачки
Данный раздел играет роль резервной «оперативной» памяти, хранящейся на нашем жестком диске.

Размер = все оставшееся пространство
Тип — логический
точка монтирования — » /home «

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

Настройка системы, оформление, подгонка под особенности железа

После установки мы конечно же перезагружаемся в нашу теперешнюю ОС, логинимся. Заходим в параметры системы -> программы и обновления, в первой вкладке выставляем галочки таким образом:

Сразу же выполним некоторые команды:

sudo означает выполнение с правами администратора

После первой же команды у вас попросят пароль, который вы придумали на этапе установки. Не пугайтесь, если вы вводите пароль, а буквы не отображаются — это такая мера безопасности. Если спросит про установку пакетов и приветливо будет мигать курсором — смело пишем Y и нажимаем Enter. Так что же мы только что сделали сей командой? Мы дали команду пакетному менеджеру «apt» обновить список доступных пакетов и установить их. Принцип работы основывается на GIT, вы включаете репозитории, обновляете их, устанавливаете обновления.Это дает нам преимущество — у нас всегда все самое свежее. Список репозиториев лежит в /etc/apt/sources.list, но нам это вряд ли понадобится.

Обновление завершено — перезагружаемся, хоть и в linux это обычно не требуется, но возможно обновилось ядро и данную операцию все же следует провести. Вообще если после update вы видите строчки подобного содержания:

значит обновление затрагивает наше ядро и перезагрузка обязательна.

«Железные» проблемы

Лично у меня сразу возникла проблема с мышкой. Использую игровую мышь с чувствительностью 3800DPI. Естественно, она металась по всему монитору от малейшего передвижения. И проблема с отображением мониторов. У меня стоят 2х 17inch с соотношением 4:3. Один монитор у подключен в мат.плату, а второй — в видеокарту от AMD. С первым все было хорошо, а вот тот что на встроенной графике — затухал сразу же после входа в систему. На ум пришло написать скрипт в автозагрузку для замедления мышки и переопределения мониторов (может кому пригодится).

Читайте также:  Картриджи на куосера м5521cdw

Решение проблемы с слишком шустрой мышкой

В консоли вводим xinput и видим список подключенных устройств. Находим свою мышь и переписываем ее ID. На моей мышке вводим команду xinput list-props ’11’. Перед нами опять появляется список, но уже с набором опций, нам нужна Device Accel Constant Deceleration, смотрим ее ID (в скобочках). У меня оно равно 274. Теперь, зная id мышки и id, мы пишем следующее:

В домашнем каталоге создаем файл start.sh и открываем его, где последняя цифра (2) означает во сколько раз надо замедлить мышь. Данную команду можем сразу внести в наш скрипт.ё

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

Решение проблемы с некорректно отображаемыми мониторами

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

Но у меня при выставленном в БИОС приоритете встроенной графики, после входа второй монитор выключался и оставался тот, что подключен к видеокарте. Что примечательно — после пробуждения из спящего режима, второй снова оживал и работал нормально. Смотрим нумерацию мониторов, здесь на главном мониторе стоит метка «Primary».

Согласно номерам, выставляем как будут располагаться мониторы. Дописываем в наш скрипт:

Теперь пришло время прописать скрипт в автозагрузку, открываем меню dash (клавиша WIN) и вводим в поиске:

«Автоматически запускаемые приложения». Нажимаем добавить, вписываем имя (не важно какое, главное чтобы вам был понятен смысл назначения этого элемента), описание оставляем пустым. Теперь в поле «команда» вводим следующее:

Этим самым мы отдаем команду на запуск скрипта. Путь у вас может быть любой другой. Сохраняем и при следующей перезагрузке проверяем работоспособность.

Если все же проблема с мониторами остается — попробуйте поколдовать с их расположением и приоритетом вывода видео в БИОС
Касательно драйверов — я не стал ставить поскольку все и без них работает хорошо, в случае с AMD установка драйверов может вызвать крах системы.

Настройка системы и установка программ

Добавление шрифтов windows

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

После перезагрузки браузера шрифты должны отображаться правильно. Если есть желание — вы можете выставить какой-либо из них как системный (в настройках или ubuntu tweak tool). Рекомендую зайти в ubuntu tweak и во вкладке «шрифты» выставить:

Софт из уже включенных репозиториев

Программы которые уже включены в репозиторий партнеров canonical вы можете установить следующим образом:

Пакет программ, которыми пользуюсь я:

1. skype
2. ssh (для подключения и удаленного управления машиной)
3. unity-tweak-tool (Тонкая настройка оболочки unity)
4. ubuntu-tweak-tool (Расширенные настройки системы)
5. inkscape (Редактор векторной графики)
6. gimp (Использую вместо фотошопа)
7. clementine (Аудиопроигрыватель)
8. mc (файловый менеджер для терминала)
9. vlc (видеопроигрыватель, со множеством кодеков)
10. filezilla (ftp клиент)

Установка стороннего ПО

Чтобы установить стороннее ПО нам придется добавлять репозитории в систему.

Качаем с официального сайта пакет, открываем его, в менеджере нажимаем «install».
Для просмотра видео, требуется flash, установим его.

Мне нравится работать в «скобках», очень приятная и удобная вещь:

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

После установки запускам unity tweak tool. Тему выставляем «Numix», значки так же «Numix». По душе темные темы? Запускаем ubuntu tweak tool и во вкладке «внешний вид» ставим «Применить темную тему глобально». Пока не вышли из ubuntu tweak, лучше прописать в автозагрузку skype и telegram.

Финальным штрихом установим LAMP сервер (Linux apache mysql php) и phpmyadmin:

Пробуем зайти по адресу localhost. Если все в порядке, то двигаемся дальше. Открываем конфигурационный файл apache:

Находим там теги в них прописана информация о местоположении файлов нашего сервера, после последнего пишем такую конструкцию:

AllowOverride All
Require all granted

Путь можете указать какой вам удобно. В конце конфигурационного файла прописываем:

ServerName localhost

Внимание! Ниже описанные операции придется проделывать каждый раз при добавлении нового виртуального хоста!

Для добавления новых виртуальных хостов проделываем следующее. Создаем папку в директории /home/user/public_html/test, открываем /etc/hosts и в первую строку оного добавляем имя нашего сайта:

Далее выполним в терминале:

Тем самым мы скопировали дефолтный конфигурационный файл для нашего сайта, открываем его:

и вместо example.com впишем свое название. Далее подправим DocumentRoot который указывает на местоположение файлов нашего сайта, прописываем вместо стандартного /var/www — /home/user/public_html/test.

Теперь мы можем включить наш сайт:

Вот и все. Базовая настройка завершена, можно пользоваться!

Не бойтесь искать в интернете, если вам что-то необходимо установить и настроить! Он не кусается. В данной статье я постарался изложить как можно подробнее процесс базовой настройки Ubuntu 16.04. Уверен, что после недели использования ubuntu в качестве основной ОС вы уже вряд ли вернетесь обратно.

Источник

Linux для веб-разработчика. Установка debian, nginx, php-fpm, mysql, nodejs, open-ssl, настройка программ и утилит

Linux — отличная система для веб-разработки. Она хорошо настраивается, требует меньше ресурсов и многие вещи сделать проще, чем в Windows. Но что делать, если мы не хотим отказываться от привычных нам окошек, программ, утилит, которые предоставляет хорошо знакомая Windows? Можно поставить виртуальную машину с Linux на борту, установить все нужные программы, настроить окружение в Windows для работы с виртуалкой через sftp и работать, слушая при этом музыку через привычный аудиопрогрыватель. В статье показано, как можно настроить работу для тех, кто мало знаком с Linux и все еще думает, что это сложно и непонятно.

Читайте также:  Как загрузить linux через grub

Общая схема работы.

Наша работа будет построена так: основная ОС — Windows, на ней виртуальная машина, в которой установлена Linux Debian 8. В Debian развернуто окружение для веб-разработки: nginx, php, mysql, nodejs. Никакого графического интерфейса, он нам не понадобится, только терминал. В Windows — ssh-клиент, sftp-клиент и настроен редактор кода для работы. Далее описываю всю схему более подробно. Примеры приведены для Windows 7 и Linux Debian 8.

Установка VirtualBox и Linux Debian 8

Дистрибутив debian скачиваем с официального сайта здесь — https://www.debian.org/distrib/, VirtualBox здесь — https://www.virtualbox.org/. Дальше нужно создать новую виртуальную машину и установить на нее debian. Не буду расписывать подробно, только основные моменты, которые использовал у себя:

  1. 1. Название — debian 8.
  2. 2. Жесткий диск .vdmk
  3. 3. Оперативная память — 1024 Мб
  4. 4. Система — предел загрузки цпу — 90%
  5. 5. Носители — добавить привод оптических дисков — выбираем наш образ
  6. 6. Сеть — тип подключения Сетевой мост

При установке debian выбираем пункт Install (просто Install). Установка самая обычная, затруднений быть не должно, большинство параметров оставляем по умолчанию. Создается суперпользователь root, для него создаем пароль (я задал root для удобства), и во время установки предлагается создать еще одного пользователя, назовем его developer.

Вот два пункта, которые я поменял за время установки

  • 1. зеркало архива debian — поставил mirror.yandex.ru
  • 2. Выбор ПО — снимаем все галки (все, что нам нужно, мы поставим сами)

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

Установка ssh-сервера на debian и ssh-клиента Putty в Windows

На самом деле установка Putty и работа с ним не обязательная часть. В виртуальной машине вполне можно работать и через консоль самой debian. Но Putty просто удобнее — это обычное Windows-приложение, мы можем в нем хранить настройки нескольких подключений, копировать команды из браузера и вставлять их в окно терминала и прочее.

Заходим в окно виртуальной машины и в терминале набираем команду su, вводим пароль root и готовимся установить openssh-сервер. Я пользуюсь aptitude («менеджер пакетов» в debian) вместо стандартного apt-get, поэтому сначала можно установить его а уже потом ssh-сервер

Все! Теперь, чтобы подключаться к терминалу debian из Windows, нам нужно знать только ip-адрес, присвоенный нашей системе. Набираем команду ifconfig и среди кучи строк ищем айпи, у меня, например, оказался 192.168.0.31. Дальше в настройках буду использовать его для примера. Теперь нам нужно скачать Putty здесь — http://www.putty.org/

Запустить его и создать новое подключение:

  • 1. Host Name or IP address — 192.168.0.31
  • 2. port — 22 (по умолчанию)
  • 3. Saved Sessions — debian 8
  • 4. Жмем кнопку Save
  • 5. Жмем Open
  • 6. В окошке «putty security alert» жмем «Yes»

Если все сделали правильно, откроется терминал с приглашением ввести имя пользователя и пароль. Больше окно debian в VirtualBox нам не понадобится.

Установка WinSCP и sftp net drive

WinSCP — это удобный файл-менеджер для работы по sftp, похож на Total Commander.
Качаем его здесь — https://winscp.net/eng/download.php

Создаем новое подключение с настройками:

  • 1. Имя хоста — 192.168.0.31
  • 2. Порт — 22
  • 3. Имя пользователя — root
  • 4. Пароль — root/li>
  • 5. Жмем Сохранить
  • 6. В ответ на запрос «Продолжить подключение к внешнему серверу и добавить ключ в кэш?» — жмем да
  • 7. И наконец Войти

Чтобы можно было работать с файлами debian из привычного редактора, нужно установить sftp-драйвер.
Качаем здесь — https://www.nsoftware.com/netdrive/sftp/
В настройках вводим наш айпишник и запускаем. При этом у нас появится еще один диск, это и есть наша debian. Если при открытии мы попадаем в папку home и не можем подняться выше, нужно в настройках указать root directory «root folder on the Server — servers’s root folder» Теперь мы можем работать с файлами debian в любом редакторе кода.

Установка nginx, php-fpm, настройка конфига nginx и запуск первого сайта

Все, что мы делали до этого было подготовкой к самому интересному — непосредственному разворачиванию веб-сервера и php в debian. Установка выполняется двумя командами Все! Можно приступать к созданию нашего первого сайта в debian.

Небольшое отступление. Прежде чем запускать первый сайт, рекомендую установить тестовый редактор nano и замечательную программу tmux — что-то вроде оконного терминала. Дело в том, что можно вполне обойтись без них, файлы править в том же WinSCP, но, во-первых, иногда гораздо удобнее и быстрее сделать мелкие правки файлов прямо в консоли, а во-вторых, с самого начала привыкая работать в консоли linux, Вы сэкономите кучу времени в дальнейшем. Возможно, когда-то Вам придется работать с удаленными серверами, где будет только доступ по ssh и ничего больше. И скорее всего, этот момент наступит гораздо раньше, чем Вы предполагали. Подробности про nano и tmux расписывать не буду, легко гуглиться. Устанавливаются они так:

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

ВНИМАНИЕ: все дальнейшие операции в папке developer выполняются из пользователя developer, настройки конфигов nginx, php и прочих — от root-a. Желательно всегда работать под пользователем developer, а в root переключаться только для правки конфигов. В этой статье нам придется часто переключаться между пользователями, поэтому следите внимательно, с какими файлами Вы работаете. su переключает нас к пользователю root, su developer — к developer. Также для удобства можно завести 2 подключения в WinSCP — одно — от root-a, как мы и сделали, второе — от developer.

Читайте также:  Как подключить принтер ксерокс 3020 к ноутбуку

Для проектов создадим папку /home/developer/www, для логов — /home/developer/logs. В папке www создадим папку test.lc, а ней файл index.php с содержимым Все это делаем от имени developer.

Теперь нужно настроить конфиг виртуального хоста в nginx, подправить php.ini и запустить проект в браузере под Windows. Приступим (теперь делаем все от root-a) — создаем конфиг нового виртуального хоста и добавляем в него Уточняю — не стоит использовать этот конфиг в боевых условиях, он приведен только для примера разработки. Правильной настройкой конфигов nginx стоит заниматься специалистам в этой области 🙂

После этого нужно пофиксить cgi.fix_pathinfo=0 в файлике /etc/php5/fpm/php.ini и перезапустить nginx После этого в файле hosts в Windows добавляем строчку 192.168.0.31 test.lc и вводим в браузере http://test.lc/. Если все сделали правильно, то увидим строку «Hello, Debian 8» — все работает!

Установка и настройка Mysql

Следующим пунктом мы установим Mysql и подключимся к базе из нашего приложения. Зададим пароль для root — по привычке тоже root. Дальше мы создадим тестовую базу данных с одной табличкой, заполним ее данными и выведем в браузере ее содержимое.

Шаг 1. Создаем тестовую базу

Шаг 2. Создаем таблицу товаров (это одна команда)

Шаг 3. Заполняем таблицу данными

Шаг 4. Проверяем, что данных вставились успешно

Шаг 5. Выводим таблицу товаров на сайте. Для этого нужно заменить содержимое index.php следующим кодом

После всех этих действий обновляем страницу браузера и видим список наших товаров.

P.S. Хорошим тоном также считается создание новых пользователей Mysql под каждый проект, но для простоты и уменьшения кода мы этого не делали. На реальных проектах работать с базой от root-a не стоит, нужно создать отдельного пользователя с ограниченными правами.

Установка и настройка dbForge Studio for Mysql

Работать с Mysql через командную строку не очень-то удобно. Интереснее использовать клиент для работы с базой, например, phpmyadmin или workbench. Я покажу, как настроить работу с базой на примере dbForge, настройки для подключения к удаленной базе в других клиентах будут аналогичными. Скачать dbForge можно здесь — https://www.devart.com/ru/dbforge/mysql/studio/download.html
Для скачивания нужно только зарегистрироваться (бесплатно). После установки dbForge нужно создать новое подключение с такими настройками. Вкладка общие:

  • 1. Название — debian8
  • 2. хост — 127.0.0.1
  • 3. порт — 3306
  • 4. имя — root
  • 5. пароль — root
  • 6. Галочка «Сохранять пароль»

Вкладка безопасность

  • 1. Использовать протокол ssh
  • 2. Аутентификация с помощью пароля
  • 3. Хост — 192.168.0.31
  • 4. Порт — 22
  • 5. Пользователь — root
  • 6. Пароль — root
  • 7. Сохранять пароль

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

Установка и настройка nodejs

И последним пунктом статьи будет описание настройки nodejs и запуск тестового проекта. Общая схема будет такой же, как и с php, поэтому описываю только основные моменты.

Шаг 1. Установка nodejs Проверяем установку командой node —version — смотрим версию nodejs.

Шаг 2. Создаем конфиг для нового хоста

Шаг 3. Тестовый проект.
Создаем папку /home/developer/www/test_node.lc. В папке создаем файл server.js с содержимым

Шаг 4. Запуск в debian.
Перезапускаем nginx и запускаем наш сервер.

Шаг 5. Проверка в Windows. В файле hosts добавляем строчку
192.168.0.31 test_node.lc
В браузере открываем http://test_node.lc/
Если все сделано правильно, то увидим приветствие «Hello World on port 3000». Все работает.

Установка git

А на эту тему написана отдельная статья — Как установить git в Linux

Вместо заключения

В этой статье мы кратко рассмотрели установку и настройку такой схемы веб-разработки, где непосредственно приложение работает в Linux, а доступ к этому приложению мы получаем из Windows. Возможно, у кого-то возникает вопрос: а зачем все это нужно? Ведь можно намного быстрее и проще настроить в самой винде, поставить денвер или OpenServer и не заморачиваться так. Или сразу перейти на Linux и не придумывать схемы работы с двумя ОС. Конечно, вопрос о том, как организовать свою работу, субъективный, это дело привычки и удобства. Но для себя я выделил несколько пунктов, почему стал работать именно так.

  • 1. Нежелание полностью отказываться от Windows, от ее привычных программ, проигрывателей, кнопки Пуск, привычных настроек и драйверов, игр, в конце-концов
  • 2. Неготовность переходить на Linux, ставить ее в качестве основной ОС. Перепробовал несколько дистрибутивов Linux, ни один не показался настолько удобным, как Windows 7.
  • 3. Удобство установки и настройки нужных программ в Linux
  • 4. Только командная строка, никакого графического интерфейса. Рано или поздно придется столкнуться с командной строкой на боевых сайтах, где не получится настроить GUI. К тому же, освоив командную строку Linux, будет легко работать, например, в терминале MacOS.
  • 5. Отказ от «комплектов» вроде денвера и установка всего руками, чтобы лучше понимать, что и как работает и настраивается
  • 6. Скорость работы Linux и отсутствие необходимости устанавливать в основной ОС программы и сервисы для работы.

Источник

КомпСовет