У меня есть установка Snipe-IT на FreeBSD 11.3 с MySQL 5.7.27, PHP 7.3.7 и Apache 2.4.39_1.
Я столкнулся с этой ошибкой в ~snipe-it/storage/logs/laravel.log
:
[2019-10-25 13:13:24] production.ERROR: PDOException: SQLSTATE[HY000] [1045] \
Access denied for user 'snipeuser'@'localhost' (using password: YES) \
in /usr/local/www/apache24/snipe-it/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:27
Проблема в том, что localhost
это не значение, определенное для DB_HOST
в Snipe-IT's .env
Файл конфигурации.
Моя конфигурация Apache 2.4 имеет эту запись VirtualHost:
<VirtualHost *:80>
ServerName snipeit.example.edu
DocumentRoot /usr/local/www/apache24/snipe-it/public/
<Directory /usr/local/www/apache24/snipe-it/>
<RequireAll>
# Require not ip 10.10.229.71
Require all granted
</RequireAll>
AllowOverride None
Options None
</Directory>
RewriteEngine On
# From public/.htaccess
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteRule ^ /index.php [L]
</VirtualHost>
Мой .env
файл для Snipe-IT находится в /usr/local/www/apache24/snipe-it/
. Он содержит эти DB_*
настройки:
DB_CONNECTION=mysql
DB_HOST=10.10.231.22
DB_DATABASE=snipeit
DB_USERNAME=snipeuser
DB_PASSWORD=mypassword
DB_PREFIX=null
DB_DUMP_PATH='/usr/local/bin'
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci
DB_SOCKET=/tmp/mysql.sock
DB_SSL=false
DB_SSL_KEY_PATH=null
DB_SSL_CERT_PATH=null
DB_SSL_CA_PATH=null
DB_SSL_CIPHER=null
MySQL настроен и работает. Я могу успешно запустить SQL-клиент командной строки, используя имя хоста, имя пользователя, пароль и имя базы данных, показанные выше, для доступа к snipeit
база данных. База данных снайперов существует, но в остальном она пуста.
# mysql -h 10.10.231.22 -u snipeuser -p snipeit
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 141
Server version: 5.7.27-log Source distribution
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
snipeuser@10.10.231.22 [snipeit]>
В документации Snipe-IT упоминается, что определенная информация о конфигурации кэшируется, и этот кеш, возможно, потребуется очистить после внесения изменений в файл .env. Бег:
# composer dump-autoload
# php artisan config:clear
# php artisan view:clear
# php artisan cache:clear
# php artisan route:clear
# service apache24 restart
Когда я направляю свой браузер (Firefox) на целевой URL-адрес Snipe-IT, я не получаю НИЧЕГО, пустой белый экран. Когда я редактирую .env
включать:
APP_DEBUG=true
а затем обновите страницу в Firefox, я получаю трассировку исключения, часть которой говорит:
Access denied for user 'snipeuser'@'localhost' (using password: YES)
Тот факт, что я могу повернуть APP_DEBUG
время от времени дает мне надежду, что у меня есть .env
в каталоге, где его находит Snipe-IT.
Однако я не могу заставить Snipe-IT забрать мой DB_HOST
значение, даже после запуска всего конфига / очистки кеша. Он все еще пытается подключиться к localhost
хотя .env
файл говорит 10.10.231.22
.
Что мне нужно изменить, чтобы Snipe-IT использовал правильный DB_HOST
стоимость?