chilek / lms

Lan Management System (LMS) public GIT repo
http://lms.org.pl
126 stars 135 forks source link

Aktualizacja z 1.11.13 do 1.11.21 i Fatal error: cannot connect to database! #1135

Closed milo-23 closed 6 years ago

milo-23 commented 7 years ago

Witam,

Mam postawionego Debiana 6 z LMS 1.11.13 podczas próby aktualizacji do najnowszej z git podnosiłem co chciał aż pojawił mi się komunikat że nie można połączyć się z bazą danych.

Log z Apache2: [Sun May 07 01:41:08 2017] [error] [client 78.88.xx.xx] PHP Warning: Unknown config variable "type" in section "database"! in /var/www/index.php on line 94 [Sun May 07 01:42:24 2017] [error] [client 78.88.xx.xx] PHP Warning: Unknown config variable "type" in section "database"! in /var/www/userpanel/index.php on line 98

Baza jest, ponieważ przez phpmyadmin loguje się do niej... Ewentualnie jak podnosiłem wersje PHP to pytał się mnie czy zostawić chyba php.ini czy nadpisać nowszą. Pomoże ktoś?

interduo commented 7 years ago

Nie wykasowałeś czegoś z konfiga?

Zerknij tutaj i użyj tego pliku https://github.com/lmsgit/lms/blob/master/sample/lms.ini#L94

Widać że masz dwa razy "type" w linii 94 i 98

milo-23 commented 7 years ago

Dziękuje za odpowiedz.

Komunikat o nieznanym "type" jest 2 razy dlatego że sprawdzałem czy wyświetli mi się userpanel jeżeli nie mogę zalogować się do samego LMS-a.

Podczas aktualizacji skopiowałem i rozpakowałem cały katalog z LMS-em do www i nic tam nie zmieniam a pojawia się ten błąd, co ciekawsze jak zejdę do wersji 1.11.13 wszystko działa, jak pobiorę wypakuje do katalogu www wersję inetLMS po nadaniu uprawnień też wszystko działa.

Ma ktoś inny pomysł w czym problem?

interduo commented 7 years ago

Po poprawieniu konfiga co w logach?

milo-23 commented 7 years ago

Nie pomogło, ale pomyślałem sobie że raz jeszcze wypakuje 1.11.21 i teraz tak się zastanawiam że ten composer może być winny albo php:

root@inter:/var/www# composer install PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/suhosin.so' - /usr/lib/php5/20100525/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0 Do not run Composer as root/super user! See https://getcomposer.org/root for details Loading composer repositories with package information Updating dependencies (including require-dev) Package operations: 12 installs, 0 updates, 0 removals

root@inter:/var/www# composer install / composer update PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20100525/suhosin.so' - /usr/lib/php5/20100525/suhosin.so: cannot open shared object file: No such file or directory in Unknown on line 0 Do not run Composer as root/super user! See https://getcomposer.org/root for details Invalid argument / composer update. Use "composer require / composer update" instead to add packages to your composer.json.

maciejhpl commented 7 years ago

jaka wersja php ? w php7 nie ma mysql

Warning This extension was deprecated in PHP 5.5.0, and it was removed in PHP 7.0.0. Instead, the MySQLi or PDO_MySQL extension should be used. See also MySQL: choosing an API guide. Alternatives to this function include:

w lms.ini ustaw

[database]
type = mysqli
interduo commented 7 years ago

Poradziłeś sobie z tym?

futszak commented 7 years ago

coś dalej musi być nie tak, zasadniczo postawilem oddzielnego vps-a pod lms-a w nadzieji, że uda się postawić php5 a tu dupa, defaultowo instaluje php7, a po zmianie według tego co powyżej pojawia coś koncert błędów:

[Mon Oct 09 10:30:32.041436 2017] [:error] [pid 18370] [client 78.11.208.117:59996] PHP Fatal error: Uncaught TypeError: Argument 1 passed to ConfigLoader::parseRawConfig() must be of the type array, null given, called in /var/www/lms/lib/LMSConfig/ConfigLoader.php on line 51 and defined in /var/www/lms/lib/LMSConfig/ConfigLoader.php:105\nStack trace:\n#0 /var/www/lms/lib/LMSConfig/ConfigLoader.php(51): ConfigLoader->parseRawConfig(NULL, Array)\n#1 /var/www/lms/lib/LMSConfig/LMSConfig.php(100): ConfigLoader->loadConfig(Array)\n#2 /var/www/lms/lib/LMSConfig/LMSConfig.php(190): LMSConfig::getUiConfig(Array)\n#3 /var/www/lms/lib/LMSConfig/LMSConfig.php(150): LMSConfig::mergeConfigs(Array)\n#4 /var/www/lms/lib/LMSConfig/ConfigHelper.php(81): LMSConfig::getConfig()\n#5 /var/www/lms/index.php(129): ConfigHelper::checkConfig('phpui.force_ssl')\n#6 {main}\n thrown in /var/www/lms/lib/LMSConfig/ConfigLoader.php on line 105

interduo commented 7 years ago

composer update zrobiłeś?

futszak commented 7 years ago

w kolejności po rozpakowaniu LMS-a w katalogu:

wget https://getcomposer.org/download/1.5.2/composer.phar php composer.phar install

potem zgodnie z instrukcją na stronie

mkdir /var/www/lms/img/xajax_js/deferred chown -R 33:33 /var/www/lms/img/xajax_js/deferred chmod -R 755 /var/www/lms/img/xajax_js/deferred

poza ściągnięciem najnowszej wersji php composera trzeba go jeszcze update-ować ?

interduo commented 7 years ago

Ja u siebie gdzieś w skrypcie mam: composer self-update composer update

i działa od wieków ;)

interduo commented 7 years ago

Może uprawnienia na katalog lub plik konfiguracyjny lms.ini? Instaluj PHP7 - znacząco szybciej działa.

interduo commented 7 years ago

W funkcję loadConfig wrzuć: print_r($raw_config); die(); na sam początek i będzie wiadomo co jest nie tak.

futszak commented 7 years ago

wyrzuca według mnie config ściąga prawidłowo:

Array ( [database] => Array ( [type] => mysqli [host] => localhost [user] => lms [password] => l*****d [database] => lms ) [directories] => Array ( ) )

interduo commented 7 years ago

ścieżki w lms.ini ?

futszak commented 7 years ago

powpisywałem, pojawia mi się w logach od apache-a taki komunikat:

[Mon Oct 09 13:59:14.442958 2017] [:error] [pid 18348] [client 78.11.208.117:33980] PHP Warning: Invalid argument supplied for foreach() in /var/www/lms/lib/LMSConfig/IniConfigParser.php on line 49 [Mon Oct 09 13:59:14.443114 2017] [:error] [pid 18348] [client 78.11.208.117:33980] PHP Warning: Invalid argument supplied for foreach() in /var/www/lms/lib/LMSConfig/IniConfigParser.php on line 49 [Mon Oct 09 13:59:14.443202 2017] [:error] [pid 18348] [client 78.11.208.117:33980] PHP Warning: Invalid argument supplied for foreach() in /var/www/lms/lib/LMSConfig/IniConfigParser.php on line 49 [Mon Oct 09 13:59:14.443265 2017] [:error] [pid 18348] [client 78.11.208.117:33980] PHP Warning: Invalid argument supplied for foreach() in /var/www/lms/lib/LMSConfig/IniConfigParser.php on line 49 [Mon Oct 09 13:59:14.443324 2017] [:error] [pid 18348] [client 78.11.208.117:33980] PHP Warning: Invalid argument supplied for foreach() in /var/www/lms/lib/LMSConfig/IniConfigParser.php on line 49 [Mon Oct 09 13:59:14.443440 2017] [:error] [pid 18348] [client 78.11.208.117:33980] PHP Warning: Unknown config variable "type" in section "database"! in /var/www/lms/index.php on line 94

interduo commented 7 years ago

coś masz skopsane w konfigu lms.ini moim zdaniem lub nie masz paczki IniConfig w php

interduo commented 7 years ago

Postaw na czystej wirtualce zgodnie z instrukcją wszystko a potem podmień bazę ;)

futszak commented 7 years ago

zrobiłem jak radziłeś, czysty debian z iso, specjalnie pod LMS-a, czysta baza, $raw_config wygląda tak:

Array ( [database] => Array ( [type] => mysqli [host] => localhost [user] => lms [password] => l*****e [database] => lms ) [directories] => Array ( [sys_dir] => /var/www/html/ [lib_dir] => /var/www/html/lib/ [backup_dir] => /var/backup/lms/ [doc_dir] => /var/www/documents/ [smarty_compile_dir] => /var/smarty/compile/lms [smarty_templates_dir] => /var/www/html/templates ) )

a w logach się wywala tak:

[Tue Oct 10 11:13:58.074668 2017] [:error] [pid 14684] [client 78.11.208.117:57116] PHP Fatal error: Uncaught TypeError: Argument 1 passed to ConfigLoader::parseRawConfig() must be of the type array, null given, called in /var/www/html/lib/LMSConfig/ConfigLoader.php on line 53 and defined in /var/www/html/lib/LMSConfig/ConfigLoader.php:107\nStack trace:\n#0 /var/www/html/lib/LMSConfig/ConfigLoader.php(53): ConfigLoader->parseRawConfig(NULL, Array)\n#1 /var/www/html/lib/LMSConfig/LMSConfig.php(100): ConfigLoader->loadConfig(Array)\n#2 /var/www/html/lib/LMSConfig/LMSConfig.php(192): LMSConfig::getUiConfig(Array)\n#3 /var/www/html/lib/LMSConfig/LMSConfig.php(152): LMSConfig::mergeConfigs(Array)\n#4 /var/www/html/lib/LMSConfig/ConfigHelper.php(82): LMSConfig::getConfig()\n#5 /var/www/html/index.php(129): ConfigHelper::checkConfig('phpui.force_ssl')\n#6 {main}\n thrown in /var/www/html/lib/LMSConfig/ConfigLoader.php on line 107

od rana z tym walcze, od procedury do procedury, od pliku do pliku i nie potrafię znaleźć problemu :( Cały czas ten sam błąd :(

Jak zainstalować paczke IniConfig w php ?

interduo commented 7 years ago

Skrobnij do mnie na FB lub maila to Ci pomogę zdalnie.

futszak commented 7 years ago

dziękuję za pomoc, udało się. problemem był brak zawartości bazy danych, którą trzeba było ręcznie zaimportować, a sam LMS nie informuje o tym fakcie, w przeciwieństwie do innych systemów jak np. wordpress, który przy pierwszym uruchomieniu tworzy potrzebną strukturę danych

interduo commented 6 years ago

@chilek to jest do zamknięcia.