Назад | Перейти на главную страницу

Должен ли я использовать suPHP или DSO (mod_PHP), когда скриптам php нужно манипулировать файлами?

Недавно я задал вопрос о StackOverflow, и я собираюсь повторить его здесь, как другой вопрос, с некоторыми изменениями и дополнительной информацией.

У меня есть куча скриптов php, которым нужна возможность создавать, перемещать и удалять файлы и папки. Сценарии также должны перемещать и удалять файлы, которые были загружены через FTP с компьютера Windows.

Мой VPS в настоящее время использует DSO, поэтому для того, чтобы мои сценарии выполнялись и не умирали с ошибками разрешений, мне приходилось использовать CHMOD для всех каталогов и файлов на 777.

Из того, что я прочитал, использование разрешений 777 небезопасно и не должно выполняться. У меня есть VPS, но у меня несколько пользователей, так как я размещаю ряд веб-сайтов, некоторые из которых контролируются другими людьми.

Мне может быть уместно упомянуть, что я запустил phpinfo () и нашел следующее в разделе «PHP Credits»:

User/Group      nobody(99)/99 

Я читал о манипуляциях с файлами через php и suPHP по сравнению с DSO, но я все еще не уверен, что мне следует делать. Из того, что я прочитал, похоже, что переход на suPHP решит все мои проблемы (больше нет проблем с разрешениями), но я читал, что это резко замедляет работу сервера.

Может ли кто-нибудь дать мне совет по этому поводу?

Из того, что я прочитал, похоже, что переход на suPHP решит все мои проблемы (больше никаких проблем с разрешениями)

Да, suPHP решит все проблемы, связанные с разрешениями, если вы это сделаете не есть что-нибудь CHMOD 0777 - suPHP отклонит это как гигантскую дыру в безопасности и заполнит ваш error_log с сообщениями, предлагающими изменить его максимум на 0755.

Лучше всего думать об этом так:

  • Нет suPHP = PHP запускается как «обычный» пользователь, как если бы у вас был домашний помощник. Вы просите помощника по дому принести вам вещи, они это сделают, но если вы попросите их сделать то, что специально требовать вас (подписать договор -> записать в файл) то они не смогут.
  • suPHP позволяет иметь сколько угодно домашних помощников, но все они притворяются вами. Они могут делать все, что вы можете, ни больше, ни меньше. Без проблем!

Читал, что резко тормозит сервер.

Куда? Я никогда не подозревал, что это проблема.

В итоге: переключиться на suPHP.