Php 通过Symfony2和x2B传递的条令凭证;nginx环境变量是';不承认;DB';连接被拒绝';。命令行可以。如何修复?
在新的symfony2安装中,我通过systemd和Php 通过Symfony2和x2B传递的条令凭证;nginx环境变量是';不承认;DB';连接被拒绝';。命令行可以。如何修复?,php,symfony,nginx,doctrine-orm,symfony-2.6,Php,Symfony,Nginx,Doctrine Orm,Symfony 2.6,在新的symfony2安装中,我通过systemd和 cat /etc/systemd/system/nginx.service [Unit] Description=nginx After=syslog.target network.target [Service] Type=forking EnvironmentFile=-/etc/sysconfig/nginx ExecStartPre=/usr/sbin/nginx -t -c
cat /etc/systemd/system/nginx.service
[Unit]
Description=nginx
After=syslog.target network.target
[Service]
Type=forking
EnvironmentFile=-/etc/sysconfig/nginx
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
其中定义了环境变量
cat /etc/sysconfig/nginx
SYMFONY__DATABASE__USER="root"
SYMFONY__DATABASE__PASSWORD="testtesttest"
使用
并在重启后进行验证
php -i | grep SYMFONY__DATABASE
SYMFONY__DATABASE__PASSWORD => "testtesttest"
SYMFONY__DATABASE__USER => "root"
_SERVER["SYMFONY__DATABASE__PASSWORD"] => "testtesttest"
_SERVER["SYMFONY__DATABASE__USER"] => "root"
根据“”:
现在您已经声明了一个环境变量,它将出现
在PHP$\u服务器的全局变量中。然后Symfony会自动设置
所有的$\u服务器
变量前缀为SYMFONY\u
作为
服务容器
现在,您可以在任何需要的地方引用这些参数
因此,在中更改凭据
cat ./app/config/parameters.yml
parameters:
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
database_name: "test_01"
database_user: "%database.user%"
database_password: "%database.password%"
mailer_transport: smtp
mailer_host: ~
mailer_user: ~
mailer_password: ~
locale: en
secret: zzzz
使用默认的条令配置
cat ./app/config/config.yml
...
# Doctrine Configuration
doctrine:
dbal:
driver: "%database_driver%"
host: "%database_host%"
port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
...
应继承环境定义的值
user <= "%database_user%" <= "%database.user%" <= SYMFONY__DATABASE__USER <= "root"
password <= "%database_password%" <= "%database.password%" <= SYMFONY__DATABASE__PASSWORD <= "testtesttest"
从壳牌来看,没有问题
mysqladmin -u root -p create test_01
Enter password:
=> "testtesttest"
mysqladmin -u root -p
...
+------------------------------+
| Databases |
+------------------------------+
...
| test_01 |
+------------------------------+
需要在上面的配置中进行哪些更改,以便条令执行者正确使用ENV提供的凭据?显然这是一个已知的错误
解决办法,但尚未解决
php app/console doctrine:database:create
Could not create database for connection named `test_01`
SQLSTATE[HY000] [2002] Connection refused
mysqladmin -u root -p create test_01
Enter password:
=> "testtesttest"
mysqladmin -u root -p
...
+------------------------------+
| Databases |
+------------------------------+
...
| test_01 |
+------------------------------+