FAQ: различия между версиями
Misha (обсуждение | вклад) (→/etc/php.ini) |
Misha (обсуждение | вклад) (→Настройки, которые я сделал при переходе на php 5.3) |
||
Строка 3: | Строка 3: | ||
===/etc/php.ini=== | ===/etc/php.ini=== | ||
<pre> | <pre> | ||
− | ; было error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT | + | ;было error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT |
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT | error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT | ||
− | ; было display_errors = of | + | ;было display_errors = of |
display_errors = on | display_errors = on | ||
− | ; Разрешить сокращенные теги | + | ;Разрешить сокращенные теги |
− | ; было short_open_tag = of | + | ;было short_open_tag = of |
short_open_tag = on | short_open_tag = on | ||
− | ; было post_max_size = 8M | + | ;было post_max_size = 8M |
post_max_size = 200M | post_max_size = 200M | ||
− | ; было upload_max_filesize = 2M | + | ;было upload_max_filesize = 2M |
upload_max_filesize = 200M | upload_max_filesize = 200M | ||
− | ; Если не указать тайм зону, то будут сыпаться ошибки. | + | ;Если не указать тайм зону, то будут сыпаться ошибки. |
− | ; было ;date.timezone = | + | ;было ;date.timezone = |
date.timezone = Europe/Moscow | date.timezone = Europe/Moscow | ||
− | ; заремарить следующую строку, иначе письма будут терять поле FROM | + | ;заремарить следующую строку, иначе письма будут терять поле FROM |
;mail.add_x_header = On | ;mail.add_x_header = On | ||
</pre> | </pre> |
Версия 13:42, 16 сентября 2016
Буду записывать проблемы, с которыми я столкнулся и их решение
Содержание
- 1 Настройки, которые я сделал при переходе на php 5.3
- 2 FAQ
- 2.1 Вопрос
- 2.2 Message: Function set_magic_quotes_runtime() is deprecated
- 2.3 Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function
- 2.4 Как при подключении к MSSQL базе с кодировкой CP1251, а выводить данные в UTF8?
- 2.5 При выводе поля типа datetime, оно выводится уже форматированным
- 2.6 Добавление модуля работы с DBF DBASE
- 2.7 Установка php-pear на php7
- 2.8 Знакомство с PEAR:: Spreadsheet_Excel_Writer (установка и устранение ошибок)
Настройки, которые я сделал при переходе на php 5.3
/etc/php.ini
;было error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT ;было display_errors = of display_errors = on ;Разрешить сокращенные теги ;было short_open_tag = of short_open_tag = on ;было post_max_size = 8M post_max_size = 200M ;было upload_max_filesize = 2M upload_max_filesize = 200M ;Если не указать тайм зону, то будут сыпаться ошибки. ;было ;date.timezone = date.timezone = Europe/Moscow ;заремарить следующую строку, иначе письма будут терять поле FROM ;mail.add_x_header = On
FAQ
Вопрос
Есть страничка на которой отмечается около 120 checkbox'ов. С помощью функции
print_r($_REQUEST);
просматриваю их состояние после ввода. Так вот вводится только 100 или 101 отмеченный чекбокс, остальные пропадают, те их нет в выводе, хотя тоже отмечены.
Ответ
Отредактируйте строки в конфигурационном файле /etc/php.d/Z98_suhosin.ini
suhosin.request.max_vars 500 suhosin.post.max_vars 500
Message: Function set_magic_quotes_runtime() is deprecated
При переносе сервера, появилась ошибка Message: Function set_magic_quotes_runtime() is deprecated
Решение
Эта функция считается устаревшей в 5.3, а в 6.0 ее вообще не будет. Один из вариантов. Поставить перед функцией set_magic_quotes_runtime() знак @.
Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function
При переносе сервера, появилась ошибка При переносе сервера, появилась ошибка Message: Function set_magic_quotes_runtime() is deprecated ...
Решение
В php.ini прописать
date.timezone = Europe/Moscow
Как при подключении к MSSQL базе с кодировкой CP1251, а выводить данные в UTF8?
При выводе данных из таблиц MSSQL все русские буквы стали знаками вопроса.
Решение
В php.ini установить переменную
mssql.charset = "UTF8"
При выводе поля типа datetime, оно выводится уже форматированным
При выводе поля типа datetime, оно выводится уже форматированным, а надо как есть.
Решение
В php.ini установить переменную
mssql.datetimeconvert = Off
Добавление модуля работы с DBF DBASE
DBASE ставится через PECL
1. Ставим PEAR из репозиториев (если у вас его ещё нету)
sudo apt-get install php-pear
(тоже желательно):
sudo apt-get install php5-dev
3. теперь можно ставить pecl-библиотеки. Ставим нужную:
sudo pecl install dbase
4. Создаем файл /etc/php5/mods-available/dbase.ini
; configuration for php DBASE module ; priority=20 extension=dbase.so
5. Создаем ссылки, что бы модуль работали в APACHE и CLI
sudo ln -s /etc/php5/mods-available/dbase.ini /etc/php5/cli/conf.d/20-dbase.ini sudo ln -s /etc/php5/mods-available/dbase.ini /etc/php5/apache2/conf.d/20-dbase.ini
6. Перезапускаем apache
sudo service apache2 restart
Установка php-pear на php7
Устанавливаем php-xml
sudo apt-get install php7.0-xml
Качаем и устанавливаем pear
wget http://pear.php.net/go-pear.phar sudo php go-pear.phar
Знакомство с PEAR:: Spreadsheet_Excel_Writer (установка и устранение ошибок)
Установка
# apt-get install php-pear # pear install -f OLE # pear install -f Spreadsheet_Excel_Writer
Документация
Устранение ошибок
1. Вылезает ошибка:
Deprecated: Call-time pass-by-reference has been deprecated in /usr/share/pear/Spreadsheet/Excel/Writer/Worksheet.php on line 2490
Редактируем файл /usr/share/php/Spreadsheet/Excel/Writer/Worksheet.php строка 2489
Было
$string=$header.$data; $this->_append(&$string, true);
Стало
$this->_append($header.$data, true);
Взято тут
Ошибка открытия excel файла в office 2010 в w7 и w8.
Редактируем файл /usr/share/php/OLE/PPS/Root.php строка 623 :
Было
fwrite($FILE, pack("V", 1));
Стало
fwrite($FILE, pack("V", $num_sb_blocks));
Взято тут