Формат даты и времени
В таблице сведены основные форматы даты и времени, используемые в разных странах.
Новинки документации в соцсетях:
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.
Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
date
Возвращает строку, отформатированную в соответствии с указанным шаблоном format . Используется метка времени, заданная аргументом timestamp , или текущее системное время, если timestamp не задан. Таким образом, timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time() .
Список параметров
Шаблон результирующей строки ( string ) с датой. См. параметры форматирования ниже. Также существует несколько предопределенных констант даты/времени, которые могут быть использованы вместо этих параметров. Например: DATE_RSS заменяет шаблон ‘D, d M Y H:i:s’.
| Символ в строке format | Описание | Пример возвращаемого значения |
|---|---|---|
| День | — | — |
| d | День месяца, 2 цифры с ведущим нулём | от 01 до 31 |
| D | Текстовое представление дня недели, 3 символа | от Mon до Sun |
| j | День месяца без ведущего нуля | от 1 до 31 |
| l (строчная ‘L’) | Полное наименование дня недели | от Sunday до Saturday |
| N | Порядковый номер дня недели в соответствии со стандартом ISO-8601 (добавлен в версии PHP 5.1.0) | от 1 (понедельник) до 7 (воскресенье) |
| S | Английский суффикс порядкового числительного дня месяца, 2 символа | st, nd, rd или th. Применяется совместно с j |
| w | Порядковый номер дня недели | от 0 (воскресенье) до 6 (суббота) |
| z | Порядковый номер дня в году (начиная с 0) | От 0 до 365 |
| Неделя | — | — |
| W | Порядковый номер недели года в соответствии со стандартом ISO-8601; недели начинаются с понедельника (добавлено в версии PHP 4.1.0) | Например: 42 (42-я неделя года) |
| Месяц | — | — |
| F | Полное наименование месяца, например January или March | от January до December |
| m | Порядковый номер месяца с ведущим нулём | от 01 до 12 |
| M | Сокращенное наименование месяца, 3 символа | от Jan до Dec |
| n | Порядковый номер месяца без ведущего нуля | от 1 до 12 |
| t | Количество дней в указанном месяце | от 28 до 31 |
| Год | — | — |
| L | Признак високосного года | 1, если год високосный, иначе 0. |
| o | Номер года в соответствии со стандартом ISO-8601. Имеет то же значение, что и Y, кроме случая, когда номер недели ISO (W) принадлежит предыдущему или следующему году; тогда будет использован год этой недели. (добавлен в версии PHP 5.1.0) | Примеры: 1999 или 2003 |
| Y | Порядковый номер года, 4 цифры | Примеры: 1999, 2003 |
| y | Номер года, 2 цифры | Примеры: 99, 03 |
| Время | — | — |
| a | Ante meridiem (англ. «до полудня») или Post meridiem (англ. «после полудня») в нижнем регистре | am или pm |
| A | Ante meridiem или Post meridiem в верхнем регистре | AM или PM |
| B | Время в формате Интернет-времени (альтернативной системы отсчета времени суток) | от 000 до 999 |
| g | Часы в 12-часовом формате без ведущего нуля | от 1 до 12 |
| G | Часы в 24-часовом формате без ведущего нуля | от 0 до 23 |
| h | Часы в 12-часовом формате с ведущим нулём | от 01 до 12 |
| H | Часы в 24-часовом формате с ведущим нулём | от 00 до 23 |
| i | Минуты с ведущим нулём | от 00 до 59 |
| s | Секунды с ведущим нулём | от 00 до 59 |
| u | Микросекунды (добавлено в версии PHP 5.2.2). Учтите, что date() всегда будет возвращать 000000, т.к. она принимает целочисленный ( integer ) параметр, тогда как DateTime::format() поддерживает микросекунды. | Например: 654321 |
| Временная зона | — | — |
| e | Код шкалы временной зоны(добавлен в версии PHP 5.1.0) | Примеры: UTC, GMT, Atlantic/Azores |
| I (заглавная i) | Признак летнего времени | 1, если дата соответствует летнему времени, 0 в противном случае. |
| O | Разница с временем по Гринвичу, в часах | Например: +0200 |
| P | Разница с временем по Гринвичу с двоеточием между часами и минутами (добавлено в версии PHP 5.1.3) | Например: +02:00 |
| T | Аббревиатура временной зоны | Примеры: EST, MDT . |
| Z | Смещение временной зоны в секундах. Для временных зон, расположенных западнее UTC возвращаются отрицательные числа, а расположенных восточнее UTC — положительные. | от -43200 до 50400 |
| Полная дата/время | — | — |
| c | Дата в формате стандарта ISO 8601 (добавлено в PHP 5) | 2004-02-12T15:19:21+00:00 |
| r | Дата в формате » RFC 2822 | Например: Thu, 21 Dec 2000 16:01:07 +0200 |
| U | Количество секунд, прошедших с начала Эпохи Unix (The Unix Epoch, 1 января 1970 00:00:00 GMT) | Смотрите также time() |
Любые другие символы, встреченные в строке-шаблоне, будут выведены в результирующую строку без изменений. Z всегда возвращает 0 при использовании gmdate() .
Замечание:
Поскольку рассматриваемая функция принимает в качестве параметра временные метки типа integer , форматирующий символ u будет полезен только при использовании функции date_format() и пользовательских меток времени, созданных с помощью функции date_create() .
Необязательный параметр timestamp представляет собой integer метку времени, по умолчанию равную текущему локальному времени, если timestamp не указан. Другими словами, значение по умолчанию равно результату функции time() .
Возвращаемые значения
Возвращает отформатированную строку с датой. При передаче нечислового значения в качестве параметра timestamp будет возвращено FALSE и вызвана ошибка уровня E_WARNING .
Ошибки
Каждый вызов к функциям даты/времени при неправильных настройках временной зоны сгенерирует ошибку уровня E_NOTICE , и/или ошибку уровня E_STRICT или E_WARNING при использовании системных настроек или переменной окружения TZ . Смотрите также date_default_timezone_set()
Список изменений
Теперь ошибки, связанные с временными зонами, генерируют ошибки уровня E_STRICT и E_NOTICE .
Примеры
Пример #1 Примеры использования функции date()
// установка временной зоны по умолчанию. Доступно начиная с версии PHP 5.1
date_default_timezone_set ( ‘UTC’ );
?php
// выведет примерно следующее: Monday
echo date ( «l» );
// выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
echo date ( ‘l jS \of F Y h:i:s A’ );
// выведет: July 1, 2000 is on a Saturday
echo «July 1, 2000 is on a » . date ( «l» , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
/* пример использования константы в качестве форматирующего параметра */
// выведет примерно следующее: Wed, 25 Sep 2013 15:28:57 -0700
echo date ( DATE_RFC2822 );
// выведет примерно следующее: 2000-07-01T00:00:00+00:00
echo date ( DATE_ATOM , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
?>
Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слеша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.
Пример #2 Экранирование символов в функции date()
// выведет примерно следующее: Wednesday the 15th
echo date ( ‘l \t\h\e jS’ );
?>?php
Для вывода прошедших и будущих дат удобно использовать функции date() и mktime() .
Пример #3 Пример совместного использования функций date() и mktime()
$tomorrow = mktime ( 0 , 0 , 0 , date ( «m» ) , date ( «d» )+ 1 , date ( «Y» ));
$lastmonth = mktime ( 0 , 0 , 0 , date ( «m» )- 1 , date ( «d» ), date ( «Y» ));
$nextyear = mktime ( 0 , 0 , 0 , date ( «m» ), date ( «d» ), date ( «Y» )+ 1 );
?>?php
Замечание:
Данный способ более надежен, чем простое вычитание и прибавление секунд к метке времени, поскольку позволяет при необходимости гибко осуществить переход на летнее/зимнее время.
Ещё несколько примеров использования функции date() . Важно отметить, что следует экранировать все символы, которые необходимо оставить без изменений. Это справедливо и для тех символов, которые в текущей версии PHP не распознаются как форматирующие, поскольку это может быть введено в следующих версиях. Для экранировании управляющих последовательностей (например, \n) следует использовать одинарные кавычки.
Пример #4 Форматирование с использованием date()
// Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
// и мы находимся во временной зоне Mountain Standard Time (MST)
?php
$today = date ( «F j, Y, g:i a» ); // March 10, 2001, 5:16 pm
$today = date ( «m.d.y» ); // 03.10.01
$today = date ( «j, n, Y» ); // 10, 3, 2001
$today = date ( «Ymd» ); // 20010310
$today = date ( ‘h-i-s, j-m-y, it is w Day’ ); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
$today = date ( ‘\i\t \i\s \t\h\e jS \d\a\y.’ ); // it is the 10th day.
$today = date ( «D M j G:i:s T Y» ); // Sat Mar 10 17:16:18 MST 2001
$today = date ( ‘H:m:s \m \i\s\ \m\o\n\t\h’ ); // 17:03:18 m is month
$today = date ( «H:i:s» ); // 17:16:18
$today = date ( «Y-m-d H:i:s» ); // 2001-03-10 17:16:18 (формат MySQL DATETIME)
?>
Для форматирования дат на других языках используйте вместо date() функции setlocale() и strftime() .
Примечания
Замечание:
Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime() . Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).
Подсказка
Начиная с версии PHP 5.1, временную метку начала запроса можно получить из поля $_SERVER[‘REQUEST_TIME’] .
Смотрите также
- gmdate() — Форматирует дату/время по Гринвичу
- idate() — Преобразует локальное время/дату в целое число
- getdate() — Возвращает информацию о дате/времени
- getlastmod() — Определение времени последней модификации страницы
- mktime() — Возвращает метку времени Unix для заданной даты
- strftime() — Форматирует текущую дату/время с учетом текущих настроек локали
- time() — Возвращает текущую метку времени Unix
- strtotime() — Преобразует текстовое представление даты на английском языке в метку времени Unix
- Предопределенные константы даты и времени
Технические вопросы
При обновлении версии Moodle и при просмотре версии ПО (Администрирование-Сервер-Среда) в самом низу есть такая картина:
Информация unsupported_db_table_row_format
Отчет непрохождение данного теста указывает на возможную проблему Your database has tables using Antelope as the file format. You are recommended to convert the tables to the Barracuda file format. See the documentation Administration via command line for details of a tool for converting InnoDB tables to Barracuda.
Статус Проверьте
Насколько я понял, таблицы баз данных в формате Антилопа (ну или как это можно назвать) малы или коротки, и необходимо таблицу перевести в формат Барракуда.
Ссылка на мануал есть, но описанная инструкция мне не очень понятна: » Row size too large (>8126). Changing some columns to TEXT or BLOB or using ROW_FORMAT=DYNAMIC or ROW_FORMAT=COMPRESSED may help.
The error is due to the fact that the MySQL default InnoDB file format (Antelope) cannot handle more than 10 text columns. Thus you are recommended to change the InnoDB file format to Barracuda using the following command: php admin/cli/mysql_compressed_rows.php «. Последняя строка я так понял для ОС Linux и мне неподходит, в консоли бд команда конвертации не работает почему то.
Уважаемые коллеги, кто столкнулся с данной проблемой, и главное, нашел решение, опишите ваши действия, желательно подробно. Какие команды для бд, или программы или инструкции. Спасибо.
ОС Windows Server 2008 R2 Standart
БД MySQL Server 5.6
Moodle 2.8.5+ (Build: 20150417)
Сумма оценок: —
В ответ на Алексей Грабко
Re: Антилопа против Барракуды
от Vadim Tabunshchik — вторник, 21 апреля 2015, 19:00
В винде нужно выполнить команду в консоли (cmd):
…>путь_к_каталогу_установки_РНР/php.exe путь_к_каталогу_установки_moodle/admin/cli/mysql_compressed_rows.php -f
-f — команда «пофиксить» все ошибки в таблицах
-l — посмотреть таблицы с ошибками
-s — посмотреть, какие SQL-запросы будут выполнены (их можно выполнить вручную в phpMyAdmin)
Нужны права суперпользователя БД, иначе ничего не выйдет. Можно для начала сразу в конфиге MySQL прописать:
Сервер рестартануть, потом запускать mysql_compressed_rows.php
ЗЫ: там всего-то 5-6 таблиц нужно поправить, где кол-во текстовых полей > 10
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Алексей Грабко — воскресенье, 26 апреля 2015, 03:40
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Алексей Грабко
Re: Антилопа против Барракуды
от Алексей Грабко — среда, 6 мая 2015, 18:09
Снова вышла эта ошибка, хотя все сделал как вы написали. Хм. Что теперь?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Лицей № 10 — четверг, 30 апреля 2015, 17:18
Скажите пожалуйста, что нужно сделать, если moodle у нас на ubuntu 14? Спасибо.
| PHP Version | 5.5.9-1ubuntu4.9 |
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Максим Звягинцев — среда, 3 июня 2015, 21:33
При вводе команды возникает ошибка или так и должно? Помогите пожалуйста. В SQL запросах пишет что нужны суперпривилегии. Как мне получить доступ?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Максим Звягинцев
Re: Антилопа против Барракуды
от Vadim Tabunshchik — четверг, 4 июня 2015, 04:12
Переменные, объявляемые через SET GLOBAL, можно навсегда ручками прописать в my.ini. Перезапустить сервер MySQL.
Потом выполнить скрипт mysql_compressed_rows.php
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Максим Звягинцев — четверг, 4 июня 2015, 21:05
Прописать то прописал. В этом нет проблем. Скрипт не запускается. Пишет ошибку. (см. скриншот cmd выше)
php пишет @cannot find module@
а затем ошибка @cannot enable GLOBAL innodb_file_per . @
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Максим Звягинцев
Re: Антилопа против Барракуды
от Vadim Tabunshchik — пятница, 5 июня 2015, 13:51
PHP как устанавливали/настраивали?
cannot find module — закомментируйте в php.ini строку extension=php_snmp.dll
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Максим Звягинцев — пятница, 5 июня 2015, 18:30
«cannot find module — закомментируйте в php.ini строку extension=php_snmp.dll «
Помогло. Осталось решить проблему с Cannot enable GLOBAL.
До меня уже все было установлено и настроено. Поэтому понятия не имею что и как делали.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Максим Звягинцев
Re: Антилопа против Барракуды
от Vadim Tabunshchik — пятница, 5 июня 2015, 18:46
Осталось решить проблему с Cannot enable GLOBAL.
Что там решать, пишет же:

Доступ запрещен, нужны привелегии супер-пользователя, учетка phpmyadmin тоже не позволяет менять глобальные переменные. Поэтому и в CMD ошибка.
ЗЫ: ручками прописать в my.ini. Перезапустить сервер MySQL. Выполнить в phpmyadmin запросы ALTER TABLE…
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Максим Звягинцев — понедельник, 8 июня 2015, 21:56
Все. Разобрался я в своей каше. Оказывается я не тот my.ini отредактировал, у меня 2 папки с mysql, а в рабочую mysql эти строки вставил не в то место. Все теперь переконвертировалось, предупреждение исчезло. Спасибо за помощь.
PS: может кому да пригодится «Сброс пароля mysql под windows» http://www.zonepc.ru/sbros-parolya-mysql-pod-windows/
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Миша З — четверг, 9 марта 2017, 08:21
На каком языке вы общаетесь) я ничего не понял, у меня такая же ошибка. Где взять этот Фаил
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Максим Звягинцев
Re: Антилопа против Барракуды
от Kris KIm — понедельник, 12 декабря 2016, 19:13
Ввел следующие команды
SET SESSION sql_mode=STRICT_ALL_TABLES;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=Barracuda;
ALTER TABLE имя базы.mdl_certificate ROW_FORMAT=Compressed;
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Алексей Грабко
Re: Антилопа против Барракуды
от Алексей Грабко — среда, 6 мая 2015, 18:25
и снова все нормально после ваших процедур. Надеюсь постоянно все это делать каждый раз не нужно будет.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Алексей Грабко
Re: Антилопа против Барракуды
от Alexander Matveyev — четверг, 25 июня 2015, 22:24
Стоит ли предавать этому значение? Ситуация та же, обновился с 2.7.1 на 2.7.8+. WinServ 2008 R2+MySQL.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Alexander Matveyev
Re: Антилопа против Барракуды
от Александр Козлов — пятница, 26 июня 2015, 16:08
если ситема указывает то наверно стоит, у пеня лично проблем небыло, когда на 2.9 переходил, все по инструкции сделал и скрипт без проблем заработал, просто через браузер его запустил
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр Козлов
Re: Антилопа против Барракуды
от Alexander Matveyev — вторник, 30 июня 2015, 18:19
Просто скрипт через браузер? Без танцев, которые здесь описаны? Это для Unix-ов наверное
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Alexander Matveyev
Re: Антилопа против Барракуды
от Александр Козлов — вторник, 30 июня 2015, 19:07
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр Козлов
Re: Антилопа против Барракуды
от Alexey Piguzov — вторник, 30 июня 2015, 20:41
Александр, а можно подробней пожалуйста. Там инструкция большая и даже с переводчиком не очень понятно. А на работающей системе страшно что-либо испортить.
У нас Ubuntu сервер. Думаю тоже решение, что и для Debian прокатит. Только что и куда вводить. Доступ к базе есть, скрипт какой запустить нужно?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Alexey Piguzov
Re: Антилопа против Барракуды
от Александр Козлов — вторник, 30 июня 2015, 23:37
Tool for converting tables
просто вводил всё подряд по пунктам и было мне счастье
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр Козлов
Re: Антилопа против Барракуды
от Alexey Piguzov — среда, 1 июля 2015, 18:40
Выполнил в командной строке
$ php /var/www/moo/admin/cli/mysql_compressed_rows.php --list
mdl_block_exacompexamples Compact (needs fixing)
mdl_block_exacomptopics Compact (needs fixing)
mdl_certificate Compact (needs fixing)
mdl_data Compact (needs fixing)
То есть есть такие таблицы, которые нужно исправить.
Выполняю следующий пункт и получаю ошибку:
$ php /var/www/moo/admin/cli/mysql_compressed_rows.php --fix
Cannot enable GLOBAL innodb_file_per_table setting, use --showsql option and execute the statements manually. Ошибка записи в базу данных .
Как можно это исправить?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Alexey Piguzov
Re: Антилопа против Барракуды
от Alexey Piguzov — среда, 1 июля 2015, 19:03
Сделал через суперпользователя БД. Все получилось. Спасибо!
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Alexey Piguzov
Re: Антилопа против Барракуды
от Alexander Matveyev — понедельник, 27 июля 2015, 16:33
А у меня чего-то не проходит, я все делал по инструкции, т .е. прописал в my.ini «innodb_file_per_table = 1 innodb_file_format = Barracuda». Потом сделал рестарт mysql, потом в командной строке через TC прописал
c:\Program Files (x86)\PHP\v5.5\php.exe c:\inetpub\wwwroot\moodle\admin\cli\mysql_compressed_rows.php -f -s -l
У меня появилось окно в котором указывались таблицы и параметры (compact не помню уже). Вроде все норм, никаких ошибок. Но сообщение так и осталось. Windows Server 2008 R2, IIS 7, Moodle 2.7.8+. Может я что-то упустил?
Извиняюсь, все получилось. Делал все по порядку c:\Program Files (x86)\PHP\v5.5\php.exe c:\inetpub\wwwroot\moodle\admin\cli\mysql_compressed_rows.php -f, потом уже остальные параметры -s -l смотрел)))
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Alexey Piguzov
Re: Антилопа против Барракуды
от Александр . — четверг, 11 августа 2016, 13:22
Как сделать коменду через суперпользователя БД ?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр .
Re: Антилопа против Барракуды
от Vadim Tabunshchik — четверг, 11 августа 2016, 17:48
Как сделать коменду через суперпользователя БД ?
Где мудл установлен? Если на хостинге, то вы не сможете выполнить команды от имени суперпользователя. И с этим предупреждением придется смириться.
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Александр . — четверг, 11 августа 2016, 18:23
сайт находится на собственном сервере (Freebsd10)
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр .
Re: Антилопа против Барракуды
от Vadim Tabunshchik — четверг, 11 августа 2016, 18:34
Выполните скрипт /admin/cli/mysql_compressed_rows.php из консоли. В самом скрипте все команды подробно описаны.
Просмотр проблемных таблиц:
/usr/local/bin/php admin/cli/mysql_compressed_rows.php -l
-i, —info Показать информацию о БД
-f, —fix Пофиксить проблемные таблицы
-s, —showsql Показать выполняемые запросы
Эти запросы можно выполнить и в phpmyadmin, если не получится через скрипт. Права рута тут не нужны, достаточно работать от имени пользователя БД. В my.cnf пропишите innodb_file_per_table=1 и innodb_file_format=Barracuda, перезапустите сервер MySQL
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Александр . — четверг, 11 августа 2016, 18:45
в консоли с правами рута запускаю скрипт /usr/local/bin/php /site_moodle/moodle/admin/cli/mysql_compressed_rows.php -l — пишет что «Недостаточно привилегий»
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр .
Re: Антилопа против Барракуды
от Vadim Tabunshchik — четверг, 11 августа 2016, 19:00
Рут системный и рут в MySQL — разные вещи
phpmyadmin есть? зайдите в БД moodle и выолните запросы:
Но сначала в конфиге MySQL прописать:
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Александр . — пятница, 12 августа 2016, 12:59
Большое спасибо, все помогло. Осталось последнее сообщение
The version of unoconv you have installed is not supported. Moodle’s assignment grading feature requires version 0.7 or higher.
В портах freebsd есть только версия 0.6, а мудл хочет 0.7 и выше. Видать прийдется немного подождать.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр .
Re: Антилопа против Барракуды
от Александр . — пятница, 12 августа 2016, 13:31
И еще вопрос, после применения «mysql_compressed_rows.php -f» нужно обратно убрать my.cnf innodb_file_per_table=1 и innodb_file_format=Barracuda или пускай там и остаются ?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр .
Re: Антилопа против Барракуды
от Vadim Tabunshchik — пятница, 12 августа 2016, 19:09
Не нужно ничего убирать
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр .
Re: Антилопа против Барракуды
от Vadim Tabunshchik — пятница, 12 августа 2016, 19:08
unoconv — это скрипт на питоне, с помощью кот. можно конвертировать документы doc/docx/odt/др., загруженные студентом в качестве ответа на задание, в формат PDF (подробнее). Кроме этого скрипта для конвертации нужно ещё устанавливать LibreOffice. Вот и думайте, нужно ли вам это.
А свежую версию unoconv можно установить с гитхаба: https://github.com/dagwieers/unoconv
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Вадим Лёвкин — вторник, 12 сентября 2017, 16:01
Решил последовать рекомендации, которую видел неоднократно при обновлении moodle:
unsupported_db_table_row_format Ваша база данных содержит таблицы, использующие формат файла Antelope. Рекомендуется преобразовать эти таблицы в формат файла Barracuda. Подробности об инструменте преобразования таблиц InnoDB в Barracuda смотрите в документации Administration via command line.
В phpmyadmin выполнил первый запрос по инструкции, но получил ошибку (см. скриншот). Что именно сделал не верно и как это исправить? Боюсь напортачить, поэтому решил, что лучше переспросить.
Файл my.cnf не нашел (видел о нем инструкции в рекомендациях выше). Где его искать? Есть доступ и через браузер (файловый менеджер на хостинге) и через FTP.
Используется версия Moodle 3.3.2 (Build: 20170911) на хостинге nic.ru.
Заранее благодарен за помощь!
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Vadim Tabunshchik — вторник, 12 сентября 2017, 20:43
Используется версия Moodle 3.3.2 (Build: 20170911) на хостинге nic.ru.
На хостинге ничего не сделаете. Вы не можете менять глобальные настройки сервера MySQL. Поэтому и «Файл my.cnf не нашел»
Сумма оценок: 1 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Вадим Лёвкин — вторник, 12 сентября 2017, 23:37
Правильно ли я понимаю, что нужно установить локальный сервер на своем компьютере, на него скачать и на нем изменить базы и затем командой импорта эти базы разместить на хостинге (предварительно удалив прежние)?
Или просто продолжать игнорировать эту рекомендацию? Тогда чего следует избегать в работе с системой moodle?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Vadim Tabunshchik — среда, 13 сентября 2017, 03:24
Правильно ли я понимаю, что нужно установить локальный сервер на своем компьютере, на него скачать и на нем изменить базы и затем командой импорта эти базы разместить на хостинге (предварительно удалив прежние)?
Для преобразования формата таблиц нужна поддержка и соответствующая настройка на стороне сервера. Вы сервер MySQL на хостинге настроить не можете, техподдержка тоже, скорее всего, под вас подстраиваться не будет. Доступ к БД через phpmyadmin есть?
Посмотрите такие переменные:
character_set_server — utf8
innodb_file_format — Antelope
innodb_file_format_max — Antelope
Если их значения такие же, как я написал, то вы ничего не сделаете и можно «забить» на эти предупреждения. Чего избегать — написано в самом мануале: не использовать большие значения данных в таблицах, кот. нельзя сконвертировать в Barracuda. Посмотреть эти таблицы можно командой php admin/cli/mysql_compressed_rows.php —list
mdl_data Compact (needs fixing)
mdl_data_fields Compact (needs fixing)
mdl_enrol_lti_lti2_consumer Compact (needs fixing)
mdl_enrol_paypal Compact (needs fixing)
mdl_lti Compact (needs fixing)
mdl_user Compact (needs fixing)
mdl_user_info_field Compact (needs fixing)
Думаю, с этим жить можно. Это что касается предупреждения «unsupported_db_table_row_format»
Есть ещё «mysql_full_unicode_support»: поддержка четырехбайтных символов, которые используют некоторые смайлики (например, Emoji ). Для включения, опять же, нужно иметь доступ к конфигурации MySQL, что на хостинге невозможно.
Критично для вас это или нет — решать вам.
Сумма оценок: 1 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Вадим Лёвкин — среда, 13 сентября 2017, 19:15
Большое спасибо за ответ!!
Доступ к базе через phpmyadmin есть!
Значения указанных Вами переменных следующие:
character_set_server cp1251
innodb_file_format Antelope
innodb_file_format_max Antelope
А команда $ php admin/cli/mysql_compressed_rows.php —list почему-то приводит к ошибке (я эту ошибку как раз на скриншоте выше отобразил). Не знаю как заставить эту команду работать? Что-то неправильно делаю.
Не понимаю пока как «не использовать большие значения данных в таблицах, кот. нельзя сконвертировать в Barracuda». Что нужно сделать, чтобы большие значения появились?
Есть ещё «mysql_full_unicode_support».
Да, такое предупреждение тоже есть.
И ещё есть «site not https», но это, похоже, можно игнорировать.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Vadim Tabunshchik — среда, 13 сентября 2017, 19:29
Значения указанных Вами переменных следующие…
И не лечится никак на хостинге.
А команда $ php admin/cli/mysql_compressed_rows.php --list почему-то приводит к ошибке
Это не для MySQL команда Доступ по SSH на хостинг есть? Вот в консоли и вводите, только указывайте полный путь до используемой версии РНР
И ещё есть "site not https"
Хостер SSL-сертификает предоставляет? За деньги?
Не хотите платить — переходите на VPS/VDS, тогда всё ПО сервера можно самостоятельно настраивать и получить бесплатный сертификат Let’s Encrypt — Free SSL/TLS Certificates
Сумма оценок: 1 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Вадим Лёвкин — четверг, 14 сентября 2017, 00:24
Доступ по SSH есть. Установил WinSCP. Ввожу в консоли команду и выходит ошибка. Видимо неправильно ввожу.
Полный путь: distant.orgpsiholog.ru/docs/admin/cli/mysql_compressed_rows.php
Подскажите, пожалуйста, как должна выглядеть команда в моем случае?
Для образования, так сказать, поскольку все равно изменить ничего не смогу.
Хостер SSL-сертификает предоставляет? За деньги?
Да, за деньги, конечно. Спасибо за идею с VPS/VDS и бесплатным сертификатом, и за ссылку! Посмотрел, дороговат хостинг VPS/VDS.
Пока не буду заморачиваться с этим SSL. Подожду, пока не подешевеет соответствующий хостинг или сертификаты.
Получается, что под moodle желательно сразу искать хостинг с поддержкой формата Barracuda.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Vadim Tabunshchik — четверг, 14 сентября 2017, 01:59
Ввожу в консоли команду и выходит ошибка. Видимо неправильно ввожу.
Видимо. Проще будет, если зайдете в каталог с Мудл и запустите команду оттуда:
путь_к_исполняемому_файлу_РНР/php admin/cli/mysql_compressed_rows.php —fix
На хостинге путь к каталогу сайта не всегда виден явно и бывает слегка запутанным, что ли, например:
/home/t/torg12/public_html/moodle или /home/u/user12345/moodle/public_html и т. п.
Можно на самом сайте посмотреть инфу в переменной DOCUMENT_ROOT (Админка — Сервер — Информация РНР) в разделе Apache Environment
В общем, техподдержка как хочет, так и настраивает
Сумма оценок: 1 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Вадим Лёвкин — суббота, 16 сентября 2017, 19:51
На хостинге путь к каталогу сайта не всегда виден явно и бывает слегка запутанным.
Да, возможно и у меня так.
Проще будет, если зайдете в каталог с Мудл и запустите команду оттуда
В этом случае базы данных будут преобразованы с антилопы на барракуду не смотря на то, что сервер не настроен на это?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Vadim Tabunshchik — суббота, 16 сентября 2017, 20:27
В этом случае базы данных будут преобразованы с антилопы на барракуду не смотря на то, что сервер не настроен на это?
Нет, конечно. Вы же писали:
Значения указанных Вами переменных следующие:
character_set_server cp1251
innodb_file_format Antelope
innodb_file_format_max Antelope
Как вы сможете преобразовать свои таблицы, если хостинг не поддерживает формат Barracuda? С этими предупреждениями на хостинге нужно смириться.
Совет запускать команды из каталога Мудл относился к тому, что не нужно тогда указывать полный путь к скрипту, включая «неявный» домашний каталог.
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Вадим Лёвкин — воскресенье, 17 сентября 2017, 22:58
Совет запускать команды из каталога Мудл относился к тому, что не нужно тогда указывать полный путь к скрипту, включая «неявный» домашний каталог.
Понятно, большое спасибо за ответы. Буду юзать как есть, надеюсь moodle не будет в будущем ставить ультиматум и требовать барракуду во что бы то ни стало!
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Vadim Dvorovenko — среда, 13 декабря 2017, 14:27
начиная с MySQL 5.7.7 Barracuda настроена по умолчанию. Постепенно все на неё перейдут.
Начиная с 3.1 или 3.2 moodle обязательно требует это при установке. При обновлениях с более ранних версий может и не требовать.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Александр Муромцев — вторник, 12 декабря 2017, 19:19
Где мудл установлен? Если на хостинге, то вы не сможете выполнить команды от имени суперпользователя. И с этим предупреждением придется смириться.
При установке требует исправить указанные предупреждения.
В инструкции все команды от суперпользователя.
На хостинге в РуЦентре таких прав нет.
Как тогда установить Moodle?
До этого была версия младше. Сейчас нужна версия 3.
Все модули в порядке, остались эти предупреждения.
По инструкции добавил строки в my.cnf
Файла my.ini нет.
Как продолжить установку.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр Муромцев
Re: Антилопа против Барракуды
от Vadim Tabunshchik — вторник, 12 декабря 2017, 21:54
Сейчас нужна версия 3
Так не ставьте 3.4 и 3.3, поставьте MOODLE_31_STABLE или 3.2, в них нет таких «заморочек» с mysql_full_unicode_support
Проверить это можно в файле environment.xml (в папке admin), если строки с check_mysql_file_format, check_mysql_file_per_table, check_mysql_large_prefix отсутствуют, то на хостинг установите.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Александр Муромцев — среда, 13 декабря 2017, 11:33
Я думал над этим вариантом, но сразу на сайте не нашёл версии 3.0 или 3.1
По Вашей ссылке скачал 3.1. Там такая же ситуация. Требует то же самое.
Посмотрел в файл environment.xml строки присутствуют, удалил их, следующий шаг, при установке, завершился ошибкой и т.д. Это и понятно.
Сейчас попробую 3.0, затем 2.9 и т.д. И установится 2.4 или 2.1 Не помню, какая была.
Благодарю за помошь.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр Муромцев
Re: Антилопа против Барракуды
от Vadim Tabunshchik — среда, 13 декабря 2017, 17:49
По Вашей ссылке скачал 3.1. Там такая же ситуация. Требует то же самое.
По ссылке последняя стабильная 3.1.9+
А выше Вадим Дворовенко подсказал, как это можно обойти: установить сначала какую-то промежуточную (3.1.3 или 3.1.4, а из GIT вообще можно любую вытянуть), потом обновить до 3.1.9+
На хостинге timeweb.ru работает 3.2.5+ (Build: 20171013). Ну висит сообщение «unsupported_db_table_row_format» и пусть висит
Пофиксить это дело на хостинге невозможно:
$ /opt/php56/bin/php mysql_compressed_rows.php -i
Database version: 5.6.31-77.0
Database name: moodle
Database engine: InnoDB
innodb_file_per_table: ON
innodb_file_format: Antelope
$ /opt/php56/bin/php mysql_compressed_rows.php -l
mdl_data Compact (needs fixing)
mdl_data_fields Compact (needs fixing)
mdl_enrol_lti_lti2_consumer Compact (needs fixing)
mdl_enrol_paypal Compact (needs fixing)
mdl_lti Compact (needs fixing)
mdl_user Compact (needs fixing)
mdl_user_info_field Compact (needs fixing)
$ /opt/php56/bin/php mysql_compressed_rows.php -f
Cannot change GLOBAL innodb_file_format setting, use --showsql option and execute the statements manually.
Default exception handler: Ошибка записи в базу данных Debug: Access denied;
you need (at least one of) the SUPER privilege(s) for this operation
SET GLOBAL innodb_file_format=Barracuda
. Ошибка записи в базу данных .
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Александр Муромцев — среда, 13 декабря 2017, 19:29
Благодарю за помошь.
Оставлю версию 3.0
Всё установил, настроил, передал преподавателям.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Vadim Tabunshchik
Re: Антилопа против Барракуды
от Александр Муромцев — среда, 13 декабря 2017, 11:46
Установилась версия 3.0
Благодарю за ссылки для скачивания.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Александр Муромцев
Re: Антилопа против Барракуды
от Вадим Лёвкин — вторник, 16 января 2018, 23:19
Подскажите, пожалуйста, где взять Moodle 3.0 ?
Где вообще размещены прежние версии? Не по глазам мне, видать.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Вадим Лёвкин — вторник, 16 января 2018, 23:38
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Alexandre Scherbyna — среда, 17 января 2018, 00:00
Сумма оценок: 2 (1)
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Alexandre Scherbyna
Re: Антилопа против Барракуды
от Вадим Лёвкин — среда, 17 января 2018, 12:10
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Алексей Грабко
Re: Антилопа против Барракуды
от Nurbek Tentiev — суббота, 4 ноября 2017, 16:08
Тоже столкнулся с этой проблемой. Пишет, что нужно выполнить следующие SQL-запросы:
SET SESSION sql_mode=STRICT_ALL_TABLES;
SET GLOBAL innodb_file_per_table=1;
SET GLOBAL innodb_file_format=Barracuda;
ALTER TABLE mdl_data ROW_FORMAT=Compressed;
ALTER TABLE mdl_data_fields ROW_FORMAT=Compressed;
ALTER TABLE mdl_enrol_paypal ROW_FORMAT=Compressed;
ALTER TABLE mdl_lti ROW_FORMAT=Compressed;
ALTER TABLE mdl_questionnaire_survey ROW_FORMAT=Compressed;
ALTER TABLE mdl_user ROW_FORMAT=Compressed;
ALTER TABLE mdl_user_info_field ROW_FORMAT=Compressed;
Но проблема в том, что сайт находится на шаред-хостинге и провайдер отказывается выполнять эти команды на уровне сервера, мол затронет сайты остальных клиентов. Причем они советуют выкачать сайт с базой, локально пофиксить и закачать на хостинг обратно. Но почему-то мне кажется, это не поможет. Или стоит попробовать? Дело муторное, так как объем данных большой. Хотелось бы знать точно, стоит ли дело свеч.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Nurbek Tentiev
Re: Антилопа против Барракуды
от Alex Djachenko — суббота, 4 ноября 2017, 17:57
Именно поэтому здесь уже сотни раз объяснялось, что для Moodle нужен, как-минимум, отдельный виртуальный сервер, чтобы иметь достаточно свободы настраивать системное окружение под требования платформы.
Но, понятно, что тут советуют напыщенные снобы и тайные агенты хостинг-провайдеров, а вот же есть хостинг за 300 рублей в месяц и вроде ж там всё работает, наверное, эти провайдеры просто менее жадны, чем остальные, зачем платить больше?
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Nurbek Tentiev
Re: Антилопа против Барракуды
от Roman Savkiv — понедельник, 4 декабря 2017, 08:26
Пытаюсь установить свежую Moodle 3.4. та же проблема. Выделенный, конечно, хорошо. но не всегда доступно))
Пока проблема не решится, установка не пойдет. рррр) Или есть смысл поставить локально, а потом перенести?
Или нападать на поддержку в любом случае?) При выполнении команд не хватает прав((
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Roman Savkiv
Re: Антилопа против Барракуды
от Вадим Лёвкин — вторник, 23 января 2018, 20:28
Я решил эту проблему тем, что сначала установил версию 3.0, а потом обновил Moodle сразу до версии 3.4.
Выше, в сообщении Alexandre Scherbyna есть ссылка на версию 3.0.
Сумма оценок: —
Постоянная ссылка Показать сообщение-родителя Ответить
В ответ на Вадим Лёвкин
Re: Антилопа против Барракуды
от Андрей Борисович — четверг, 22 августа 2019, 00:00
Вы счастливый человек, уважаемый Вадим. Сейчас этот рецепт уже не работает, т.к. старый движок Moodle не встаёт под новые версии php, — сегодня целый день убил на бесплодные попытки.
Как теперь решать проблему установки на веб-сервер с несговорчивой техподдержкой?
| php_setting | opcache.enable |


