Всем привет. Давно не писал, но хостер вынудил.
Проблема с register_globals которые включены. Хостер говорит ято у него все выключено и это у меня не правильно прописан .htaccess. Я конечно не серверный администратор, но .htaccess у меня как по умолчанию в Друпале. вот код
<?php#
# Apache/PHP/Drupal settings:
#
# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl|svn-base)$|^(code-style\.pl|Entries.*|Repository|Root|Tag|Template|all-wcprops|entries|format)$">
Order allow,deny
</FilesMatch>
php_flag register_globals off
# Don't show directory listings for URLs which map to a directory.
Options -Indexes
# Follow symbolic links in this directory.
Options +FollowSymLinks
# Make Drupal handle any 404 errors.
ErrorDocument 404 /index.php
# Force simple error message for requests for non-existent favicon.ico.
<Files favicon.ico>
# There is no end quote below, for compatibility with Apache 1.3.
ErrorDocument 404 "The requested file favicon.ico was not found.
</Files>
# Set the default handler.
DirectoryIndex index.php
# Override PHP settings. More in sites/default/settings.php
# but the following cannot be changed at runtime.
# PHP 4, Apache 1.
<IfModule mod_php4.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
# PHP 4, Apache 2.
<IfModule sapi_apache2.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
<IfModule mod_php5.c>
php_value magic_quotes_gpc 0
php_value register_globals 0
php_value session.auto_start 0
php_value mbstring.http_input pass
php_value mbstring.http_output pass
php_value mbstring.encoding_translation 0
</IfModule>
# Requires mod_expires to be enabled.
<IfModule mod_expires.c>
# Enable expirations.
ExpiresActive On
# Cache all files for 2 weeks after access (A).
ExpiresDefault A1209600
<FilesMatch \.php$>
# Do not allow PHP scripts to be cached unless they explicitly send cache
# headers themselves. Otherwise all scripts would have to overwrite the
# headers set by mod_expires if they want another caching behavior. This may
# fail if an error occurs early in the bootstrap process, and it may cause
# problems if a non-Drupal PHP file is installed in a subdirectory.
ExpiresActive Off
</FilesMatch>
</IfModule>
# Various rewrite rules.
<IfModule mod_rewrite.c>
RewriteEngine on
# If your site can be accessed both with and without the 'www.' prefix, you
# can use one of the following settings to redirect users to your preferred
# URL, either WITH or WITHOUT the 'www.' prefix. Choose ONLY one option:
#
# To redirect all users to access the site WITH the 'www.' prefix,
# (http://example.com/... will be redirected to http://www.example.com/...)
# adapt and uncomment the following:
# RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
# RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
#
# To redirect all users to access the site WITHOUT the 'www.' prefix,
# (http://www.example.com/... will be redirected to http://example.com/...)
# uncomment and adapt the following:
# RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
# RewriteRule ^(.*)$ http://example.com/$1 [L,R=301]
# Modify the RewriteBase if you are using Drupal in a subdirectory or in a
# VirtualDocumentRoot and the rewrite rules are not working properly.
# For example if your site is at http://example.com/drupal uncomment and
# modify the following line:
# RewriteBase /drupal
#
# If your site is running in a VirtualDocumentRoot at http://example.com/,
# uncomment the following line:
# RewriteBase /
# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>
# $Id: .htaccess,v 1.90.2.5 2010/02/02 07:25:22 dries Exp $
?>
php_flag register_globals off - это я писал, пытаясь выключить register, еще я пробовал в settings.php вписывать в
ini_set('register_globals',0); - все это не помогло.
И еще Drupal ругается на "Конвертация ввода мультибайтовых строк в PHP включена, но должна быть отключена. Проверьте настройку mbstring.http_input в php.ini"
Доступа к php.ini у меня естественно нет.
Подскажите что я делаю не так? Хотелось бы что бы я ошибался, а то придется менять хостера, не охота как то с влюченным global сайт юзать.
Комментарии
Создай в папке с друпалам файл php.ini или php5.ini (для версии php 5).
Там напиши: register_globals: off;
А если у автора mod_php?
Трясти хостера и точка.
Создал php5.ini , закинул в корневую папку друпала - не выключился регистр (
Даже попробовал на всякий случай php.ini - не а.
Чую хостера придется менять. Кто работал еще с этим /www.ukrhost.biz/ ?
Я работаю с AGAVA! Дороговато, зато без проблем!
Ну позвоните в службу технической поддержки и отругайте их!
Я по мылу с ними ругаюсь сейчас...
"У вас ошибка в скриптах"
"Мы не консультируем по проблемам, связанными с вашими скриптами, в т.ч. с друпалом"
Это распространённые ответы служб поддержки мелких хостингов. Вам придётся рассказать им про друпал и немного научить (сначала научиться, а потом и научить) разбираться с хостинг-проблемами. Если экономите деньги, теряете на времени.
Просто есть хостинги с которыми нет проблем.
Я работал с hoster.ru, была проблема с кодировкой в базе данных. Они мне предлогали переписывать коды запроса к базе данных.
1gb.ru - тоже какой то кривой.
AGAVA!!!
Я ни вас, ни ваших потребностей не знаю, поэтому врядли могу что-то посоветовать. Но судя по вашей аватарке у вас есть опыт общения с хостерами и вы в состоянии выбрать хостинг сами
Дорого. Слишком дорого. Что виртуальный, что VDS, для сравнения:
http://hosting.agava.ru/vps/m_price.shtml
http://www.truevds.ru/price
Притом на truevds - XEN, а на агаве (не знаю, но почти уверен) - OpenVZ, а это две большие разницы.
Вот привожу то, что мне ответила техподдержка хостинга /www.ukrhost.biz/
«Друпал привёл стандартный файл, который по их мнению должен работать практически везде, но это не всегда так. Некоторые хостинги разрешают запускать у себя всё что можно и у них действительно друпал запускается без сучка и задоринки, но сломать такой сайт не составит особого труда. Мы подходим к безопасности с особым трепетом, поэтому не всегда запустить всё можно с первого раза, но такая возможность даётся каждому пользователю. Для этого надо настроить работу php под себя. Для этого и служит файл .htaccess
Если бы вы купили выделенный сервер или VPS, то вам всё одно нужно было всё настраивать под себя, без этого никуда.
--------------------------------------------------------------------------
P.S. Для настройки Друпала в вашем случае нужно просто грамотно откоректировать ваш файл .htaccess, либо выбрать другую сборку Друпала, такое тоже часто бывает.»
Вот так, нужно грамотно откорректировать файл... почему же они тогда не написали что там нужно откорректировать?
В общем ищу другой хостинг...
В файле .htaccess измените значение php_value register_globals 1 на "0", как указано в описании ошибки.
С помощью файлового менеджера создать файл, например, htaccess.txt, добавить необходимые директивы в него и переименовать в .htaccess, опять же с помощью файлового менеджера панели управления.
Красивые слова, ничего общего с действительностью не имеющие. Если бы они заботились о безопасности, register_globals был бы отключен.
Если вы посмотрите в код, который я выложил, то там везде стоит 0 , или если не так - то я ужо совсем плохой стал
Валите с этого хостинга. Если поддержка не может решить элементарную проблему и заявляет о повышенном внимании к безопасности и при этом имеет по умолчанию включенное register_globals, ничем хорошим ваше сотрудничество сними не кончиться.
Согласен на все 100% , так и сделаю. Вот только хостинг на украинских айпишниках очень не дешевый, я бы ушел на амэриканский, да жалко, сайт позиции по поисковым словам потеряет, так что придется в разы переплачивать своим...
Вы думаете поисковики настолько тупые, что воспримут сайт domain.ua родом из Калифорнии?
Если вы и правда так думаете, то тогда просто поставьте регион для сайта вручную. Для яндекса и гугла это сделать можно.
Хм, однако... Просто где-то находил информацию что ip-адрес тоже имеет значение- надо более подробно этот вопрос изучить...
Имеет конечно, поисковики определяют принадлежность сайта региону по нескольким параметрам, по IP в том числе. Для корректировки есть ручная настройка.
Просто я думаю что вам нужна привязка сайта ко всей украине, если сайт в домене ua, то не думаю что с этим возникнут проблемы.
Залил на этот хостинг еще один сайт для пробы.
По началу drupal ругался дескать "Ваша системная или сетевая конфигурация не позволяет Drupal обращаться к веб-страницам, что выражается в ограниченной функциональности. Это может происходить из-за настроек PHP и должно быть исправлено для получения информации о доступных обновлениях, сбора новостей из RSS-лент, входа по OpenID и для использования других сетевых сервисов"
Я нашел этот топик и следуя совету сделал php.ini с кодом
disable_functions = exec, popen, passthru, system, shell_exec, virtual, proc_close, proc_get_status, proc_open, proc_terminate
и разместил в корневой директории drupal ...
И на выходе получил PHP - "register globals Включено ('1')" !!!
Хотя исходной ошибки уже нет.
И там висит ошибка еще "Библиотека Unicode Ошибка Конвертация ввода мультибайтовых строк в PHP включена, но её нужно отключить. Проверьте параметр mbstring.http_input в php.ini. Подробности можно узнать в документации по PHP mbstring."
В общем криво, очень криво у них сервак работает. Я файл php.ini я удалю пока. Уж лучше первая ошибка, чем вторая...
Кстати, история с первым сайтом и register globals началась после того, как я хостера попросил ликвидировать ошибку, аналогичную той, которую я сам ликвидировал на новом залитом сайте.
Вы ошибаетесь. Всё настроено безопасно и баста.
Эээ, в общем все гораздо проще.
У них есть спец.настройки на серваке, желающие могут тут почитать «www.ukrhost.biz/faq/16»
Типа, для того что бы полноценно работать с cms нужно включить register globals , иначе "не позволяет Drupal обращаться к веб-страницам, что выражается в ограниченной функциональности."
Вот такие дела и php.ini тут не причем
Не нужно.
Судя по вашей ссылке, проблема в том, что апач запускается не из под пользователя. Есщё один аргумент для раскланится с хостингом - админы не хотят/не могут/не знают как настроить апач для работы под разными пользователями.