Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: safe_mode, cURL, CURLOPT_FOLLOWLOCATION
 
 автор: mikha   (09.09.2009 в 10:11)   письмо автору
 
 

Скрипт нормально отрабатывает под Денвером и наотрез отказывался работать на хостинге.
Быстренько разобрался, что дело в настройках safe_mode = on и как следствие, не работало CURLOPT_FOLLOWLOCATION.
Собственно вопрос (катастрофически не хватает времени на изучение всего что нужно, если можно коротенький ликбез, на несколько строчек).
Как "правильно" safe_mode = on или safe_mode = Off, или общепринято, если так можно выразиться.
И чем чреват тот или иной вариант. И на что ещё обратить в настройках (виртуальный выделенный сервер).
Да, ещё.. Когда на Денвере смоделировал ситуацию, включил safe_mode, то
получил два Warning:
set_time_limit() [function.set-time-limit]: Cannot set time limit in safe mode in Z:\***\www\read_news.php on line 25
curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when in safe_mode or an open_basedir is set in Z:\home\***\www\read_news.php on line 115
Но на хостинге их не было, несмотря на то, что в начале скрипта прописано error_reporting(E_ALL | E_STRICT);
Что не так? В том смысле, почему ошибки на хостинге не выводились?

  Ответить  
 
 автор: h   (09.09.2009 в 17:09)
 
   для: mikha   (09.09.2009 в 10:11)
 

>почему ошибки на хостинге не выводились
тому может быть много причин, error_reporting() только выставляет уровень ошибок
на которые должна возможна реакция сервера,
это то-же что ini_set('error_reporting', '2047');
или в htaccess такая строка php_value error_reporting 2047
константы содержат такие значения
1 E_ERROR
2 E_WARNING
4 E_PARSE
8 E_NOTICE
16 E_CORE_ERROR
32 E_CORE_WARNING
64 E_COMPILE_ERROR
128 E_COMPILE_WARNING
256 E_USER_ERROR
512 E_USER_WARNING
1024 E_USER_NOTICE
2047 E_ALL
2048 E_STRICT
4096 E_RECOVERABLE_ERROR

кроме error_reporting , ещё несколько значений и флагов (php_flag может иметь только значение On или Off) php. ini влияют обработку ошибок,
нужно это рассматривать ещё и как вывод в error. log - файлы, (это даже практичнее )
display_errors
log_errors
ignore_repeated_errors
ignore_repeated_source
track_errors
и ещё куча настроек php , которое кроме того что можно собрать с какими-угодно функциями
можно ещё и конфигурировать например запретив их использовать (disabled_functions),
но и это ещё не всё ,) , php чаще работает как модуль апаче, т.e в процесс apache , подгружается вся библиотека с функциями php , и они просто вызываются когда нужно.
там тоже есть настройки связанные с ошибками , например
ErrorLog
LogLevel
и тоже можно собрать апаче по разному
вобщем смотрите в phpinfo (насчёт disabled_functions тоже) , пробуйте делать htaccess например
php_flag display_errors On
php_flag safe_mode Off
, снова смотрите в phpinfo
, если не помогает , смотрите FAQ хостинга , и потом спрашивайте техподдержку как у них выключается safe_mode

  Ответить  
 
 автор: mikha   (09.09.2009 в 17:16)   письмо автору
 
   для: h   (09.09.2009 в 17:09)
 

Выключить как раз не проблема (safe_mode), прямо в ISPmanager.
Завтра, с утра (у нас ужё ночь), на свежую голову, осмыслю то что вы мне написали.
Спасибо большое.

  Ответить  
 
 автор: h   (09.09.2009 в 17:20)
 
   для: mikha   (09.09.2009 в 10:11)
 

забыл сказать что если php выполняется как модуль, то всё-равно он просто запускается как дочерний процесс того-же апаче

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования