Проблема с развертыванием Symfony3 на новом сервере

В прошлом я много использовал Symfony, и у меня не было много проблем. Я пытался развернуть его на другом сервере (Ubuntu 16 с Apache) и у меня много проблем.

Я получаю 500 ошибок сейчас (https://bereanboard.com/app_dev.php). То, что я пытался это пойти в *.com/config.php а также *.com/app_dev.php чтобы увидеть проблемы (мне пришлось временно закомментировать раздел, запрещающий доступ не из localhost). Я также проверял Apache error.log и Symfony’s var/logs/prod.log,

Имейте в виду, что он отлично работает на локальном MAMP и на моем предыдущем CentOS.

  1. Во-первых, я впервые сталкиваюсь с проблемами прав доступа для var / cache и var / logs. Это было довольно легко исправить с помощью таких команд, как chmod -R 777 var/cache, Но почему эта проблема возникла только на этом новом сервере? Во всяком случае, config.php на новом сервере теперь говорит мне «Все проверки пройдены».

  2. Во-вторых, в var / logs / prod.log я получаю всевозможные сообщения: «Не могу найти класс, вы забыли выражение« use »?» ошибки. Некоторые из них для расширения ветки AppBundle/Twig/AppExtension.php,

Вот некоторые критические ошибки:

request.CRITICAL: необработанное исключение PHP InvalidArgumentException:
«Класс» AppBundle \ Controller \ HomeController «не существует.» в
/home/travis/var/cache/prod/classes.php строка 4872
{«исключение»: «[объект] (InvalidArgumentException (код: 0): класс
\ «AppBundle \ Controller \ HomeController \» не существует. в
/home/travis/var/cache/prod/classes.php:4872) «} []

а также

php.CRITICAL: класс ‘AppBundle \ Twig \ AppExtension’ не найден
{ «Исключение»: «[объект] (Symfony \ Component \ Debug \ Exception \ FatalThrowableError (код: 0):
Класс ‘AppBundle \ Twig \ AppExtension’ не найден в
/home/travis/var/cache/prod/appProdProjectContainer.php:2881) «} [] [2017-01-19 06:35:03] request.CRITICAL: Uncaught PHP Exception
Symfony \ Component \ Debug \ Exception \ ClassNotFoundException: «Попытка
загрузить класс «AppExtension» из пространства имен «AppBundle \ Twig». Ты
забыть выражение «использовать» для другого пространства имен? «в
/home/travis/var/cache/prod/appProdProjectContainer.php строка 2881
{ «Исключение»: «[объект] (Symfony \ Component \ Debug \ Exception \ ClassNotFoundException (код:
0): Попытка загрузить класс \ «AppExtension \» из пространства имен
\ «AppBundle \ Twig \». \ NВы забыли оператор \ «использовать \» для другого
Пространство имен? в
/home/travis/var/cache/prod/appProdProjectContainer.php:2881) «} [] [2017-01-19 06:35:03] request.CRITICAL: При обработке возникает исключение
исключение
(Symfony \ Component \ Cache \ Exception \ InvalidArgumentException: Cache
каталог не доступен для записи
(/ home / travis / var / cache / prod / pool / CtBqbs + VrF) в
/home/travis/var/cache/prod/classes.php строка 1194)
{ «Исключение»: «[объект] (Symfony \ Component \ Cache \ Exception \ InvalidArgumentException (код:
0): каталог кэша недоступен для записи
(/ home / travis / var / cache / prod / pool / CtBqbs + VrF) в
/home/travis/var/cache/prod/classes.php:1194) «} []

Также стоит упомянуть, что это свежий, пустой проект, сделанный из команды symfony new project делает Работа.

*РЕДАКТИРОВАТЬ
Я посоветовался эти документы Symfony. Я перепробовал все способы очистки кэша, которые смог найти.

*РЕДАКТИРОВАТЬ
Вот services.yml

services:
app.twig_extension:
class: AppBundle\Twig\AppExtension
arguments: ["@doctrine.orm.entity_manager", "@security.token_storage"]
public: false
tags:
- { name: twig.extension }

1

Решение

Похоже, что существует проблема доступа к вашему веб-серверу.

Проверьте пользователя, который запускает apache на Centos

# egrep -i '^user|^group' /etc/httpd/conf/httpd.conf

Должно вернуться apache

Тогда дайте хорошую привилегию /home/travis каталог:

  • Вариант 1: Вы можете посмотреть Stack Echange / AskUbuntu и адаптировать его с apache пользователь вместо www-data

  • Вариант 2. При первом варианте, если вы создали папку, Apache не может писать в нее. Это можно «исправить», установив umask 0007 и добавив себя (travis) в группу Apache, чтобы вновь созданные файлы и папки были доступны группе для записи.

Вариант 2 лучше, если у вас достаточно прав для смены маски.

0

Другие решения

Попробуйте очистить кеш:

php bin/console cache:clear --env=prod

и установите права доступа к файлам:

chmod -R 777 var/cache
chmod -R 777 var/logs
chmod -R 777 var/sessions

надеюсь, это поможет вам.

0

Я сталкивался с той же проблемой и раньше. Вам нужно будет полностью удалить папку продавца

rm -R vendor /

и заново установите все зависимости снова.

php composer.phar установить

Это решит проблему.

-1
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector