Настройка

Содержание

Большая часть приведенных настроек автоматизированно выполняется на этапе установки. Здесь приведены примеры самостоятельной настройки приложения.

<

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

Перейдите в директорию приложения и откройте файл .env. Если его нет, то создайте копию файла .env.example и переименуйте его в .env.

Если в папке с приложением отсутствуют и файл .env, и файл .env.example, то создайте пустой файл .env и добавьте в него следующие базовые настройки:

APP_NAME=
APP_URL=
APP_KEY=
APP_ENV=production
APP_DEBUG=false

LOG_CHANNEL=stack
LOG_LEVEL=error

BROADCAST_DRIVER=redis
CACHE_DRIVER=file
QUEUE_CONNECTION=sync
SESSION_DRIVER=database
SESSION_LIFETIME=120

MEMCACHED_HOST=127.0.0.1

REDIS_CLIENT=predis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

COMPOSER_HOME="/tmp/composer"
  1. Создайте криптографический ключ:
php artisan key:generate
  1. Откройте файл .env.

  2. Настройте название приложения:

APP_NAME="Личный кабинет"
APP_ENV=production
APP_KEY=base64:Z234567890900NEb1TmOzWC5673nM5zLHb6h30o4n90c=
APP_DEBUG=FALSE
APP_URL=http://lk.example.com
APP_TIMEZONE=Europe/Moscow
  1. Настройте параметры соединения с БД:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=dbuser
DB_PASSWORD=password
  1. Настройте параметры электронной почты для рассылок:
MAIL_MAILER=log
MAIL_HOST=mail.example.ru
MAIL_PORT=25
MAIL_USERNAME=
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS=no-reply@example.ru
MAIL_FROM_NAME="${APP_NAME}"
  1. Если используется LDAP введите для него настройки:
LDAP_HOST=127.0.0.1
LDAP_USERNAME='cn=admin,dc=example,dc=com'
LDAP_PASSWORD=1
LDAP_BASE_DN='dc=example,dc=com'
LDAP_LOGGING=FALSE

Настройка электронной почты

Настройка параметров отправки почты осуществляется в файле .env, который находится в корне директории установки приложения ЛК. Настраиваемые параметры:

  • MAIL_MAILER — механизм отправки сообщений. Для отправки через почтовый сервер используется значение smtp.
  • MAIL_HOST — адрес почтового сервера.
  • MAIL_PORT — порт.
  • MAIL_USERNAME — имя пользователя.
  • MAIL_PASSWORD — пароль.
  • MAIL_ENCRYPTION — режим шифрования. Обычно указывается tls, если шифрование выключено необходимо обязательно указать null.
  • MAIL_FROM_ADDRESS — адрес электронной почты, который будет указан в качестве адреса отправителя.
  • MAIL_FROM_NAME — имя отправителя. Например Личный кабинет.

Устранение неполадок

В случае если почтовый сервер использует шифрование, но при этом используется самоподписанный сертификат будет возникать ошибка

stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages:
error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed

Для ее устранения без изменения сертификата необходимо добавить в файл конфигурации config/mail.php следующие параметры:

'stream' => [
   'ssl' => [
       'allow_self_signed' => true,
       'verify_peer' => false,
       'verify_peer_name' => false,
   ],
],

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

Использование обратного прокси

Добавление в список доверенных серверов

Если между сервером, на котором установлено приложение ЛК, и внешней сетью настроен балансировщик нагрузки (обратный прокси/reverse proxy), то его необходимо добавить в список доверенных серверов.

Перейдите в директорию установки приложения и затем перейдите в директорию app/Http/Middleware. Откройте файл TrustProxies.php и откройте его для редактирования. Найдите переменную $proxies (не создавайте новую, переменная уже должна существовать). Измените ее значение следующим образом:

protected $proxies = [
    '192.168.1.1',
    '192.168.1.2',
];

Где вместо адресов 192.168.1.1 и 192.168.1.2 необходимо указать корректные значения адресов балансировщиков нагрузки.

Если адреса серверов неизвестны, то можно разрешить все адреса:

protected $proxies = '*';

Сохраните и закройте файл.

Проверка настроек в файле .env

Проверьте настройки в файле .env. В переменной APP_URL должен быть адрес приложения, включающий протокол https. Напоминаем, что если файл конфигурации был закэширован, то кэш необходимо очистить:

php artisan config:clear

Принудительное использование https

Откройте файл app/Providers/AppServiceProvider.php. В метод boot необходимо добавить следующую строку:

\URL::forceScheme('https');

Пример. Если не было ранее внесено других изменений метод может выглядеть следующим образом:

/**
 * Bootstrap any application services.
 *
 * @return void
 */
public function boot()
{
     \URL::forceScheme('https');
}

Сохраните и закройте файл.

Проверка передаваемых заголовков

Проверьте, что балансировщик или обратный прокси передает заголовок x-forwarded-proto.

Настройка директории public

Для работы приложения необходимо настроить корневую папку, из которой будет запускаться приложение. В директории приложения находится папка public, а внутри папки находится файл index.php. Необходимо настроить виртуальный хост веб-сервера таким образом, чтобы он указывал на папку public.

Права доступа к директориям

Все вложенные папки и файлы в директориях storage и bootstrap/cache должны быть доступны для чтения и записи веб-сервером.

1. Веб-сервер как владелец приложения

Предполагается, что /var/www/html/laravel/root/directory — путь до директории приложения, имя вашего пользователя tandem, а имя пользователя для веб-сервера www-data. Замените данные параметры на свои и выполните команды в терминале:

sudo chown -R www-data:www-data /var/www/html/laravel/root/directory
sudo usermod -a -G www-data tandem

И затем настройте права доступа:

sudo find /var/www/html/laravel/root/directory -type f -exec chmod 644 {} \;
sudo find /var/www/html/laravel/root/directory -type d -exec chmod 755 {} \;

2. Пользователь как владелец приложения

Предполагается, что /var/www/html/laravel/root/directory — путь до директории приложения, имя вашего пользователя tandem, а имя пользователя для веб-сервера www-data.

Замените данные параметры на свои и выполните команды в терминале:

sudo chown -R tandem:www-data /var/www/html/laravel/root/directory

И затем настройте права доступа:

sudo find /path/to/your/laravel/root/directory -type f -exec chmod 664 {} \;
sudo find /path/to/your/laravel/root/directory -type d -exec chmod 775 {} \;