- Как установить Joomla с Apache в Ubuntu 18.04
- Подготовка
- Создание базы данных MySQL
- Установка PHP
- Скачивание Joomla
- Настройка Apache
- Завершение установки Joomla
- Выводы
- Перенос сайта Joomla на другой сервер
- Создание базы данных и пользователя MySQ
- Копирование MySQL
- Копируем каталог с файлами
- Перенос joomla на linux
Как установить Joomla с Apache в Ubuntu 18.04
Joomla — одна из самых популярных систем управления контентом с открытым исходным кодом, на которой работают сотни тысяч веб-сайтов. Он написан на PHP и содержит массу функций, которые можно расширить с помощью бесплатных и дополнительных расширений и тем. С Joomla вы можете легко создать свой магазин электронной коммерции, личный веб-сайт, социальный сайт или блог.
В этом руководстве мы объясним, как установить Joomla на Ubuntu 18.04. Мы будем использовать стек LAMP с Apache в качестве веб-сервера, SSL-сертификат, последнюю версию PHP 7.2 и MySQL / MariaDB в качестве сервера базы данных.
Подготовка
Прежде чем продолжить изучение этого руководства, убедитесь, что выполнены следующие предварительные условия:
- Имейте доменное имя, указывающее на общедоступный IP-адрес вашего сервера. Мы будем использовать example.com .
- Вы вошли в систему как пользователь с привилегиями sudo .
- Apache устанавливается, следуя этим инструкциям .
- У вас установлен сертификат SSL для вашего домена. Вы можете установить бесплатный SSL-сертификат Let’s Encrypt, следуя этим инструкциям .
Создание базы данных MySQL
Joomla может хранить свои данные, такие как статьи, категории, пользователи, расширения и настройки тем, в базе данных MySQL, PostgreSQL или MS SQL.
Мы будем использовать MySQL как внутреннюю базу данных. Если на вашем сервере Ubuntu не установлен MySQL, вы можете установить его, набрав:
sudo apt-get update
sudo apt-get install mysql-server
Войдите в консоль MySQL, набрав:
Из оболочки MySQL запустите следующий оператор SQL, чтобы создать базу данных :
CREATE DATABASE joomla CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
GRANT ALL ON joomla.* TO 'joomlauser'@'localhost' IDENTIFIED BY 'change-with-strong-password';
После этого выйдите из консоли mysql, набрав:
Установка PHP
PHP 7.2, который является версией PHP по умолчанию в Ubuntu 18.04, полностью поддерживается и рекомендуется для Joomla.
Установите PHP все необходимые расширения PHP с помощью следующей команды:
sudo apt update
sudo apt install php7.2 php7.2-cli php7.2-mysql php7.2-json php7.2-opcache php7.2-mbstring php7.2-intl php7.2-xml php7.2-gd php7.2-zip php7.2-curl php7.2-xmlrpc php7.2-xmlrpc
Установите рекомендуемые параметры PHP, отредактировав файл php.ini с помощью sed :
sudo sed -i "s/memory_limit = .*/memory_limit = 512M/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/upload_max_filesize = .*/upload_max_filesize = 256M/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/post_max_size = .*/post_max_size = 256M/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/output_buffering = .*/output_buffering = Off/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/max_execution_time = .*/max_execution_time = 300/" /etc/php/7.2/apache2/php.ini
sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/apache2/php.ini
Перезапустите apache, чтобы загрузились только что установленные расширения PHP:
sudo systemctl restart apache2
Скачивание Joomla
На момент написания этой статьи последней версией Joomla была версия 3.9.4.
Перед загрузкой архива Joomla сначала создайте каталог, в котором будут храниться файлы Joomla, и перейдите к нему:
sudo mkdir -p /var/www/example.com
cd /var/www/example.com
Затем загрузите текущую версию Joomla со страницы загрузок Joomla, используя следующую команду wget :
sudo wget https://downloads.joomla.org/cms/joomla3/3-9-4/Joomla_3-9-4-Stable-Full_Package.zip
После завершения загрузки распакуйте архив и переместите файлы в корневой каталог документов домена:
sudo unzip Joomla_3-9-4-Stable-Full_Package.zip
Измените владельца каталога на www-data с помощью команды chown, чтобы веб-сервер имел полный доступ к файлам и каталогам сайта:
sudo chown -R www-data: /var/www/example.com
Настройка Apache
К настоящему времени у вас уже должен быть установлен Apache с сертификатом SSL в вашей системе, если нет, проверьте предварительные требования для этого руководства.
Следующим шагом является редактирование конфигурации виртуальных хостов Apache:
sudo nano /etc/apache2/sites-available/example.com.conf
Следующая конфигурация Apache [перенаправляет HTTP на HTTPS] и www на версию вашего домена без www и включает HTTP2. Не забудьте заменить example.com своим доменом Joomla и указать правильный путь к файлам сертификатов SSL.
*:80> ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ *:443> ServerName example.com ServerAlias www.example.com Protocols h2 http/1.1 "% == 'www.example.com'"> Redirect permanent / https://example.com/ DirectoryIndex index.html index.php DocumentRoot /var/www/example.com ErrorLog $/example.com-error.log CustomLog $/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem /var/www/example.com> Options FollowSymLinks AllowOverride All Require all granted
Если не включен, включите виртуальный хост для домена. Эта команда создаст символическую ссылку с sites-available на каталог sites-enabled :
Чтобы новая конфигурация вступила в силу, перезапустите службу Apache, набрав:
sudo systemctl restart apache2
Завершение установки Joomla
Теперь, когда Joomla загружена и настройка сервера завершена, пора завершить установку Joomla с помощью веб-интерфейса.
Откройте браузер, введите свой домен, и появится экран, подобный следующему:
Выберите язык, который вы хотите использовать, и введите следующую информацию:
- Имя сайта — имя вашего нового веб-сайта Joomla.
- Описание — Описание сайта. Это резервное метаописание, которое будет использоваться на каждой странице без конкретного описания.
- Адрес электронной почты администратора — адрес электронной почты администратора. Используйте действующий адрес электронной почты. Если вы забудете свой пароль, вы получите ссылку для изменения пароля на этот адрес электронной почты.
- Имя пользователя администратора — имя пользователя с правами администратора. В целях безопасности установите для имени пользователя другое значение, кроме «admin».
- Пароль администратора — пароль администратора. Убедитесь, что вы используете надежный пароль. Введите тот же пароль в поле Подтверждение пароля администратора .
- Сайт не в сети — оставьте значение по умолчанию «Нет». Если вы выберете «Да», после завершения установки веб-сайт отобразит «Сайт не в сети».
Когда закончите, нажмите кнопку «Далее».
На следующем экране мастер настройки попросит вас ввести данные подключения к базе данных.
- Тип базы данных — оставьте значение по умолчанию «MySQLi».
- Имя хоста — оставьте значение по умолчанию «localhost». Если это руководство, база данных находится на том же сервере.
- Имя пользователя , пароль , имя базы данных — введите данные пользователя MySQL и базы данных, которые вы создали ранее.
- Префикс таблицы — оставьте автоматически созданный префикс.
- Старый процесс базы данных — оставьте параметр по умолчанию «Резервное копирование».
После нажатия кнопки «Далее» вы будете перенаправлены на страницу обзора:
Здесь вы можете выбрать установку демонстрационных данных и убедиться, что все проверки пройдены. Нажмите на кнопку « Install , и после завершения установки вы попадете на страницу, информирующую вас о том, что Joomla установлена.
Если вы хотите установить дополнительные языки, нажмите кнопку «Дополнительные шаги: Установить языки».
По соображениям безопасности вам необходимо удалить каталог установки. Для этого вернитесь в терминал и выполните следующую команду rm :
sudo rm -rf /var/www/example.com/installation
Чтобы получить доступ к вашей серверной части Joomla, нажмите кнопку « Adminstrator . Отсюда вы можете начать настройку вашей установки Joomla, установив новые темы и плагины.
Выводы
Поздравляем, вы успешно установили Joomla с Apache на свой сервер Ubuntu 18.04. Документация Joomla — хорошая отправная точка, чтобы узнать больше о том, как начать работу с вашим новым сайтом Joomla.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Перенос сайта Joomla на другой сервер
Нередко возникает ситуация когда необходимо перенести сайт на другой хостинг. При этом можно использовать инструменты панели управления и/или дополнительные программы вроде EMS SQL Manager. Однако при наличии доступа по ssh к локальному и удаленному серверу, все можно сделать штатными средствами OS. Перенос осуществляется в три этапа:
Копировать будет утилитой scp, которая входит в состав пакета openssh-clients, поэтому сначала необходимо на обоих серверах установить данный пакет:
# yum install openssh-clients
Создание базы данных и пользователя MySQ
Необходимо подключиться к консоли mysql:
и выполнить следующие запросы:
CREATE USER 'имя_пользователя'@'localhost' IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON имя_базы.* TO 'имя_пользователя'@'localhost';
Копирование MySQL
- Выгружаем базу данных в файл: # mysqldump —databases —create-options —comments -Q -uroot -p ‘имя_базы’ > /db.sql
- Копируем на удаленный сервер: # scp /db.sql root@удаленный_сервер:/
- Восстанавливаем базу на удаленном сервере: # mysql -uroot -hlocalhost -p < /db.sql
Копируем каталог с файлами
- Архивируем каталог с файлами: # zip -r /archive.zip /var/www/site
- Копируем архив на удаленный сервер: # scp /archive.zip root@удаленный_сервер:/
- Восстанавливаем каталог на удаленном сервере во временную папку: # unzip /archive.zip -d /tmp
- Копируем распакованные файлы из папки /tmp в папку сайта, и раздаем права: # chown -R apache:apache /var/www/site/*
Перенос joomla на linux
Перенос Joomla будет состоять из 4-х этапов:
- настройка доменного имени
- копирование файлов сайта
- экспорт/импорт базы данных (еще рассмотрим конвертацию кодировки с cp1251 в utf8)
- настройка параметров на новом сервере.
Итак, 1) настройка доменного имени
При покупке доменного имени продавец должен выслать имя и пароль доступа настройки. Заходим в настройку доменного имени и создаем/редактируем записи:
подзона – @
A (тип записи)
приоритет – 0 (ноль) (если требуется)
адрес хоста – адрес сервера
Тоже самое нужно сделать с подзоной www
На сервере создаем VirtualHost
например, так:
ServerAdmin webmaster@localhost
ServerName mysite.com
ServerAlias http://www.mysite.com
DocumentRoot /srv/www/htdocs/mysite.com
ErrorLog /var/log/apache2/mysite.com-error_log
CustomLog /var/log/apache2/mysite.com_log combined
2) копирование файлов сайта
Тут вопросов не должно быть. Используем любой доступный способ копирования на сервер (ftp, ssh, webDAV, флешка …)
Не забываем про права доступа к файлам
3) экспорт/импорт базы данных (еще рассмотрим конвертацию кодировки с cp1251 в utf8)
а) экcпорт
mysqldump -u user -p mypassword databasename > backup.sql
скорее всего user – это root
К сожалению, у Денвера нету утилиты mysqldump. Поэтому можно скачать с сайта mysql файл (without installer, без установки) и копируем от туда mysqldump и вставляем в bin директорию, где установлен mysql
б) копируем файл на сервер
в)
(на сервере)
заходим в оболочку mysql (mysql –password для входа с паролем )
create user ‘myusername’@’localhost’ identified by ‘mypassword’ ;
create database mydbname character set utf8 collate utf8_general_ci;
grant all on mydbname .* to myusername @localhost ;
создали пользователя
создали базу (обратите внимание на кодировку)
дали все права для новому пользователю на новую базу
просмотреть кодировку созданной бд – show create database mydbname ;
г) конвертируем базу с cp1251 в utf8
iconv -f cp1251 -t utf8 backup.sql > backup-utf8.sql
в файлике backup-utf8.sql в строке
/*!40101 SET NAMES cp1251 */;
cp1251 меняем на utf8
д) импортируем базу
mysql -h localhost -u myusername -D mydbname –password= mypassword < backup-utf8.sql
для проверки импорта заходим в mysql под новым пользователем
mysql -u myusername -p mypassword mydbname
show tables ;
для установки кодировки в консоли mysql
SET character_set_client=’utf8′;
SET character_set_results=’utf8′;
SET character_set_connection=’utf8′;
( для справки : Переменная character_set_client устанавливает кодировку данных отправляемых от клиента, переменная character_set_results устанавливает кодировку данных отправляемых клиенту, переменная character_set_connection устанавливает кодировку, в которую преобразуется информация пришедшая от клиента, перед выполнением запроса на сервере. )
или просто
SET NAMES ‘utf8’ (который заменяет эти 3 команды)
и смотрим одну из таблиц
select * from mytablename ;
4) настройка параметров на новом сервере.
открываем для редактирования файл configuration.php (желательно предварительно сохраните оригинал)
редактируем поля
var $user = ‘myusername’;
var $log_path = ‘/новый/путь/к/папке/logs’;
var $tmp_path = ‘/новый/путь/к/папке/tmp’;
Заходим на сайт, проверяем, радуемся (или исправляем ошибки, а потом радуемя)