Lighttpd: запрос локальных URL через PHP

Когда я имею к вещам от PHP, которые требуют полномочий пользователя root в системе, которая имеет mod_php, я обычно пишу маленький сценарий помощника, чтобы на самом деле сделать задачу. Затем я использую system() или proc_open() назвать сценарий через sudo. Необходимо будет настроить апачскую учетную запись пользователя, чтобы смочь запустить тот конкретный скрипт без пароля.

Если система имеет cli версию php, установленного затем, можно записать сценарий помощника в PHP, так как это кажется, что это знакомо Вам.

/etc/sudoers похож на это:

Cmnd_Alias PHPHELPER=/path/helper-script 
www-data ALL=NOPASSWD: PHPHELPER

Преимущество выполнения этого состоит в том, что можно записать очень трудный и определенный сценарий помощника, который только выполняет одну задачу, и можно добавить большую хорошую проверку ошибок для предотвращения вредности. Это минимизирует потенциал для системного компромисса.

0
задан 29 October 2010 в 12:06
2 ответа

ПОНЯТЫЙ ЭТО! По умолчанию Lighttpd на FreeBSD настроен как это:

fastcgi.server = ( ".php" =>
                   ( "php-local" =>
                     (
                       "socket" => socket_dir + "/php-fastcgi-1.socket",
#                       "bin-path" => server_root + "/cgi-bin/php5",
                       "bin-path" => "/usr/local/bin/php-cgi",
                       "max-procs" => 1,
                       "broken-scriptfilename" => "enable",
                     )
                   ),

Ключевое строка быть:

 "max-procs" => 1,

При изменении его на, скажем, 50 это хорошо работает. Я предполагаю, что это должно разветвиться от другого процесса или чего-то для выполнения ВИХРЕВОГО запроса, и не можете, потому что макс.-procs установлен на 1 по умолчанию.

Измените его, перезапустите Lighttpd, прекрасные работы. Да!

1
ответ дан 4 December 2019 в 22:46

Ваше собственное поле может правильно разрешить доменное имя, которое Вы используете? Если Вы запрашиваете файлы из www.domain.com, можете, Вы проверить с помощью ping-запросов 'www.domain.com' от себя - Делаете это разрешает корректный внешний IP, который получил бы, когда Вы проверяете с помощью ping-запросов 'www.domain.com' от внешнего соединения.

Я думаю:

1) Название машины искажается в Вашем/etc/hosts как 127.0.0.1, и Ваш веб-сервер не связывается с петлевым адресом

2) Что относительно подсистем балансировки нагрузки, Вы использующий любого, который мог бы вызвать проблемы маршрутизации при попытке направить к себе

Andrew

0
ответ дан 4 December 2019 в 22:46
  • 1
    я, donk't думают, что это - связанный PHP. Это работает при запросе внешних URL, просто не те, которые размещаются локально. PHP.ini является стандартным, ничем специальным или пользовательским. –  Mojah 31 October 2010 в 21:15

Теги

Похожие вопросы