Как брать срочные заказы на фриланс-бирже

На фриланс-биржах экстренные заказы встречаются нередко. В заголовках еще пишут слово СРОЧНО капслоком, а в описании "тут работы максимум на час". По большей части речь об ошибках на сервере, падении сайта и прочем непредвиденном ужасе. Но случается, что у людей подгорают крайние сроки. Приходится искать исполнителей в последний момент за двойную цену. И в этот момент, как поется в той песне, появляетесь вы, весь такой в белом и с вопросом, а в чем собственно дело.

Допустим вы пообещали заказчику, что быстро сделаете несколько правок интернет-магазина. Времени мало, поэтому заказчик просит не заморачиваться и тестировать изменения на работающем сайте. Это заманчивое предложение, оно кажется таким логичным и естественным в этой ситуации. Никогда так не делайте. Глубоко вздохните, скопируйте себе нужные файлы или создайте дочернюю тему. Работать и тестировать правки вы будете на своем компьютере, а не на работающем сайте заказчика. Это даже не правило, но скорее принцип или некая норма, отклонение от которой несет только тлен и разочарование.

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

Придумано много универсальных приспособлений и инструментов для развертывания рабочей среды. Одни выбирают Docker, вторые Vagrant, третьи устанавливают зависимости стандартным способом на отдельном компьютере. Тем не менее, в нашем случае важна скорость начала работы над задачей. Нужна такая волшебная коробочка, напоминающая шляпу фокусника, чтобы без лишних заклинаний доставать оттуда всякие необходимые в разработке плюшки. Раз плюшка, два плюшка, три плюшка и так далее. Когда мне нужно быстро достать плюшку... тьфу, когда нужно быстро что-либо затестить или запустить, то я выбираю Scotchbox.

Что внутри Scotchbox

Scotchbox - специальный vagrant box с Ubuntu и настроенным LAMP стеком. В этом ящичке лежат нужные инструменты, чтобы удовлетворить потребности веб-разработчика:

  • PHP 5.x или 7.x
  • Apache
  • MySQL
  • MongoDB
  • Ruby
  • Composer
  • NPM (Bower, Gulp, Yeoman, Browser-Sync)
  • Mailcatcher
  • Laravel и WordPress
  • Vim
  • Git
  • ... и много чего еще

Обычно у фрилансера в работе много проектов. Со временем нагромождение файлов и баз данных становится проблемой, если это дело не систематизировать. Технологии виртуализации создают отдельную среду разработки для каждого из проектов. Файлы и базы данных при таком подходе не пересекутся и не станут конфликтовать друг с другом. Vagrant позволяет переключатся между проектами за считанные секунды с помощью команд vagrant suspend и vagrant up.

Создать новую среду разработки очень легко. Нужно загрузить себе git репозиторий Scotchbox и запустить Vagrant:

git clone https://github.com/scotch-io/scotch-box my-project
cd my-project
vagrant up

Теперь директория public, которая находится внутри my-project, доступна по адресу http://192.168.33.10 в браузере. Смело складывайте в нее файлы проекта и начинайте работать.

Никаких танцев с бубном

  • Хотите запустить среду разработки с PHP 5 вместо PHP 7, но не хотите ковырять настройки и держать обе версии рядом? Возьмите и запустите предыдущую версию Scotchbox, в которой PHP 5 продолжает работать как часы. Версия 2.5 прописывается в Vagrantfile:
config.vm.box_version = "2.5"
  • Или может быть нужно быстро запустить старую версию интернет-магазина Prestashop? Скажем, нас интересует Prestashop ver. 1.6.1.15. Создадим рядом с Vagrantfile простенький скрипт bootstrap.sh со следующим содержимым:
#!/usr/bin/env bash

timezone=Europe/Chisinau  # Change it
version=1.6.1.15  # Set version

mkdir /var/www/public/tmp
cd /var/www/public/tmp
wget --progress=bar:force https://download.prestashop.com/download/old/prestashop_$version.zip
echo "Download Prestashop successfully!"

unzip -o prestashop_$version.zip -d /var/www/public > /dev/null
cd /var/www/public && rm -rf tmp *.html *.php
rsync -r prestashop/ .
echo "Unzip Prestashop successfully!"

mv admin adminprestashop
echo "Admin panel is available at http://192.168.33.10/adminprestashop"

echo "Install Prestashop"
php install/index_cli.php --timezone=$timezone --domain=192.168.33.10 --db_name=scotchbox --db_user=root --db_password=root --email=admin@admin.admin --password=password  --newsletter=0
echo "Prestashop $version installed"

echo "Remove installation folder and zip"
rm -rf install prestashop/
echo "Done"

echo "Now open http://192.168.33.10 or http://192.168.33.10/adminprestashop"
echo "Your login - admin@admin.admin and password - password"

Добавим в Vagrantfile две строчки - путь к нашему скрипту и номер версии Scotchbox с PHP 5 на борту (потому что заставить Prestashop 1.6 работать с PHP 7 задача непростая, а нам ведь нужно развернуть среду разработки очень быстро и без танцев с бубном):

config.vm.provision :shell, path: "bootstrap.sh"
config.vm.box_version = "2.5"
  • Понадобилось запустить фреймворк Laravel? Выполните команды по порядку, а после добавьте .vagrant в файл .gitignore:
git clone https://github.com/scotch-io/scotch-box laravel-project
cd laravel-project
vagrant up
vagrant ssh
cd /var/www
laravel new project # Patience, let it download and do its thing...
rm -rf README.md .gitignore public/ # Removing conflicting files
mv project/* project/.[^.]* . # Put Laravel files in right spot
rm -rf project # All done
  • Как быстро импортировать дамп базы данных? Положите ваш dump.sql в директорию со Scotchbox и добавьте в Vagrantfile строчки:
config.vm.provision "shell", inline: <<-SHELL
    mysql -u root -proot scotchbox < /var/www/dump.sql
SHELL

Затем запустите команду vagrant provision

Вместо итога

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

Еще больше примеров работы со Scotchbox вы найдете в документации проекта.

Комментариев:

Комментарии неавторизованных пользователей перед публикацией проходят премодерацию