Настройка
Содержание
- Настройка окружения
- Настройка электронной почты
- Использование обратного прокси
- Настройка директории public
- Права доступа к директориям
Большая часть приведенных настроек автоматизированно выполняется на этапе установки. Здесь приведены примеры самостоятельной настройки приложения.
<
Настройка окружения
Перейдите в директорию приложения и откройте файл .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"
- Создайте криптографический ключ:
php artisan key:generate
Откройте файл
.env
.Настройте название приложения:
APP_NAME="Личный кабинет"
APP_ENV=production
APP_KEY=base64:Z234567890900NEb1TmOzWC5673nM5zLHb6h30o4n90c=
APP_DEBUG=FALSE
APP_URL=http://lk.example.com
APP_TIMEZONE=Europe/Moscow
- Настройте параметры соединения с БД:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=dbuser
DB_PASSWORD=password
- Настройте параметры электронной почты для рассылок:
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}"
- Если используется 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 {} \;