С недавнего времени я начал использовать в качестве основной операционной системы Ubuntu, оставив старый Win 7 второй системой для игр. Я любитель менять свои машины для написания кода, поэтому мне часто приходится деплоить всё необходимое разработки, включая сервер, на очередной новой машине. Дошло до такого, что у меня со временем возникла идея написать bash скрипт, который будет содержать команды по установке всего необходимого, но руки все еще до дела не дошли.

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

Что конкретно я считаю нужным для PHP разработки на Ubuntu:

1) JDK для установки жизненно необходимого софта
2) Установка PHPStorm
3) Установка и настройка веб-сервера
4) Установка Git и настройка SSH
5) Установка и настройка Composer"

Когда я первый раз сел за Ubuntu, изучив базовые команды для терминала, я начал разбираться: как же мне работать дальше? И, будучи новичком, я практически на каждом этапе натыкался на ту или иную проблему. Благо решение на все давно уже таилось в Google, но порой, чтобы найти его, мне требовались хорошие знания английского языка. Задача данного поста так же разобрать те или иные проблемы, которые могут возникнуть при установке вышеописанного. В конце я добавлю немного вкусностей, которые мне попадались за последнее время.

1. Установка JDK

Ну тут всё просто и делается одной командой:

$ sudo apt-get install default-jdk

2. Скачиваем и устанавливаем PHPStorm

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

Для начала нам требуется — скачать архив с официального сайта. Это можно сделать вручную по ссылке, либо скачать через терминал последнюю на данный момент версию:

$ wget https://download.jetbrains.com/webide/PhpStorm-9.0.2.tar.gz

Далее распоковываем его и открываем папку bin в терминале:

$ tar -xvf PhpStorm-*.tar.gz
$ cd PhpStorm-*
$ cd bin
$ sudo chmod +x phpstorm.sh
$ sudo ./phpstorm.sh

Первая команда здесь распаковывает архив с PHPStorm по регулярному выражению «PhpStorm-*» — звездочкой в конце мы сообщаем системе, чтобы она распаковала нам архив, имя которого соответствует данному регулярному выражению, т.е. подойдут такие имена как:

PhpStorm-8.0.3.tar.gz
PhpStorm-9.0.2.tar.gz
PhpStorm-10.0.1.tar.gz

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

Вторая и последующая команда заходит в распакованную папку и далее — в дерикторию bin, где хранится sh файл для установки PHPStorm. Далее, четвертой командой мы делаем файл исполняемым. И уже последняя команда запускает графический интерфейс установки IDE на ваш компьютер.

Следующей проблемой, которая мало где затрагивалась и поднималась — возможность запускать IDE с панели, чтобы постоянно не запускать phpstorm.sh. Для этого, как оказалось, нужно сделать следующее:

1. Переходим в окно с PHPStorm и нажимаем на вкладку Tools
2. Далее нажимаем на вкладку Create Desktop Entry
3. Радуемся в дальнейшем

3.Установка и настройка веб-сервера

Очень прост в установке оказался Lamp-Server:

$ sudo apt-get install tasksel
$ sudo tasksel install lamp-server

Далее очень важный момент, дабы избавиться от белого экрана смерти, включаем ошибки в PHP.ini. Найти его в вашей системе можно будет таким образом:

$ locate php.ini

Далее открываем его в одном из редакторов на свой вкус и меняем следующие директивы:

display_errors = On
display_startup_errors = On
html_errors = On

4. Установка Git и настройка SSH

$ sudo apt-get install git
$ ssh-keygen

Первая команда установит нам Git, а вторая сгенерирует публичный и приватный ssh-ключи, которые будут доступны из директории ~/.ssh в дальнейшем.

Ну тут в приниципе ничего подводного из камней нету, за исключением одного нюанса, с которым я столкнулся, но это все произошло исключительно из-за моей невнимательности при генерировании ключа:

$ sudo ssh-keygen

Если внимательно посмотреть, то можно догадаться, что ключ будет сгенерирован в директории /root/.ssh и, следовательно, все команды, которые связаны с SSH в дальнейшем должны будут выполняться через root — это не очень удобно. А если выполнять без прав суперпользователя, то у нас уже не будет нужного ssh ключа и, разумеется, настроения тоже.

5. Установка и настройка Composer

Установка менеджера зависимостей производится достаточно просто:

$ curl -sS https://getcomposer.org/installer | php

Но тут я бы хотел обратить ваше внимание на одну очень удобную вещь:

$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Теперь нам не нужно всегда устанавливать в нужную директорию новых проектов Composer первой командой, ибо он теперь доступен из глобали:

$ composer install
...

Теперь, как и обещал, расскажу про вкусности, которые я недавно для себя открыл:

1. TheFuck

Данная программа позволяет всего лишь одной командой исправить ошибку из предыдущей команды, что избавляет нас от ручного исправления. Иногда я часто путаюсь в наборе команд, пропуская ту или иную букву. На помощь мне приходит TheFuck, как бы то странно не звучало. Рассмотрим конкретные случаи:

$ sudo apt-get instal phpmyadmin
E: Invalid operation instal

Здесь допущена ошибка — «instal», разумеется команда не выполнится и в консоль выдаст ошибку.
Не расстраиваемся и, не возвращаясь к предыдущей команде, чтобы исправить и выполнить её вновь, просто пишем:

$ fuck

Он тут же предложит нам правильный вариант и нам останется только нажать Enter.

Установка:

git clone git@github.com:nvbn/thefuck.git
cd the fuck
sudo chmod +x install.sh
./install.sh

2.Возможности X.ORG для масштабирования экрана

Еще одним очень интересным открытием для меня было масштабирование экрана через X.org. Это очень помогало мне следить «одновременно» за такими вещами как:

1) SSH консоль мастер сервера
2) IDE
3) Окно браузера

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

$ xrandr --output eDP1 --panning 1920x1080 --scale 1.405x1.405

Разумеется, задействовать FullHD не получится, но все же штука достаточно прикольная

Если у вас вышла примерно такая ситуация, что показана ниже:

$ xrandr --output eDP1 --panning 1920x1080 --scale 1.405x1.405
warning: output eDP1 not found; ignoring

Тогда попробуйте использовать eDP, а не eDP1, скорее всего проблема решится.

$ xrandr --output eDP --panning 1920x1080 --scale 1.405x1.405

Вернуть все в прежний режим можно командой:

$ xrandr --output eDP1 --panning 1366x168 --scale 1x1

Комментарии (10)


  1. EvilBeaver
    23.10.2015 11:19
    +1

    А еще есть уже готовые docker-машины на любой вкус


    1. romy4
      23.10.2015 11:52
      -2

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


      1. EvilBeaver
        23.10.2015 13:51

        В docker тоже есть что попонимать.


        1. Delphinum
          23.10.2015 13:55

          Для того, чтобы начать пользоваться Docker нужно узнать, что такое Bash, SSH, Git, возможно rsync (еси речь о Windows), а узнать об этом можно только попробовав все вне Docker.


          1. EvilBeaver
            23.10.2015 15:06

            ну вот же. А romy4 говорит «для домохозяек»…


  1. Delphinum
    23.10.2015 13:52

    Дошло до такого, что у меня со временем возникла идея написать bash скрипт, который будет содержать команды по установке всего необходимого, но руки все еще до дела не дошли

    Берете весь Bash из статьи, копируете в файл, добавляете права, тестируете — получаете ваш скрипт.


  1. Old_Chroft
    23.10.2015 13:58
    +2

    Ну о**еть… Еще один ПРЕВОЗМОГ поиск в гугле и Quick Start из доков.


    1. EvilBeaver
      23.10.2015 15:08

      Ну хоть не

      apt-get install lamp-server
      


      1. Dreyk
        23.10.2015 15:22

        $ sudo apt-get instal lamp-server
        E: Invalid operation instal
        $ fuck
        


  1. Dead_Angel
    23.10.2015 16:04

    Кто и зачем отбирает эти посты? Еще и инвайты раздают. На хабре за последнее время участилось число «мега» постов, которые сводятся к одному, просто перевод документации, причем не всегда правильный перевод