У меня проблемы с получением входа в систему по токену sfGuard
с приложением Symfony. Доступ к приложению Symfony осуществляется через плагин WordPress. Плагин WordPress — это голые кости, которые встраивают iframe
со строкой токена в панель управления WP:
<iframe src="/app/index.php/api/authenticate/**token**" width="100%" height="100%">
Это отлично работает на живом сервере. Покопавшись в журналах ошибок, я нашел это:
PDO Connection Error: SQLSTATE[28000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES), referer: http://****/wp-admin/admin.php?page=custom-sms.php
PHP Fatal error: Call to a member function prepare() on a non-object in /var/www/vhosts/domain.com/sfapp/lib/vendor/symfony/lib/storage/sfPDOSessionStorage.class.php on line 162, referer: http://****/wp-admin/admin.php?page=custom-sms.php
Странно то, что я могу писать/подключаться к базе данных на интерфейсе сайта. Что может быть причиной того, что приложение не использует имя пользователя и пароль базы данных, установленные в файле конфигурации database.yml
?
Файл app.yml
:
all:
security:
#to auto-login to the SMS alert system from inside Wordpress admin
token: **token**
username: [email protected]
Кстати, я никогда раньше не пользовался Symfony и унаследовал этот сайт без документации.
Обновлять
database.yml
файл:
# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/07-Databases
all:
doctrine:
class: sfDoctrineDatabase
param:
dsn: mysql:host=localhost;dbname=db_name
username: **username**
password: **password**
2-е обновление:
Чтобы добавить, я вручную установил переменную $env
в prod
для тестирования /web/index.php
на новом сервере.
factories.yml
файл:
# You can find more information about this file on the symfony website:
# http://www.symfony-project.org/reference/1_4/en/05-Factories
prod:
logger:
class: sfAggregateLogger
param:
level: err
loggers:
sf_file_debug:
class: sfFileLogger
param:
level: err
file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log
staging:
logger:
class: sfAggregateLogger
param:
level: notice
loggers:
sf_file_debug:
class: sfFileLogger
param:
level: notice
file: %SF_LOG_DIR%/%SF_APP%_%SF_ENVIRONMENT%.log
test:
storage:
class: sfSessionTestStorage
param:
session_path: %SF_TEST_CACHE_DIR%/sessions
response:
class: sfWebResponse
param:
send_http_headers: false
mailer:
param:
delivery_strategy: none
all:
routing:
class: sfPatternRouting
param:
generate_shortest_url: true
extra_parameters_as_query_string: true
view_cache_manager:
class: sfViewCacheManager
param:
cache_key_use_vary_headers: true
cache_key_use_host_name: true
config/databases.yml
. - person j0k   schedule 31.03.2013apps/[yourapp]/config/factories.yml
? - person j0k   schedule 31.03.2013sfPDOSessionStorage
для управления вашим сеансом. Кажется, ваша ошибка исходит из этого класса, который обычно определяется внутри factory.yml. У вас есть другое приложение для этого экземпляра Symfony? Нравится серверная часть или вазервер, который может использоватьsfPDOSessionStorage
в качестве хранилища сеансов? Поиск по вашему проекту. - person j0k   schedule 01.04.2013