- PVSM.RU - https://www.pvsm.ru -
Joomla — третья по популярности (после WordPress и Shopify) система управления контентом, написанная на языке PHP и использующая в качестве хранилища данных реляционные базы данных.
Как и многие другие CMS, Joomla полностью бесплатна для использования и имеет открытый код. Система шаблонов легко позволяет менять внешний вид сайта, а огромный каталог расширений, позволяет так же легко дополнять функциональность сайта нужными модулями.
Вот 10 фактов, за которые мы любим ее сами.
При такой большой любви, мы конечно не могли оставить наш маркетплейс без Joomla и создали новый образ с ней.
Для использования Joomla рекомендуется использовать 2 Гб RAM и 2 ядра CPU.
Основные файлы Joomla занимают около 40 Мб, дополнительно вам понадобится место для хранения картинок, базы данных, тем, дополнительных модулей и резервных копий, которое будет зависить от размера вашего сайта.
Для Joomla 3.9 требуется минимальная версия PHP 5.3.10, но рекомендуется использовать 7.3 или выше.
В качестве веб-сервера Joomla может использовать Apache, Nginx или IIS, а в качестве базы данных MySQL, MSSQL или PostgreSQL.
Мы будем устанавливать Joomla с использованием Nginx и MySQL.
Обновленим установленные пакеты до последней версии:
sudo dnf update -y
Добавим постоянное разрешение для входящего трафика на http/80
и https/443
порты:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
Применим новые правила файрвола:
sudo systemctl reload firewalld
Запустим и включим сервер Nginx:
sudo systemctl start nginx
sudo systemctl enable nginx
Установим PHP, PHP-FPM, и требуемые модули PHP:
sudo dnf install php-fpm php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip -y
Установим MySQL Server:
sudo dnf install mysql-server -y
Включим и запустим сервер MySQL:
sudo systemctl start mysqld
sudo systemctl enable mysqld
Так как мы делаем шаблон для
sudo sed -i '/Group=mysql/a
ExecStartPre=/bin/sleep 30
' /usr/lib/systemd/system/mysqld.service
Изменим группу и пользователя из под которого будет работать nginx внеся изменения в
/etc/php-fpm.d/www.conf:
sudo sed -i --follow-symlinks 's/user = apache/user = nginx/g' /etc/php-fpm.d/www.conf
sudo sed -i --follow-symlinks 's/group = apache/group = nginx/g' /etc/php-fpm.d/www.conf
Изменим владельца каталога сессий PHP так же соответственно на nginx:
sudo chown -R nginx. /var/lib/php/session
Удалим строки с коментариями из файла конфигурации /etc/nginx/nginx.conf (что бы не было двойных срабатываний для sed):
sudo sed -i -e '/^[ t]*#/d' /etc/nginx/nginx.conf
Добавим в /etc/nginx/nginx.conf
настройки компрессии gzip
sudo sed -i '/types_hash_max_size 2048;/a
gzip on;
gzip_static on;
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/x-icon image/svg+xml application/x-font-ttf;
gzip_comp_level 9;
gzip_proxied any;
gzip_min_length 1000;
gzip_disable "msie6";
gzip_vary on;
' /etc/nginx/nginx.conf
Добавим в /etc/nginx/nginx.conf настройки индексного файла index.php:
sudo sed -i '/ root /usr/share/nginx/html;/a
index index.php index.html index.htm;
' /etc/nginx/nginx.conf
Добавим настройки для дефолтного сервера обработку php через сокет php-fpm, отключим лог для статических файлов, увеличим время expire, отключим лог доступа и ошибок для favicon.ico и robots.txt и запретим доступ к файлам .ht для всех:
sudo sed -i '/ location / {/a
try_files $uri $uri/ /index.php?q=$uri&$args;
}
location ~* ^.+.(js|css|png|jpg|jpeg|gif|ico|woff)$ {
access_log off;
expires max;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location = /robots.txt {
allow all;
log_not_found off;
access_log off;
}
location ~ /.ht {
deny all;' /etc/nginx/nginx.conf
Установим wget требуемый для установки certbot:
sudo dnf install wget -y
Скачаем исполняемый файл certbot с оффсайта:
cd ~
wget https://dl.eff.org/certbot-auto
Переместим certbot в /usr/local/bin/:
mv certbot-auto /usr/local/bin/certbot-auto
И назначим права и владельцем root:
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-auto
Установим зависимости certbot и на данном этапе прервем его работу (Ответы: Y, c):
certbot-auto
Скачаем с оффсайта архив с Joomla_3-9-22-Stable-Full_Package
cd ~
wget https://downloads.joomla.org/cms/joomla3/3-9-22/Joomla_3-9-22-Stable-Full_Package.tar.gz?format=gz
Установим tar для распаковки архива
sudo dnf install tar -y
Распакуем файлы в каталог веб-сервера
tar xf Joomla_3-9-22-Stable-Full_Package.tar.gz?format=gz -C /usr/share/nginx/html/
Удалим архив
rm -f Joomla_3-9-22-Stable-Full_Package.tar.gz?format=gz
Назначим владельцем файлов nginx
sudo chown -R nginx. /usr/share/nginx/html
Отключим буферизацию вывода по рекомендации Joomla
sudo sed -i --follow-symlinks 's/output_buffering = 4096/output_buffering = Off/g' /etc/php.ini
На данном этапе мы выключим сервер и сделаем снапшот:
shutdown -h now
После запуска
mysql_secure_installation
Включим валидатор паролей:
Would you like to setup VALIDATE PASSWORD component? : y
Зададим пароль пользователя root MySQL:
New password:
Re-enter new password:
Удалим анонимных пользователей:
Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Запретим подключаться root удаленно:
Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Удалим тестовую базу данных:
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Перезагрузим таблицы привилегий:
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
После этого, для завершения установки, мы можем перейти по адресу vps_ip_address [3]
По этому адресу мы увидим страницу с установкой Joomla.
Укажем название сайта, зададим email, логин и пароль администратора Joomla. Нажмем «Далее».
На второй странице укажем имя пользователя БД root и пароль, который мы задали при запуске mysql_secure_installation.
Зададим имя базе данных, например joomla. Нажмем "Далее".
На третьей странице, мы можем выбрать установку демо-данных для ознакомления с возможностями CMS или выбрать пустой сайт по умолчанию, после выбора нажмем "Установка".
Для установки русского языка, нужно нажать "Установка языковых пакетов" — Russian, и после установки, установить языком по умолчанию.
Для завершения установки нужно нажать "Удалить директорию", что бы удалить файлы используемые для установки.
После этого можно перейти в панель управления с созданным логином и паролем администратора Joomla.
Для настройки HTTPS у
в разделе server имя сервера (например):
server_name domainname.ru;
Перезапустим nginx:
service nginx restart
Запустим certbot:
sudo /usr/local/bin/certbot-auto --nginx
Введем свой e-mail, cогласимся с условиями сервиса (A), Подписка на рассылку (опционально) (N), выберем доменные имена для которых нужно издать сертификат (Enter для всех).
В случае, если все прошло без ошибок, мы увидим сообщение об успешной выдаче сертификатов и настройке сервера:
Congratulations! You have successfully enabled ...
После этого подключения на 80 порт будут перенаправляться на 443 (https).
Добавим в /etc/crontab для автоматического обновления сертификатов:
# Cert Renewal
30 2 * * * root /usr/local/bin/certbot-auto renew --post-hook "nginx -s reload"
Если вы — разработчик софта, который разворачивают и используют на
Напишите, какой с каким софтом вы хотели бы иметь возможность разворачивать виртуалки в один клик?
Чего вам не хватает в маркетплейсе RUVDS?
Что каждый уважающий себя
Автор: ru_vds
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/cms/358395
Ссылки в тексте:
[1] Image: https://habr.com/ru/company/ruvds/blog/525630/
[2] VDS: https://www.reg.ru/?rlink=reflink-717
[3] vps_ip_address: http://vps_ip_address/
[4] Пишите нам: mailto:galimova@rucloud.host
[5] Источник: https://habr.com/ru/post/525630/?utm_source=habrahabr&utm_medium=rss&utm_campaign=525630
Нажмите здесь для печати.