Автор будет благодарен, если вы зайдете, почитаете, прокомментируете и нажмете кнопочку соц.сетей.
Продолжение статьи о Digital Ocean. Первую часть вы можете найти на сайте рассылок или у меня.
Примечание: совершенно непонятной мне магией subscribe время от времени режет по строкам то что не нужно. Поэтому листинг кода, команды и прочее лучше брать с моего сайта. Я не знаю как это побороть )
Что теперь?
В качестве примера, покажу как быстро
развернуть на своем новом хостинге самый обычный LAMP c WordPress на борту. Напомню, что у DO есть готовые варианты, но цель этой статьи прежде всего показать как оно делается руками.
Жмем раздел “Droplets”, выбираем наш и тыкаем большую “Console Access”. Откроется черный экранчик в котором нас попросят ввести пароль (его должны прислать по почте). Вводите, только учтите что есть одно веселое свойство – при вводе пароля курсор не отображается, да и вообще
никаких признаков жизни. Тут такое в порядке вещей )
О консоли
Немного отвлечемся. Консоль пугает неподготовленный разум, но на самом деле ничего тут страшного нет. Немного разобравшись в вопросе вы поймете, что зайти на сервер через SSH и ввести пару команд гораздо быстрее, чем мыкаться по менюшкам очередной CPanel. Принцип тут
прост:
Далее будут команды с некоторыми пояснениями, можете их просто копировать, вставлять, жать enter и отвечать на вопросы согласно инструкции.
На будущее: сообщество убунтоводов огромно и подробно описано буквально всё. Скажем если вам внезапно понадобилось установить curl, так и пишите в гугл “ubuntu curl install”, ответ будет в первых же строчках.
С возникающими время от времени ошибками и ругательствами тоже самое – копируете их прямо в гугль и
читаете инструкцию по исправлению.
А ещё, Ubuntu – это не только командная строка, но и вполне реальный заменитель винды с очень даже приличным интерфейсом. Если вы всерьез задумались о веб-разработке, подумайте и о переезде на Linux. Ну или о виртуальной машине с убунтой )
Apache2 + PHP + MySQL
Итак, попадаем в консоль и пишем там (Ctrl-C, Ctrl-V должны работать. И с паролем тоже):
# Строки начинающиеся с решетки - комментарии. # Строчки вводить по очереди,
по мере выполнения. # На такие запросы: Do you want to continue [Y/n]? как правило нужно написать "y" и нажать enter.
# Обновляем систему до актуального состояния sudo apt-get update sudo apt-get upgrade
# Теперь ставим tasksel, но скорее всего он уже у вас есть. sudo apt-get install tasksel
# Ставим LAMP sudo tasksel install lamp-server
Появится некоторое подобие интерфейса с загрузкой компонентов. Ждем.
ОК, теперь он спросит у нас ” New password for the MySQL “root” user”, т.е. пароль для пользователя БД. Только не ленитесь – буквы, цифры и много-много знаков.
Установка закончилась, но нам нужно слегка допилить MySQL:
sudo mysql_secure_installation
Отвечаем на вопросы:
Enter current password for
root – вводите пароль от БД
Change the root password? пишите “n” – незачем нам его менять пока.
Remove anonymous users? y – не нужны нам анонимы
Disallow root login remotely? y – и внешний доступ к БД
Remove test database and access to it? y – да и тестовые базы
Reload privilege tables now? y – перезагружаем
PHPMyAdmin
Теперь самое время для PHPMyAdmin:
sudo apt-get install
phpmyadmin
Он спросит нас вебсервер – выбираете Apache2, затем пароль от БД и в конце пароль для себя. Тут просто жмете enter и он сам его придумает.
Проверяем: заходим на http://ваш-домен.com/phpmyadmin/, вводим логин/пароль БД – работает.
WordPress
В качестве примера установим “самый популярный блоговый движок” )
Примечание: в Ubuntu 14 корень сайта по умолчанию будет /var/www/html, в более ранних версиях /var/www.
#
Идем в корень нашего сайта cd /var/www/html #При желании можно осмотреться на тему чего тут лежит ls # И удалить index.html, он нам совершенно не к чему rm index.html # А теперь идем в /tmp, куда качаем всю времянку cd /tmp # Скачиваем WP wget http://wordpress.org/latest.tar.gz # И распаковываем архив tar xzvf latest.tar.gz # Теперь нам нужно слегка обновить PHP sudo apt-get install php5-gd libssh2-php # Кстати, установка либ под виндой
привела бы нас # в конфиги php что бы добавить туда-сюда нужные строчки. Тут оно само ) # Копируем WP в корневой каталог сайта sudo cp -r wordpress/* /var/www/html # И удаляем его из /tmp sudo rm -rf wordpress/ # Создаем каталог для загрузок mkdir /var/www/html/wp-content/uploads # Даем апачу права на каталог sudo chown -R www-data /var/www/html # Возможно понадобится установить разрешения sudo chmod -R 755 www-data /var/www
Итак, с
файлами мы разобрались, теперь идем в PHPMyAdmin и создаем там БД для WP. Это кстати можно сделать и в консоли, если вам вдруг понравилось чувствовать себя бородатым админом )
# Подключаемся к MySQL mysql -uroot -p12345
# Тут после -u сразу пишется пользователь, после -p - пароль. # Появляется новая строка приветствия в которую можно напрямую писать запросы CREATE DATABASE wordpress;
# Проверим SHOW DATABASES;
# В целях безопасности мы можем
создать своего пользователя для БД WP grant usage on *.* to username@localhost identified by ‘userpasswd’;
# username и userpasswd тут соответственно пользователь и пароль. # Даем нашему пользователю права на БД grant all privileges on wordpress.* to username@localhost;
# Выходим exit;
Теперь идем по адресу http://ваш-домен.com и устанавливаем WordPress как обычно.
И?
WordPress стоит и с ним уже можно работать, но что
мы сделали? По сути повторили самый обычный хостинг потратив на это кучу времени и сил? В целом оно так, но вы сделали это сами, один на один с консолью, а значит в состоянии развернуть и более взрослый сервер с nginx, php-fpm, git / composer, ruby, прочими крутыми вещами и очень скоро вас уже не испугает фраза из руководства Laravel:
Это кстати гораздо быстрее чем качать архивы, распаковывать, а потом куда-нибудь заливать.
Далее тема будет посерьезнее и потому в качестве затравки в следующем выпуске я расскажу о php-фреймворке Laravel. Он кстати запустится и на обычных хостингах, если там есть нормальный доступ по SSH. Ну а по сегодняшней теме - Ngnix (как более быстрый и удобный заменитель Apache), Passenger (что бы заработали Ruby с Rails, Node и прочие пайтоны)
и PHP-FPM. Говоря проще - более грамотная и оптимальная настройка.