There is no php closing tag in this file

Блог

Главная — Вопросы по программированию — в чем заключается ошибка подключения при переносе Moodle на локальный хост?

в чем заключается ошибка подключения при переносе Moodle на локальный хост?

#php #moodle

Вопрос:

Я пытаюсь запустить moodle на локальном хосте, появляется ошибка — что я делаю не так и как я могу это исправить ? код config.php -переименовал его в свой локальный хост, установил соединение

 dbtype = 'mysql'; $CFG->dblibrary = 'native'; $CFG->dbhost = 'localhost'; $CFG->dbname = 'moodledb'; $CFG->dbuser = 'root'; $CFG->dbpass = ''; $CFG->prefix = 'mdl_'; $CFG->dboptions = array ( 'dbpersist' => 0, 'dbport' => 3306, 'dbsocket' => '', 'dbcollation' => 'utf8mb4_unicode_ci', ); $CFG->wwwroot = 'C:/Server/data/htdocs/moodle/moodle'; $CFG->dataroot = 'C:/Server/data/htdocs/moodle/moodledata'; $CFG->admin = 'admin'; $CFG->directorypermissions = 0777; require_once(__DIR__ . '/lib/setup.php'); // There is no php closing tag in this file, // it is intentional because it prevents trailing whitespace problems! 

Код, который был на сервере в конфигурации:

 dbtype = 'mariadb'; $CFG->dblibrary = 'native'; $CFG->dbhost = 'localhost'; $CFG->dbname = 'moodledb'; $CFG->dbuser = 'moodleedu'; $CFG->dbpass = 'moodleedpas'; $CFG->prefix = 'mdl_'; $CFG->dboptions = array ( 'dbpersist' => 0, 'dbport' => 3306, 'dbsocket' => '', 'dbcollation' => 'utf8mb4_unicode_ci', ); $CFG->wwwroot = 'https://moodle.com'; $CFG->dataroot = '/var/www/moodledata'; $CFG->admin = 'admin'; $CFG->directorypermissions = 0777; require_once(__DIR__ . '/lib/setup.php'); // There is no php closing tag in this file, // it is intentional because it prevents trailing whitespace problems! 

Кроме того, возникает вопрос, где я могу более конкретно посмотреть список ошибок в moodle — где он записывает данные?

Комментарии:

1. «wwwroot» — это URL-адрес в конфигурации сервера, но локальный путь в локальной конфигурации… может быть?

2. @LarsStegelitz изменено: $CFG->wwwroot = ‘> локальный хост:3000/moodle/moodle ‘;. Ошибка все еще оставалась

Источник

Fatal error: Uncaught dml_exception: Table «config» does not exist when setting up Moodle 3.1 for the first time

I am attempting to setup Moodle 3.1 for the first time on my local development environment. When I enter the setup process I get the following error:

( ! ) Fatal error: Uncaught dml_exception: Table «config» does not exist in /Library/WebServer/Documents/moodle/lib/dml/moodle_database.php on line 621 ( ! ) dml_exception: Table «config» does not exist in /Library/WebServer/Documents/moodle/lib/dml/moodle_database.php on line 621

 List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -------------+----------+----------+-------------+-------------+----------------------- moodle | moodle | UTF8 | en_AU.UTF-8 | en_AU.UTF-8 | postgres | martyfenwick | UTF8 | en_AU.UTF-8 | en_AU.UTF-8 | template0 | martyfenwick | UTF8 | en_AU.UTF-8 | en_AU.UTF-8 | =c/martyfenwick + | | | | | martyfenwick=CTc/martyfenwick template1 | martyfenwick | UTF8 | en_AU.UTF-8 | en_AU.UTF-8 | =c/martyfenwick + | | | | | martyfenwick=CTc/martyfenwick testdb | testdb | UTF8 | en_AU.UTF-8 | en_AU.UTF-8 | (7 rows) 
createuser -SRDP moodle createdb -E utf8 -O moodle moodle 
dbtype = 'pgsql'; $CFG->dblibrary = 'native'; $CFG->dbhost = 'localhost'; $CFG->dbname = 'moodle'; $CFG->dbuser = 'moodle'; $CFG->dbpass = 'mypasswordinhere'; $CFG->prefix = 'mdl_'; $CFG->dboptions = array ( 'dbpersist' => 0, 'dbport' => 5432, 'dbsocket' => '', ); $CFG->wwwroot = 'http://moodle.dev'; $CFG->dataroot = '/Library/WebServer/Documents/moodledata'; $CFG->admin = 'admin'; $CFG->directorypermissions = 0777; // Force a debugging mode regardless the settings in the site administration @error_reporting(E_ALL | E_STRICT); // NOT FOR PRODUCTION SERVERS! @ini_set('display_errors', '1'); // NOT FOR PRODUCTION SERVERS! $CFG->debug = (E_ALL | E_STRICT); // === DEBUG_DEVELOPER - NOT FOR PRODUCTION SERVERS! $CFG->debugdisplay = 1; // NOT FOR PRODUCTION SERVERS! require_once(dirname(__FILE__) . '/lib/setup.php'); // There is no php closing tag in this file, // it is intentional because it prevents trailing whitespace problems! 

I’ve also tried running the install from the CLI with php admin/cli/install.php , but I then get this:

PHP Fatal error: Uncaught Error: Call to a member function is_temptable() on null in /Library/WebServer/Documents/moodle/lib/dml/pgsql_native_moodle_database.php:393

I’m at a loss to see what i’m doing wrong here and why I can’t build my DB schema (which is currently empty).

Читайте также:  Базовым уровень языка java

Источник

Общий форум

Fatal error: $CFG->dataroot is not configured properly, directory does not exist or is not accessible! Exiting.

вот файл конфиг (точки вместо данных)

unset($CFG);
global $CFG;
$CFG = new stdClass();

$CFG->dbhost = ‘. ‘;
$CFG->dbname = ‘. ‘;
$CFG->dbuser = ‘. ‘;
$CFG->dbpass = ‘. ‘;
$CFG->prefix = ‘rty_’;
$CFG->dboptions = array (
‘dbpersist’ => 0,
‘dbport’ => »,
‘dbsocket’ => »,
);

$CFG->wwwroot = ‘http://kurssit.bressons.com/’;
$CFG->dataroot = ‘home/u34808/public_html/moodledata’;
$CFG->admin = ‘admin’;

// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!

Re: Ошибка при переносе

$CFG->dataroot = 'home/u34808/public_html/moodledata';

А где слэш в начале пути? Должно быть /home/u34808/public_html/moodledata

Файлі МУдл находятся в public_html? Тогда вынесите moodledata за пределы public_html, каталог с данными не должен быть доступен через веб

Re: Ошибка при переносе

Вынести каталог за пределы паблик — тоесть положить его в папку выше или куда конкретнее? сори за глупый вопрос просто учусь ещё и moodle структуру не очень хорошо ещё знаю.

Re: Ошибка при переносе

Куда угодно в своей домашней директории (/home/u34808), но не там, где находятся файлы сайта мудл.

Если только учитесь, начинайте с чтения документации

Re: Ошибка при переносе

вот так вы имеете ввиду вынести за пределы?

Re: Ошибка при переносе

Ну выше вы же не можете разместить каталог, значит или тут, или, если нужно, создайте доп. каталог и положите moodledata в него.

ЗЫ: сайт сейчас ошибку выдает, вы в config.php не указали $CFG->dbtype и $CFG->dblibrary

Re: Ошибка при переносе

подставил вначале / — пробую так вначале пока перенос в процессе в другую папку.

Теперь другая ошибка вылезла

Читайте также:  Php mysql javascript and css pdf

Notice: Undefined property: stdClass::$dbtype in /home/u34808/public_html/kurssit/lib/dmllib.php on line 312 Notice: Undefined property: stdClass::$dbtype in /home/u34808/public_html/kurssit/lib/dmllib.php on line 339 Notice: Undefined property: stdClass::$dbtype in /home/u34808/public_html/kurssit/lib/dmllib.php on line 340

Re: Ошибка при переносе

Теперь другая ошибка вылезла

Вы «вот файл конфиг (точки вместо данных)» со старого хостинга сохранили и перенесли на этот хостинг? Или заново состряпали»?

В конфиге пропущены переменные $CFG->dbtype и $CFG->dblibrary. Второе не так критично, как первое. Вот на отсутствие dbtype в конфиге и идет ругань.

ЗЫ: я же спрашивал, файлы мудл лежат прямо в public_html или нет? Теперь вижу, что файлы сайта в каталоге kurssit, поэтому moodledata можно оставить в public_html

Re: Ошибка при переносе

да верно точки это я просто данные закрыл был. и похоже упустил (вернее удалил. ) эти две строчки о которых вы написали. сейчас исправлю.

Re: Ошибка при переносе

теперь вот — это так и должно быть или должно сразу запуститься?

Источник

General help

I want to dynamically write the config.php file. The database details should change based on the params passed from another file. How do I get that done? Thanks. Moodle-3.5.x. Is there a way to put placeholders as params and pass the values dynamically?

unset($CFG);
global $CFG;
$CFG = new stdClass();

$CFG->dbtype = ‘mysqli’;
$CFG->dblibrary = ‘native’;
$CFG->dbhost = ‘localhost’;
$CFG->dbname = ‘moodle35’;
$CFG->dbuser = ‘moodle’;
$CFG->dbpass = ‘moodle’;
$CFG->prefix = ‘mdl_’;
$CFG->dboptions = array (
‘dbpersist’ => 0,
‘dbport’ => »,
‘dbsocket’ => ‘1’,
‘dbcollation’ => ‘utf8mb4_unicode_ci’,
);

// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!«`

unset($CFG);
global $CFG;
$CFG = new stdClass();

$CFG->dbtype = ‘mysqli’;
$CFG->dblibrary = ‘native’;
$CFG->dbhost = ‘%host%’;
$CFG->dbname = ‘%dnname%’;
$CFG->dbuser = ‘%dbuser%’;
$CFG->dbpass = ‘%dbpass%’;
$CFG->prefix = ‘mdl_’;
$CFG->dboptions = array (
‘dbpersist’ => 0,
‘dbport’ => »,
‘dbsocket’ => ‘1’,
‘dbcollation’ => ‘utf8mb4_unicode_ci’,
);

Читайте также:  Python regex any number

$CFG->wwwroot = ‘http://localhost:8888/moodle35’;
// $CFG->wwwroot = ‘http://192.168.0.199:8888/moodle35’;
$CFG->dataroot = ‘%moodledata%;
$CFG->admin = ‘admin’;

// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!«`

Re: How to dynamically update the config.php file

Hi Kehinde,
bootstrap settings are configured only in config.php , more other ones via DB (you can override those settings here too e.g. debugging).

You need to create a default set of settings and then add here the code to route the default settings based on your logic.
Some spare examples:

Re: How to dynamically update the config.php file

Re: How to dynamically update the config.php file

Thanks, Matteo Scaramuccia. I’ll give it a shot. After digging a bit into the doc — https://github.com/platformsh/platformsh-example-moodle/blob/master/public/config.php, it seems promising, but I don’t understand what is where it is fetching these params from

if ($config->isAvailable())
$CFG->dbtype = ‘mariadb’;
$CFG->dblibrary = ‘native’;
$CFG->dbhost = $config->relationships[‘database’][0][‘host’];
$CFG->dbname = $config->relationships[‘database’][0][‘path’];
$CFG->dbuser = $config->relationships[‘database’][0][‘username’];
$CFG->dbpass = $config->relationships[‘database’][0][‘password’];
$CFG->prefix = ‘mdl_’; // prefix to use for all table names
$CFG->dboptions = array(
‘dbpersist’ => false, // should persistent database connections be
// used? set to ‘false’ for the most stable
// setting, ‘true’ can improve performance
// sometimes
‘dbsocket’ => false, // should connection via UNIX socket be used?
// if you set it to ‘true’ or custom path
// here set dbhost to ‘localhost’,
// (please note mysql is always using socket
// if dbhost is ‘localhost’ — if you need
// local port connection use ‘127.0.0.1’)
‘dbport’ => », // the TCP port number to use when connecting
// to the server. keep empty string for the
// default port
‘dbhandlesoptions’ => false,// On PostgreSQL poolers like pgbouncer don’t
);

where is this from $config->isAvailable()? Please, I’ll be glad if you can explain a bit in the context of dynamically setting the config.php file.

Источник

Оцените статью