Создание сайтов в Челябинске. Продвижение. Оптимизация

Разработка сайтов, поисковая оптимизация, продвижение, техническая поддержка и обслуживание вебсайтов любой сложности. Быстро, качественно и по разумной цене.

Настройка VPS (Debian 8 jessie) под Joomla за 10 шагов

Статья для новичков, но все будем делать через консоль, не будем использовать панели — это не круто, долго и не удобно.

Покупка хостинга

Для начала выбираем хостинг вот тут. У рег.ру нормальные цены может чуть-чуть выше чем обычно, но бесплатный сыр бывает только в мышеловке, более 5 лет пользуюсь их услугами пока все устраивает. Поэтому не стоит экономить на самом главном

Для старта хватит SSD-VPS-2 или 3, если зарегистрировать на 1 год то будет выгоднее (300-500 рублей в месяц за хостинг это нормально) с грамотной настройкой все будет летать

Регистрируемся и оформаляем себе хостинг, обязательно выбирайте дистрибутив Debian 8 (x64)

Жмем продолжить и на следующей странице снимаем все галки, нам не нужны никакие панельки — это то на чем стоит сэкономить!

Вводим свои данные для регистрации

Оплачиваем и ждем. Через несколько минут придет уведомление на почту и в личном кабинете вы сможете увидеть информацию о том, что ваш новый сервер готов к использованию.

Под Mac OS и Linux никаких дополнительных настроек системы не потребуется, а для счастливчиков с Windows придется скачать консоль отдельно. Для пользователей Windows могу порекомендовать Putty ну или установить Linux =) Если нужна отдельная статья по настройки под windows пишите в комментариях я уделю время и напишу

Консоль сервера

Запускаем terminal

1. Подключаемся к серверу по SSH

ssh Этот адрес электронной почты защищен от спам-ботов. У вас должен быть включен JavaScript для просмотра. // IP тут указываете свой после значка @

Are you sure you want to continue connecting (yes/no)? Соглашаемся вводом yes и нажатием Enter.

После ввода пароля мы увидим приглашение в командную строку сервера

root@134-0-116-35:~#

2. Обновление ПО сервера

apt-get update

Ждем пока загрузится инфа о пакетах

apt-get upgrade

Видим пакеты которые будут обновлены и на вопрос хотим ли обновиться отвечаем Y или просто жмем Enter и ждем…

3. Устанавливаем NGINX (забудем про Apache)

apt-get install nginx-full

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


4. Установка MySQL для нашей базы данных

apt-get install mysql-server mysql-client

Откроется диалог конфигуратора (Configuring mysql-server-5.5) туда надо ввести ROOT пароль от нашего сервера баз данных (нужно придумать что-то сложное символов в 20, лучше воспользоваться генератором паролей)

Что-то типа такого:

  • SY3vGsk0fqJSMEsCVCes
  • MLIurt9GCefratmzW9Cz
  • LPqDC4Onog47pfUVca6g
  • dEqQyvMPe5cY36WAN3lY
  • WfTJisgpMRBn70w5hALA

Сохраните этот пароль в надежное место и постарайтесь не потерять!


5. Как посмотреть работает ли только что установленный MySQL сервер?

Подключаемся к нему консольным клиентом

mysql -u root -p

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

Посмотрим какие базы есть сейчас (эти команды вводятся в командной строке MySQL сервера)

SHOW DATABASES;

там будет 3 служебных БД

, создадим еще одну


CREATE DATABASE joomla_db;


Создадим нового пользователя с одним из наших паролей


CREATE USER 'joomla_db_user'@'localhost' IDENTIFIED BY 'WfTJisgpMRBn70w5hALA';

И разрешим ему командовать нашей базой, но только для сайта (ту что мы только что создали)


GRANT ALL PRIVILEGES ON joomla_db . * TO 'joomla_db_user'@'localhost';


Обновляем привилегии


FLUSH PRIVILEGES;

Выходим из консоли MySQL сервера

quit

6. Проверяем

mysql -u joomla_db_user -p

вводим пароль пользователя с прошлого шага, root пароль здесь уже не нужен




в консоли MySQL сервера вводим

SHOW DATABASES;


и видим нашу базу joomla_db и служебную information_schema

Выходим из консоли MySQL сервера

quit

7. Установка PHP 7

Я буду устанавливать его из репозитория dotdeb там есть версия 7.0.19 на момент написания статьи, есть репозиторий и с 7.1.3. Ну или можно собрать свой самый свежий с нужным набором модулей, но это тема отдельной статьи.

echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list


echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list


apt-get update && apt-get install php7.0-fpm

Возможно выползет ошибка с верификацией пакетов, ее мы обойдем набрав вот такую команду:

apt-key adv --recv-keys --keyserver keyserver.ubuntu.com E9C74FEEA2098A6E

после чего еще раз выполним установку



apt-get update && apt-get install php7.0-fpm

PHP 7 будем использовать в режиме FPM т.е. для работы с NGINX нужен менеджер процессов, который есть в комплекте

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

php -v

Но для работы Joomla нам понадобятся еще модули для php, а именно:

apt-get install php7.0-mysql php7.0-mbstring php7.0-mcrypt php7.0-zip php7.0-bz2 php7.0-gd php7.0-xml


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

Проверить модули можно с помощью команды:

php -m

Чтобы php-fpm узнал о новых модулях надо его перезапустить

systemctl restart php7.0-fpm


8. Конфигурируем NGINX

Теперь нам нужно указать веб серверу где будут лежать файлы нашего сайта обычно это /var/www/html

Но мы создадим отдельную папку под наш сайт

mkdir /var/www/joomla


Я сохранил снипет конфига в репозиторий чтобы удобнее было скачать его https://gitlab.s74.org/snippets/12/raw


Установим curl (для скачивания файлов) и скачаем конфиг

apt-get install curl

curl https://gitlab.s74.org/snippets/12/raw > /etc/nginx/sites-available/joomla.conf


Потом сделаем символическую ссылку на конфиг чтобы nginx начал его использовать

ln -s /etc/nginx/sites-available/joomla.conf /etc/nginx/sites-enabled/joomla.conf

Проверим все ли устраивает nginx

nginx -t


Скорее всего нет потому что у него остался пример конфига, который конфликтует с нашим. Удалим его
!

rm /etc/nginx/sites-available/default


Создадим тестовый файлик в корне сайта

echo "<?php phpinfo()" > /var/www/joomla/index.php

Теперь можно перейти в браузер и по нашему IP должна отобразиться информация о PHP

9. Установка Joomla

Переходим в папку /var/www/joomla

cd /var/www/joomla

Вот за что я люблю консоль в Линуксе.


curl -sL https://github.com/joomla/joomla-cms/releases/download/3.7.2/Joomla_3.7.2-Stable-Full_Package.tar.gz | tar zxv

Одна команда скачивает Joomla 3.7.2 и распаковывает ее в нужную папку

Поскольку мы до сих пор сидели под ROOT (что не очень хорошо) то надо выполнить следующую команду

chown -R www-data:www-data .

Этим самым мы разрешим пользователю под которым запущен nginx и php-fpm читать писать и запускать файлы

А теперь по нашему IP будет доступна установочная страница Joomla дальше я думаю проблем не возникнет

10. Заключение

Статья не претендует на истину в последней инстанции, как минимум потому что нужно запускать nginx и php-fpm под разными пользователями. Но этому можно посвятить отдельную статью

Нельзя работать под ROOT! Нужно настроить sudo — это тоже обсудим в отдельной статье

Если у вас возникли какие-то вопросы или идеи по данному материалу вступайте в нашу группу и смело задавайте vk.com/saity74