SimpleMVC. Ошибки.

Перешел к практической части по работе с SimpleMVC:
Уроки по SimpleMVC

Все сделал по плану урока:
1) клонировал проект в директорию var/www/
2) создал виртуальный хост с корнем в директории web/
проекта.
3) Развернул дамп базы данных.
4) перешел в папку web проекта и из консоли установил composer. Все ОК.

При запуске проекта ошибка:

"This page isn’t working
localhost is currently unable to handle this request.
HTTP ERROR 500"

Потратил часы на изучение форумов по данной ошибке, но исправить ошибку не удалось.

Key Words for FKN + antitotal forum (CS VSU):

vedro-compota's picture

  1. поправьте ключевые слова
  2. какой адрес вы открываете в браузере-то?
  3. на какую папку настроен этот адрес в конфиге апача (скопируйте текстом, без скриншота)

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

Конфиг апатча:

<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName SimpleMVC-example1.loc
ServerAlias SimpleMVC-example1.loc
DocumentRoot /var/www/SimpleMVC-example1/web
<Directory />
AllowOverride All
</Directory>
<Directory /var/www/SimpleMVC-example1/web>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
ErrorLog /var/log/apache2/SimpleMVC-example1.loc-error.$
LogLevel error
CustomLog /var/log/apache2/SimpleMVC-example1.loc-acces$
</VirtualHost>

Ссылка в браузере:
http://localhost/SimpleMVC-example1/web/...

vedro-compota's picture

а что в логе ошибок?
посмотрите последние строк 20 в файле (он как раз в твоем конфиге указан):

/var/log/apache2/SimpleMVC-example1.loc-error

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

  1. приведите формат конфига хоста апача, к указанному здесь
  2. включено ли отображение ошибок в php?

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

Выкладываю файл SimpleMVC-example1.loc-error.log

Ссылка на файл

vedro-compota's picture

Вполне можно было выложить и фрагмент с последней ошибкой:

[Fri Oct 18 22:58:58.122303 2019] [php7:notice] [pid 8271] [client 127.0.0.1:50176] 
PHP Fatal error:  
require(): Failed opening required
 '/var/www/SimpleMVC-example1/../application/controllers/HomepageController.php'
 (include_path='.:/usr/share/php') 
in /var/www/SimpleMVC-example1/web/autoload.php
 on line 24, referer..

- собственно вот как минимум одна из ошибок.

'/var/www/SimpleMVC-example1/../application/controllers/HomepageController.php'

есть ли у вас такой файл?

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

Последняя ошибки из лога:

[Sun Oct 27 13:43:02.097572 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP Fatal error:  Access level to ItForFree\\SimpleMVC\\User::__construct() must be public (as in class ItForFree\\SimpleMVC\\mvc\\Model) in /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/User.php on line 11
[Sun Oct 27 13:43:02.097665 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP Stack trace:
[Sun Oct 27 13:43:02.097681 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   1. {main}() /var/www/SimpleMVC-example-master/web/index.php:0
[Sun Oct 27 13:43:02.097707 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   2. ItForFree\\SimpleMVC\\Application->run() /var/www/SimpleMVC-example-master/web/index.php:13
[Sun Oct 27 13:43:02.097716 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   3. ItForFree\\SimpleMVC\\Router->callControllerAction() /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/Application.php:60
[Sun Oct 27 13:43:02.097725 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   4. application\\controllers\\HomepageController->IsEnabled() /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/Router.php:63
[Sun Oct 27 13:43:02.097734 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   5. ItForFree\\SimpleMVC\\Config::getObject() /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/traits/AccessControl.php:68
[Sun Oct 27 13:43:02.097743 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   6. ItForFree\\SimpleMVC\\Application::getConfigObject() /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/Config.php:30
[Sun Oct 27 13:43:02.097768 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   7. class_exists() /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/Application.php:115
[Sun Oct 27 13:43:02.097775 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   8. spl_autoload_call() /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/Application.php:115
[Sun Oct 27 13:43:02.097783 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP   9. autoload() /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/Application.php:115
[Sun Oct 27 13:43:02.097790 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP  10. require() /var/www/SimpleMVC-example-master/web/autoload.php:24
[Sun Oct 27 13:43:02.097798 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP  11. spl_autoload_call() /var/www/SimpleMVC-example-master/application/models/ExampleUser.php:11
[Sun Oct 27 13:43:02.097806 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP  12. Composer\\Autoload\\ClassLoader->loadClass() /var/www/SimpleMVC-example-master/application/models/ExampleUser.php:11
[Sun Oct 27 13:43:02.097813 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP  13. Composer\\Autoload\\includeFile() /var/www/SimpleMVC-example-master/vendor/composer/ClassLoader.php:322
[Sun Oct 27 13:43:02.097821 2019] [php7:notice] [pid 21705] [client 127.0.0.1:55580] PHP  14. include() /var/www/SimpleMVC-example-master/vendor/composer/ClassLoader.php:444
vedro-compota's picture

  1. какая версия php на хосте? (выполните phpinfo())
  2. как был решен предыдущий вопрос?

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

какая версия php на хосте?(выполните phpinfo())

PHP 7.3.6-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May 31 2019 11:06:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.6-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.1, Copyright (c) 2002-2019, by Derick Rethans
как был решен предыдущий вопрос?

Удалил старый проект и заново клонировал проект с ГитХаба в папку с другими имененем. Создал новый вирутуальный хост, добавил новый адрес в папку hosts. Теперь другая ошибка:

"This site can’t be reached simplemvc-example-master’s server IP address could not be found."

Адрес который пытаюсь открыть в строке браузера:

http://simplemvc-example-master/web/inde...

vedro-compota's picture

"This site can’t be reached simplemvc-example-master’s server IP address could not be found."

настройки виртуального хоста и host системы скиньте

как был решен предыдущий вопрос?

вообще лучше разбираться с проблемами, это одна из задач программистов)

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

настройки виртуального хоста:
Если я правильно понял то в путях DocumentRoot
и Directory.. необходимо указать
папку web из корня проекта, где и располагается index.php (точка входа)

<VirtualHost *:80>
ServerName SimpleMVC-example-master.loc
ServerAlias  SimpleMVC-example-master2

DocumentRoot /var/www/SimpleMVC-example-master/web/
<Directory /var/www/SimpleMVC-example-master/web/>
AllowOverride All
</Directory>

CustomLog /var/log/apache2/SimpleMVC-example-master.access.log common
ErrorLog  /var/log/apache2/SimpleMVC-example-master.error.log
LogLevel warn
</VirtualHost>

host системы:

127.0.0.1       localhost
127.0.1.1       pavel-VirtualBox
127.0.0.1       cms
127.0.0.1       my-first-cms
127.0.0.1       pavel_cms
127.0.0.1       SimpleMVC-example-master.loc

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.0.1       test1.loc
127.0.0.1       cms.loc
127.0.0.1       my-first-cms.loc
127.0.0.1       pavel_cms.loc
127.0.0.1       yii2test.local
127.0.0.1       SimpleMVC-example-master.loc
vedro-compota's picture

сравните

http://simplemvc-example-master

с

SimpleMVC-example-master.loc

есть разница?)

Поясню: в конфиге и в хостс у вас другое доменное имя фактически.
Надо пробовать открыть:
http://simplemvc-example-master.loc

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

есть разница?)

Разница есть), но не работает ни одна, ни вторая ссылка, хотя первая ссылается на index.php.

Попытка запуска второй ссылки:

"This page isn’t working simplemvc-example-master.loc is currently unable to handle this request.
HTTP ERROR 500"

Что касается регистра букв, то браузер автоматически делает все буквы в ссылке в нижнем регистре. Не думаю что это влияет..

vedro-compota's picture

Поясню: в конфиге и в хостс у вас другое доменное имя фактически.
Надо пробовать открыть:

http://simplemvc-example-master.loc

что на это? если 500-я, давайте опять смотреть лог

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

что на это? если 500-я, давайте опять смотреть лог

Последняя ошибка из error лога:

[Fri Nov 01 23:09:37.423998 2019]
 [php7:notice] [pid 29665] [client 127.0.0.1:56388] PHP Fatal error:
 Access level to ItForFree\\SimpleMVC\\User::__construct()
 must be public
 (as in class ItForFree\\SimpleMVC\\mvc\\Model)
 in
 /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/User.php on line 11
vedro-compota's picture

хотя первая ссылается на index.php.

вы тут неправильно понимаете работу сервера, если у вас корень уже в web, то обращение типа:

simplemvc-example-master/web/index.php

это обращение к директории:

web/web/

-- если смотреть от корня сайта.

Т.е. мы конфигурируем хост так, чтобы апач автоматом при открытии просто по домену открывал index.php - никое указание поддиректорий не требуется (по крайней мере это подразумевается в рабочем состоянии).

_____________
матфак вгу и остальная классика =)

vedro-compota's picture

PHP Fatal error:
 Access level to ItForFree\\SimpleMVC\\User::__construct()

что ж, это фатальная ошибка в движке на 7.3, возм. нужна правка во фрейморке, буду уточнять.

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

что ж, это фатальная ошибка в движке на 7.3, возм. нужна правка во фрейморке, буду уточнять.

Поможет ли смена версии php на хосте?

vedro-compota's picture

1)

PHP 7.3.6-1+ubuntu16.04.1+deb.sury.org+1 (cli) (built: May 31 2019 11:06:26) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.6, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.6-1+ubuntu16.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies
    with Xdebug v2.7.1, Copyright (c) 2002-2019, by Derick Rethans

каким образом вы получили такой ответ о версии? Вы выполнили phpinfo() в начале index.php сайта? Нас интересует именно та версия интерпретатора, с которой работает сервер - в консоли она может другой.

2) Ошибка о которой вы пишите, уже обсуждалась вот тут для 7.1 (у вас тоже сервер работает с 7.1? определять так), см. описание этого момента с закрытием конструктора. SimpleMVC нормально будет работать на 7.2 и только что я проверил для 7.3- все нормально.

Вывод: убедитесь что у вас не 7.1 на сайте, если все же он - переключитесь на 7.3

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

Все разобрался. Прочитав эту заметку http://fkn.ktu10.com/?q=node/8596, переключился на php 7.3.

Фреймворк SimpleMVС запустился нормально.

Исходной версией хоста была php 7.1. Определял добавив в начало файла ..web/index.php команду

 phpinfo();
Pavel1989's picture

Не могу зайти в учетную запись admin...

Настроил подключение к БД в web-local.php.
В поля формы ввожу логин и пороль для admin в соответствии с данными в БД:

Неверное имя пользователя или пароль

http://simplemvc-example-master.loc/inde...

Естесственно проверил CAPSLOCK, язык ввода) Пробовал копировать данные из БД и вставлять в форму - то же самое.

vedro-compota's picture

Неверное имя пользователя или пароль

какие данные для входа используете?
там должно быть (и логин и пароль):

admin
admin

Недавно это было исправлено в ридми (вы, видимо, клонировали до правки): https://github.com/it-for-free/SimpleMVC...

_____________
матфак вгу и остальная классика =)

Pavel1989's picture

Не могу понять причину, работал с кодом, может быть что-то сломал,
откатил полностью изменения до своего же коммита,
где была возможность входа в админку, но почему-то ссылки по-прежнему нет
и в логе та же ошибка)

image

Вот последние записи error.log Данная ошибка повторяется. Хотел бы для себя понять в чем дело:

[Fri Dec 13 01:30:24.636181 2019] [php7:notice] [pid 9067]
 [client 127.0.0.1:34662] PHP Notice:  Array to string conversion in /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/traits/AccessControl.php on line 97, referer: http://simplemvc-example-master.loc/
[Fri Dec 13 01:30:24.636316 2019]
 [php7:notice] [pid 9067] [client 127.0.0.1:34662] PHP Stack trace:, referer: http://simplemvc-example-master.loc/
[Fri Dec 13 01:30:24.637022 2019] [php7:notice] [pid 9067] [client 127.0.0.1:34662] PHP Fatal error:  Uncaught TypeError: Argument 1 passed to ItForFree\\SimpleMVC\\mvc\\Controller::isRoleInList() must be of the type string, array given, called in /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/traits/AccessControl.php on
 line 102 and defined in /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/traits/AccessControl.php:126\nStack trace:\n#0 /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/traits/AccessControl.php(102): ItForFree\\SimpleMVC\\mvc\\Controller->isRoleInList(Array, Array, 'guest')\n#1 /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/traits/AccessControl.php(71):
 ItForFree\\SimpleMVC\\mvc\\Controller->
IsEnabledInYii2Style('login', Array, Array)\n#2
 /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/User.php(135): ItForFree\\SimpleMVC\\mvc\\Controller->IsEnabled
('login')\n#3 /var/www/SimpleMVC-example-master/application/views/layouts/includes/main/nav.php(23): 
ItForFree\\SimpleMVC\\User->isAllowed('login/login')\n#4 /var/www/Si
 in /var/www/SimpleMVC-example-master/vendor/it-for-free/simple-mvc/src/traits/AccessControl.php on line 126, referer: 
http://simplemvc-example-master.loc/
Pavel1989's picture

Перезагрузил Ubuntu - проблема решилась сама собой)