понедельник, 19 мая 2025 г.

Установка Wordpress

Установка Apache
# dnf install httpd -y
# systemctl start httpd
# systemctl enable httpd

Установка базы данных MariaDB
# dnf install mariadb-server mariadb -y
# systemctl start mariadb
# systemctl enable mariadb
Создаем root пароль базы MariaDB:
# mysql_secure_installation

Устанавливаем php и модули необходимые для работы wordpress
# dnf install php php-mysqlnd php-fpm php-{bz2,mysqli,curl,gd,intl,common,mbstring,xml} -y
# systemctl restart httpd

Подключаемся к базе MariaDB. Создаем базу данных «wordpress» для WordPress и пользователя, который будет работать с базой (например, пользователь admin с паролем passwd123)
# mysql -u root -p
>CREATE DATABASE wordpress;
>CREATE USER 'admin'@'localhost' IDENTIFIED BY 'passwd123';
>GRANT ALL PRIVILEGES ON wordpress.* TO 'admin'@'localhost';
>FLUSH PRIVILEGES;

Скачиваем и распаковываем набор скриптов wordpress
# cd /usr/src/
# tar -xzvf latest.tar.gz
В директории /usr/src образуется директория /usr/src/wordpress
Перемещаем все файлы из /usr/src/wordpress в /var/www/html
# mv /usr/src/wordpress/* /var/www/html
Задаем права:
# chown -R apache:apache /var/www/html
# chmod -R 755 /var/www/html
Удаляем уже не нужные файлы и папки в /usr/src
# rm -f latest.tar.gz
# rmdir wordpress

Обращаемся к серверу http://<IP адрес>

Должна сработать переадресация на страницу стартовых скриптов wordpress http://<IP адрес>/wp-admin/setup-config.php
Увидим сообщение:

Нажимаем кнопку “Lets go!”. Далее необходимо заполнить информацию для доступа к базе данных:

Нажимаем “Submit”. В следующем окне, при необходимости можно изменить данные доступа вручную, которые пропишутся в файле «wp-config.php». Для продолжения нужно нажать “Run the installation”. В следующем окне так же нажать “Run the installation”


После того, как скрипты worpress создадут базу для работы, потребуется указать название сайта, и завести пользователя:

После нажатия кнопки “Install WordPress” произойдет автоматическое развертывание системы Worddpress. Завершение установки будет сопровождаться сообщением “Success!”

Теперь управлять сайтом можно так: http://<IP адрес>/wp-admin
Смотреть то, что отображается пользователю так: http://<IP адрес>


Настройка работы nginx в связке с php-fpm в Debian 12

Настройка возможности работы nginx с PHP файлами.

Работа nginx с PHP обеспечивается службой php-fpm.

Устанавливаем сервис php-fpm:
# install nginx php-fpm

Смотрим текущую версию php в системе
# php -v
PHP 8.2.28 (cli) (built: Mar 13 2025 18:21:38) (NTS)

В моем случае - это 8.2
Конфигурационный файл серввиса php-fpm: /etc/php/8.2/fpm/pool.d/www.conf
ini файл настроек PHP: /etc/php/8.2/fpm/php.ini
Заходим в конфигурацию php-fpm для версии 8.2:
# nano /etc/php/8.2/fpm/pool.d/www.conf
Здесь ищем директиву "listen", которая определяет, что будет прослушивать запущенный процесс php-fpm.
В нашей случае - указан сокет. Отлично, фиксируем путь к сокету
    listen = /run/php/php8.2-fpm.sock

Теперь находим конфигурационный файл nginx и для сервере, у которого необходимо включить PHP

# nano /etc/nginx/sites-enabled/<file>.conf
Добавляем конфигурацию для php в конец блока "server"
server {
        listen 80;
        listen 443 ssl;
...
        location ~ \.php$ {
           include snippets/fastcgi-php.conf;
           fastcgi_pass unix:/run/php/php8.2-fpm.sock;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           include fastcgi_params;

        }
}


Рестартуем NGINX и PHP-FPM:
# systemctl restart nginx
# systemctl restart php8.2-fpm


Логи ошибок php-fpm будут тут /var/log/nginx/error.log




Установка PostgreSQL на Debian 12.

Установка:
# apt install postgresql postgresql-contrib
При установке Postgresql сразу будет создан и инициирован кластер в директории:
/var/lib/postgresql/15/main
Конфигурационный файл будет тут /etc/postgresql/15/main/postgresql.conf
Файл настроек режимов доступа тут /etc/postgresql/15/main/pg_hba.conf

Запускаем сервис
# systemctl start postgresql.service
# systemctl enable postgresql.service


Подключаемся к базе так:
# sudo -i -u postgres
$ psql

После создания базы и пользователя, а так же после настройки pg_hba.conf можно подключиться к базе данных так:
# psql -h 127.0.0.1 -d <БАЗА> -U <ПОЛЬЗОВАТЕЛЬ> -W 

четверг, 15 мая 2025 г.

Использование утилиты mkcert для создания самоподписанных сертификатов без боли

mkcert - это инструмент создания локальных самоподписанных сертификатов с поддержкой доверия в системе.

Установка утилиты выполняется так:
# dnf install -y golang
# go install filippo.io/mkcert@latest

Проверка:
# /root/go/bin/mkcert  --version
v1.4.4


Создание локального корневого сертификата CA
# yum install nss-tools
# /root/go/bin/mkcert -install

Ответ должен быть такой:
Created a new local CA 💥
The local CA is already installed in the system trust store! 👍
The local CA is now installed in the Firefox and/or Chrome/Chromium trust store (requires browser restart)! 🦊


Теперь создаем сертификат для своего сервера, например для bs.server.ru.
# /root/go/bin/mkcert bs.server.ru localhost 127.0.0.1
Created a new certificate valid for the following names 📜
 - "bs.server.ru"
 - "localhost"
 - "127.0.0.1"
The certificate is at "./bs.server.ru+2.pem" and the key at "./bs.server.ru+2-key.pem" ✅
It will expire on 15 August 2027 🗓

Будет создан сертификат bs.server.ru+2.pem и приватный ключ bs.server.ru+2-key.pem для всех запрошенных имен (bs.server.ru, localhost, 127.0.0.1)

Устанавливаем сертификат SSL в web-сервер apache
# dnf install mod_ssl
# systemctl restart httpd

Резервируем настройки по умолчанию
# mv /etc/httpd/conf.d/ssl.conf /etc/httpd/conf.d/ssl.conf_old
Создаем свой файл настроек
# nano /etc/httpd/conf.d/ssl-bs.conf
Listen 443
<VirtualHost *:443>
    ServerName bs.server.ru
    SSLEngine on
    SSLCertificateFile "/home/korolev/bs.server.ru+2.pem"
    SSLCertificateKeyFile "/home/korolev/bs.server.ru+2-key.pem"
    DocumentRoot "/var/www/html"
</VirtualHost>

Перезагружаем web-сервер:
# systemctl restart httpd
Открываем порт 443 на сервере
# firewall-cmd --permanent --add-port=443/tcp
# firewall-cmd --reload

Теперь при обращении к https://bs.server.ru/ по сети в браузере будет отображаться защищенное соединение! И до 15 августа 2027 года. То есть на 2 года! Удобно.