В стандартном режиме mod_php веб-сервер Apache запущен и всегда работает от одного пользователя - nobody. Это является далеко не самым безопасным решением поскольку ошибка в правах доступа позволит другим пользователям читать Ваши файлы или даже делать в них изменения. suPHP страхует от этой проблемы, поскольку теперь каждый процесс запускается от конкретного пользователя (например если Ваш логин - username, то процессы для Вашего сайта будут запускаться только от него). Кроме этого, данный режим работы решает проблему, когда скрипты делают изменения в файлах и после этого файлы нельзя удалить/изменить через FTP поскольку они имеют владельца nobody.
suPHP является более медленным режимом работы (на 25-30%), поэтому перед переводом всех серверов на этот режим мы серьёзно увеличили их мощность, минимальная конфигурация теперь работает на 8-ми ядерных процессорах Intel последнего поколения с использованием дисковой подсистемы в режиме RAID 1 или высокопроизводительных SAS накопителях.
Примечания по работе:
Новые права доступа:
* 644 - запись в файл разрешена (по умолчанию)
* 444 - запись в файл запрещена (только чтение и исполнение)
* 755 - права доступа на папки (по умолчанию, менять не требуется)
Обратите внимание - при правах доступа 644 запись разрешена только для скриптов которые запускаются в среде Вашего аккаунта. Никто другой запись произвести не сможет. Для ещё большего увлечения безопасности Вы можете сменить права доступа у файлов на 444 - в этом случае даже Ваши скрипты не смогут ничего записать в файлы, но это не обязательно.
Таким образом при установке скриптов не требуется менять права доступа, даже если в инструкции к скрипту написано, что их нужно изменить. Просто пропускайте пункт смены прав доступа CHMOD.
С чем может быть связана ошибка Internal Server Error?
Данная ошибка чаще всего означает что сервер заблокировал обращение к скрипту, это может быть по следующим причинам:
* Вы выставили права доступа на файл(ы) отличающиеся от 644 или 444, сервер блокирует выполнение скрипта в целях безопасности (например - выставили CHMOD 666)
* Вы выставили права доступа отличающиеся от 755 на папки(у). (например - выставили CHMOD 777)
* Найдены не поддерживаемые директивы в файле .htaccess
В режиме suPHP не поддерживается установка директив php_flag, php_admin_flag, php_value и прочих, которые изменяют какие-либо параметры PHP окружения.
Для примера, если у Вас в .htaccess будет присутствовать запись вида:
Код
php_flag register_globals On
или например
Код
display_errors Off
Сервер вернёт ошибку 500 (Internal Server Error).
Как же тогда включить register_globals, к примеру?
Для этого вставьте в .htaccess запись вида:
Код
suPHP_ConfigPath /home/user/public_html
order allow,deny
deny from all
Где user - Ваш логин.
После этого создайте в указанной папке (в нашем случае - public_html) файл php.ini и поместите в него нужные параметры для изменения, к примеру:
Код
register_globals = On
upload_max_filesize = 30M
post_max_size = 30M
В данном примере мы включили register_globals который нужен для работы некоторых скриптов и выставили лимиты на загрузку файлов через PHP.
Обратите внимание на отсутствие каких-либо приставок php_flag - они в данном случае не требуются.
Если Ваши скрипты используют Zend Optimizer - добавьте в созданный php.ini следующее:
Код
[Zend]
zend_extension_manager.optimizer = "/usr/local/Zend/lib/Optimizer-3.3.3"
zend_extension_manager.optimizer_ts = "/usr/local/Zend/lib/Optimizer_TS-3.3.3"
zend_optimizer.version = "3.3.3"
Если вдруг это не сработает, обратитесь в службу поддержки и мы сделаем изменения на основе конфигурации серверного php.ini.
Я не помню, на какие файлы/папки я ставил права доступа, можно ли сбросить все CHMOD?
Да, это возможно. Для этого обратитесь в службу поддержки.