2013-05-13 3 views
0

Я хочу добавить новый DNS на свой сервер. Я могу редактировать файл /etc/resolv.conf с помощью редактора vi.Редактировать /etc/resolv.conf с помощью PHP

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

В чем может быть проблема?

Просьба предложить/предоставить мне решение, чтобы исправить это.

+0

Доступ: интернет-пользователи apache? Я сомневаюсь в этом! – Waygood

+0

вы можете использовать nano, vim, gedit –

+1

, возможно, из-за разрешений, проверьте права доступа /etc/resolv.conf перед запуском вашего кода. –

ответ

2

Скорее всего, ваш PHP работает на другого пользователя, а затем, когда вы заходите на сервер самостоятельно. У вас будет доступ на чтение/запись к файлу, а PHP - нет.

Теперь увеличение прав пользователей PHP может привести к проблеме с безопасностью, поэтому я бы посоветовал это сделать. Но вы можете предоставить пользователю доступ к этому конкретному файлу, только если это действительно необходимо. Проверьте Granting Access Permission to a file to a specific user о том, как это сделать.

+0

Спасибо .. Я использовал chown, чтобы предоставить разрешения, и это сработало для меня. :) – KiranD

0

Возможно, вам понадобится root-доступ для изменения/etc/hosts.

  • Вы можете chmod 666/etc/hosts, но это будет проблема безопасности.
  • Но так работает PHP под root,
  • и т. Д. chown с/etc/hosts.

Итак, у вас есть 3 (небезопасных) решения. С последним - наименее злым.

Возможно, вы столкнулись с проблемой борьбы с доступом к файлам PHP, если PHP ограничен файлами внутри определенного каталога. (http://www.php.net/manual/en/ini.core.php#ini.open-basedir)

Смежные вопросы