Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: как запустить php скрипт с помощью ajax

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Panoptik
Отправлено: 09 Декабря, 2011 - 11:23:00
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




приветы усем!

суть такова. нужно просто запустить скрипт на исполнение из клиентского окна, но никаких данных получать не нужно. использовать $.get $.post можно, но ведь я же ничего не посылаю. вот собственно и вопрос как правильнее это сделать или упомянутые методы единственный вариант?


-----
Just do it
 
 Top
EuGen Администратор
Отправлено: 09 Декабря, 2011 - 11:27:16
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Запускайте скрипт, который, в свою очередь, будет выполнять нужный Вам скрипт (через http://php.su/functions/?system , не забудьте подавить весь вывод). Например,

ajax.php:
PHP:
скопировать код в буфер обмена
  1. system('php /path/to/script.php > /dev/null');


А через $.get вызывать ajax.php


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Panoptik
Отправлено: 09 Декабря, 2011 - 11:31:26
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




спасибо

посмотрел на ваш код и вспомнил недавнюю историю. мне нужно было проходить по дереву файловой системы и производить нужные операции, для этих целей нужны были права рута, пароль рута мне известен.
теперь вопрос: можно ли выше описанным методом system запустить php с правами рута?


-----
Just do it
 
 Top
EuGen Администратор
Отправлено: 09 Декабря, 2011 - 11:44:50
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




PHP:
скопировать код в буфер обмена
  1. system('sudo php /path/to/script.php > /dev/null');

Пользователь, из-под которого выполняется ajax.php (то есть веб-сервер), должен быть в списке sudo (/etc/sudoers как правило)
но я бы не рекомендовал так делать.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Panoptik
Отправлено: 09 Декабря, 2011 - 11:48:34
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




/etc/sudoers - этот список насколько я понимаю дает право выполнять команды sudo без запроса пароля?
(Добавление)
кстати на сервере стоит centOS или команда sudo одинакова для всех видов *nix'ов?


-----
Just do it
 
 Top
Мелкий Супермодератор
Отправлено: 09 Декабря, 2011 - 11:51:25
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




EuGen пишет:
из-под которого выполняется ajax.php (то есть веб-сервер), должен быть в списке sudo (/etc/sudoers как правило)

Более того, должен быть прописан как NOPASSWD. Иначе - попросит отсутствующий пароль.

Присоединяюсь к рекомендации проверить, так ли необходимы рутовые права.
(Добавление)
Panoptik пишет:
/etc/sudoers - этот список насколько я понимаю дает право выполнять команды sudo без запроса пароля?

Нет, он просто даёт право на вызов sudo.
И описывает, кому и что, и от чьего имени можно вызывать.


-----
PostgreSQL DBA
 
 Top
EuGen Администратор
Отправлено: 09 Декабря, 2011 - 11:56:58
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Мелкий

Это разумеется. Здесь тонкость в том, что это может быть не обязательно пользователь, но и группа, разрешенная для sudo без пароля.

Но веб-сервер, имеющий возможность работать под root без пароля - это брешь в безопасности.

sudo одинакова везде, по сути, это название консольной программы.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Panoptik
Отправлено: 09 Декабря, 2011 - 12:00:08
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




ну про безопасность - это понятно. необходимость рута заключается просто в возможности иметь доступ к определенной папке и всем вложениям, потому как во вложенных папках находятся файлы имеющие разных владельцев и получить доступ ко всем от обычного пользователя не представляется возможным, а изменять права на 666/777 - выход крайне неприятный

ко всему добавлю что необходимость вызвана еще тем, что безопасность и так была нарушена и выше перечисленные файлы были изменены порядком 3к штук. вот собственно откуда взялась данная задача. и запуск скрипта с директивой sudo являлся лишь разовой акцией

пысы: всем спасибо за советы и ответы


-----
Just do it
 
 Top
EuGen Администратор
Отправлено: 09 Декабря, 2011 - 12:02:53
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Panoptik пишет:
а изменять права на 666/777

Это куда более безопасное решение, чем работа из-под root
Да и необязательно. Для просмотра достаточно прав на листинг каталога (право x - исполнение) и просмотра файлов (право r - чтение).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Panoptik
Отправлено: 09 Декабря, 2011 - 12:06:49
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




нужно было еще и изменять, поэтому право w - объязательно


-----
Just do it
 
 Top
filkeith
Отправлено: 09 Декабря, 2011 - 12:59:45
Post Id



Гость


Покинул форум
Сообщений всего: 112
Дата рег-ции: Июль 2011  


Помог: 2 раз(а)




А почему нельзя просот передать в php от js к примеру гетом просто x=1 а в php if(isset($_GET[x])){выполнить что то}
 
 Top
Panoptik
Отправлено: 09 Декабря, 2011 - 14:03:27
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2493
Дата рег-ции: Нояб. 2011  
Откуда: Одесса, Украина


Помог: 131 раз(а)




filkeith пишет:
А почему нельзя просот передать в php от js к примеру гетом просто x=1 а в php if(isset($_GET[x])){выполнить что то}

так можно было сделать и вконце концов было сделано)


-----
Just do it
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB