Skip to content

Настройка окружения

Общие настройки системы

Перед установкой необходимого ПО рекомендуется обновить все пакеты:

shell
apt-get update && apt-get -y upgrade

Необходимо добавить пользователя, из-под которого будет работать web-server. Например www-data

shell
mkdir -p /var/www
adduser --home /var/www/ www-data
cp /etc/skel/.bashrc /var/www
cp /etc/skel/.profile /var/www
chown -R www-data:www-data /var/www
usermod -s /bin/bash www-data

Git

Необходимо установить Git

shell
apt install git

Чтобы протестировать установку, запустите команду:

shell
git --version

Вы должны получить подобный вывод с версией

shell
git version 2.34.1

PHP

Общую информацию по установке PHP можно найти в официальной документации

Для установки PHP и его расширений в Debian 11/12 используется сторонний репозиторий: https://deb.sury.org/ Документация: https://github.com/oerdnj/deb.sury.org/wiki

Для подключения репозитория:

shell
apt install apt-transport-https lsb-release ca-certificates wget -y
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg 
sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'
apt update

Установите библиотеку OpenSSL

shell
apt-get install openssl

Установка PHP 8.3 и необходимых пакетов

shell
apt install php8.3 php8.3-{cli,curl,fpm,intl,mbstring,pgsql,zip,xml,bcmath,ldap}

Отредактируйте файлы /etc/php/8.3/fpm/php.ini и /etc/php/8.3/cli/php.ini.

Настройки:

Дефолтная временная зона

ini
date.timezone = "Europe/Moscow" ; Или любая другая, необходимая для сервера

Измените include_path, чтобы исключить поиск файлов в несуществующих папках

ini
include_path = "."

Отключите отображение ошибок

ini
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
display_errors = Off

PHP-FPM

В файле /etc/php/8.3/fpm/pool.d/www.conf проверить, что php-fpm запускается от ранее созданного пользователя (в нашем примере www-data)

shell
user = www-data
group = www-data

listen.owner = www-data
listen.group = www-data

Если были внесены изменения - перезапустите php-fpm

shell
service php8.3-fpm restart

Composer

Общую информацию по установке пакетного менеджера Composer можно найти в официальной документации

Установка пакетного менеджера Composer на Debian 11/12

shell
apt install wget
wget -O composer-setup.php https://getcomposer.org/installer
php composer-setup.php --install-dir=/usr/local/bin --filename=composer
chmod +x /usr/local/bin/composer

Чтобы протестировать установку, запустите команду:

shell
composer

Вы должны получить подобный вывод с версией и аргументами Composer.

shell
   ______
  / ____/___  ____ ___  ____  ____  ________  _____
 / /   / __ \/ __ `__ \/ __ \/ __ \/ ___/ _ \/ ___/
/ /___/ /_/ / / / / / / /_/ / /_/ (__  )  __/ /
\____/\____/_/ /_/ /_/ .___/\____/____/\___/_/
                    /_/
Composer version 2.5.1 2022-12-22 15:33:54

Usage:
  command [options] [arguments]

Options:
  -h, --help                     Display this help message
  -q, --quiet                    Do not output any message
  -V, --version                  Display this application version
      --ansi                     Force ANSI output
      --no-ansi                  Disable ANSI output
  -n, --no-interaction           Do not ask any interactive question
      --profile                  Display timing and memory usage information
      --no-plugins               Whether to disable plugins.
  -d, --working-dir=WORKING-DIR  If specified, use the given directory as working directory.
  -v|vv|vvv, --verbose           Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
. . .

Nginx

Общую информацию по установке и настройке Nginx можно найти в официальной документации

Установка nginx в Debian 11/12

shell
apt-get install nginx nginx-full

После установки удалите конфиги, которые были созданы автоматически

shell
rm /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default

В файл /etc/nginx/nginx.conf в секцию http добавить(или раскомментировать) строки:

shell
server_tokens off;

Создать виртуальный хост В файл /etc/nginx/sites-available/<hostname> поместить содержимое

shell
upstream bp_fastcgi_backend {
  server unix:/run/php/php8.3-fpm.sock;
}

server {
  listen 80;
  
  server_name bearpass.ru;
  
  set $BP_ROOT /var/www/bearpass;
  
  include /var/www/bearpass/nginx.conf;
}

Где
server_name - URL по которому будет открываться парольный менеджер
set $BP_ROOT - директория, где будет располагаться парольный менеджер
include - путь до конфига nginx, включает в себя директорию из set $BP_ROOT

Активировать сайт

shell
ln -s /etc/nginx/sites-available/<hostname> /etc/nginx/sites-enabled/<hostname>

Важно

Конфиг nginx ссылается на файл приложения, и пока приложение не скачано - запустить nginx не удастся.

PostgreSQL

Общую информацию по установке и настройке PostgreSQL можно найти в официальной документации

Установка PostgreSQL в Debian 11/12

shell
apt-get install postgresql

Создать пользователя и базы данных

Супер пользователем PostgreSQL является системный пользователь postgres. Для этого сначала логинимся в него:

bash
su postgres

Потом подключаемся к Postgres:

bash
psql

Создание пользователя:

sql
CREATE USER <имя_пользователя> WITH encrypted password '<пароль_пользователя>';

Создание базы данных:

sql
CREATE DATABASE <имя_базы_данных> OWNER <владелец_базы_данных> ENCODING 'UNICODE';

Exim4

Если Вы планируете отправлять почту со своего сервера, то необходимо дополнительно настроить Exim4

shell
apt-get install exim4
dpkg-reconfigure exim4-config

На первом шаге выбрать internet site. На втором пишем доменное имя сайта. Всё остальное по-умолчанию.

В дальнейшем Вам, возможно, потребуется настроить SPF и DKIM. Подробнее с данными настройками Вы можете ознакомиться в данной статье