Запуск PHP из Perl Script
Я пытаюсь запустить php-скрипты из perl-скрипта на моем общем хостинге goDaddy. Сценарий PHP, который я изначально написал, превышает 120-секундное ограничение по времени и ограничение памяти mySQL, поэтому я разбил сценарий на несколько частей.
Я хочу, чтобы все это выполнялось как одно задание cron, поэтому я хочу вызвать один скрипт perl, который запускает 4-5 php-скриптов.
Это для моего сайта, работает с Drupal 7.
Я написал Perl-скрипт со следующим содержанием:
my $command = '/web/cgi-bin/php5 -q $HOME/html/phpscript1.php'; exec ($command) or print STDERR "couldn't exec $command: $!";
Что вызывает php-скрипты, содержащие что-то вроде следующего:
Но когда я запускаю это из perl (пробовал как в моем каталоге $HOME, так и в каталоге html), я вижу следующие проблемы при запуске сценария (где XXXXXX — папка моей учетной записи godaddy):
Notice: Undefined index: SCRIPT_NAME /home/content/05/XXXXXXX/html/includes/bootstrap.inc on line 1627
Notice: Undefined index: REMOTE_ADDR in /home/content/05/XXXXXXX/html/includes/bootstrap.inc on line 2802
Notice: Undefined index: argc in /home/content/05/XXXXXXX/html/includes/bootstrap.inc on line 3290
Я пришел к выводу, что это проблемы с FastGCI и что мне, вероятно, нужно определить / экспортировать / указать эти индексы / переменные на что-то, но я не смог выяснить, что делать после продолжительного поиска.
Сценарий PHP копирует изображения с внешнего сервера на мой сервер, используя CURL
Запустить php из perl
Профиль
Группа: Участник
Сообщений: 22
Регистрация: 28.6.2010
Есть WEB сервер (apache,php), при обращении через web браузер к перл скрипту, нужно чтобы из перл скрипта запускалась php страничка с авторизацией (php страничка с авторизацией у меня есть, а вот как заставить её работать из под перл скрипта. ), после того как авторизация пройдёт, выполнялся сам перл скрипт. Возможно такое реализовать? Спасибо.
Это сообщение отредактировал(а) tedy1 — 30.6.2010, 08:24
Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.10.2007
Зачем такое извращение? если вам надо что бы perl скрипт выполнялся после ввода логина и пароля, то реализуйте это в самом Perl скрипте.
Скрещивать Perl и PHP это не есть true, лучше выбрать что то одно для определенной задачи!
Профиль
Группа: Участник
Сообщений: 22
Регистрация: 28.6.2010
OutlawZ, все же есть такая возможность или нет?
Запускаем перл скрипт из браузера:
1). Как убрать сообщения, которые он сипит в браузер?
2). После его выполнения открывалась определенная страничка в браузере?
Ссорри за ламерские вопросики, только учусь, спасибо.
Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.10.2007
В общем то можно работать perl и с php вместе только это очень не удобно, это потребует отправки HTTP запроса скрипту PHP, что бы он обработал получаемые данные. LWP Библиотека для этого хорошо подходит.
Если сообщения выдаваемые интерпретатором то скрипты запускать без ключа -w. Советую почитать документацию по CGI Модулю если вы его используете документация есть на форуме.
Что бы после выполнения открывалась определенная страничка то это опять же лучше вставить HTML мета-тег
Т.е после всех операций выполненных скриптом в конце вставить:
Можно так же создать массив с именами страниц и по результату выводить желаемое.
Вроде все, если я правильно вас понял )
Профиль
Группа: Участник
Сообщений: 22
Регистрация: 28.6.2010
У меня это и так отключено (#!/usr/bin/perl -w #-w Убрать), я разобрался что из-за чего сыпалось.
Не работает, у меня просто в браузере показан просто текст print «»; и не переходит на другу страничку. Как сделать чтобы, перл скрипт его выполнял?
Я так понимаю какую то библиотеку надо подключить типа use и т.д. или я ошибаюсь?
Это сообщение отредактировал(а) tedy1 — 1.7.2010, 14:59
Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.10.2007
Проверьте а так код работает?? права на файл стоят как исполняемый на сервере?
Добавлено @ 15:36
можно вставить код JavaScript:
Попробуй, может тебя это устроит!
Это сообщение отредактировал(а) OutlawZ — 1.7.2010, 15:36
Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009
Вам сначала надо html выучить, а потом за перл браться. Без правильной резметки страницы вы от мета тегов ничего не дождетесь.
Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.10.2007
То что мета теги в head пихать это все знают. Тут учить html не кому не надо.
Просто на php такой трюк прокатывал!
А так лучше все же использовать javascript для перехода на другую страницу.!
Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009
Вы удивитесь, сколько людей не знают самых элементарных вещей! Причем эти люди в своей области профессионалы. А насчет того что прокатывало в пхп — извините, не верю. Прокатить такое может только если вы используете некий шаблонизатор, которые перед выводом мета тега подготовил для него место в хедере. Тут не может быть зависимости от серверного языка.
Профиль
Группа: Участник
Сообщений: 269
Регистрация: 19.10.2007
Хе-хе таких много даже среди тех с кем я работаю так что я не удивляюсь . Код который ниже работает на 100% без шаблонизаторов.
Хотя я не сторонки таких вещей, я предпочитаю делать все по стандарту в
Мета-теги. Но опять же лучше использовать javascript для перехода на другую страницу.Это сообщение отредактировал(а) OutlawZ — 2.7.2010, 12:38
Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009
Надо же! Но я бы так не делал, люблю стандарты А редирект да, скриптом оно лучше. Или заголовком Location.
Профиль
Группа: Участник
Сообщений: 22
Регистрация: 28.6.2010
Спасибо за помощь. Ещё вопросики:
1). Есть возможность с PHP передать данные в HTML?
К примеру мне надо чтобы данные попали в секцию:
2). Как можно с PHP запустить PERL скрипт? с передачей параметров GET или POST в PERL скрипт.
Это сообщение отредактировал(а) tedy1 — 5.7.2010, 10:58
Профиль
Группа: Участник
Сообщений: 526
Регистрация: 13.3.2009
Профиль
Группа: Участник
Сообщений: 22
Регистрация: 28.6.2010
Профиль
Группа: Участник
Сообщений: 22
Регистрация: 28.6.2010
Это сообщение отредактировал(а) tedy1 — 8.7.2010, 12:47
- В этом разделе обсуждаются вопросы относящиеся только к CGI программированию
- Если ваш вопрос не относится к системному или CGI программированию, задавайте его в общем разделе
- Если ваш вопрос относится к системному программированию, задавайте его здесь
- Интерпретатор Perl можно скачать здесь ActiveState, O’REILLY, The source for Perl
- Справочное руководство «Установка perl-модулей», качать здесь
- FAQ раздела лежит здесь!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: разработка для Web | Следующая тема » |
Как я могу вызвать скрипт PHP из Perl?
Обратите внимание, что вам, возможно, придется отредактировать путь к вашему исполняемому файлу php . Если вы хотите иметь выход как поток, вы также можете open с помощью канала (Perl < 3):
open PHPOUT, "/usr/bin/php-cli your-script.php|"; while ()
Я сделал, и ничего не подошло. это слишком просто для Google, я думаю. Я парень из php, как вы уже догадались, и Perl для меня как совершенно другая вселенная. Благодарю.
Это может быть проще переделать в свою основную проблему, как вызвать другую программу из perl, на что ответят в man-информации perlop о qx (или найдите команду perl qx через какой-либо другой означает). Это сообщает вам, как запускать внешнюю программу и получать результат, предполагая, что ваш PHP скрипт фактически работает при вызове через командную строку (можете ли вы запустить его через php your-php-script.php ?).
Если ваш script работает только через HTTP-запрос, вам нужно использовать что-то вроде LWP:: UserAgent или WWW:: Mechanize, чтобы получить контент через его URL-адрес, аналогично тому, как вам нужно будет использовать HTTP_Request.php в PHP.
LOL, спасибо за обновление сообщества спустя почти 8 лет. Я намного лучше различаю его / его сейчас, и было больно видеть, как оно выглядело в своем предыдущем состоянии на странице сравнения. Я предполагаю, что это действительно заставило кого-то пройти это лечение намного позже по небольшому вопросу, так что извините за это, но я не собираюсь жаловаться, если кто-то заставляет меня выглядеть лучше задним числом. 🙂
Запустить php из perl
Профиль
Группа: Участник
Сообщений: 165
Регистрация: 6.12.2007
Вопрос:
Как с помощью стандартных перловых средств запустить сторонний пхп-скрипт, а результаты работы передать в скалярную переменную?
Заранее благодарен за помощь.
Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia
Под результатом работы понимается вывод скрипта или код возврата пхп интерпретатора?
Профиль
Группа: Участник Клуба
Сообщений: 2543
Регистрация: 10.2.2006
Где: Россия 🙂
Добавлено через 29 секунд
Опоздал немного.
I love ArchLinux
- В этом разделе обсуждаются общие вопросы по языку Perl
- Если ваш вопрос относится к системному программированию, задавайте его здесь
- Если ваш вопрос относится к CGI программированию, задавайте его здесь
- Интерпретатор Perl можно скачать здесь ActiveState, O’REILLY, The source for Perl
- Справочное руководство «Установка perl-модулей», можно скачать здесь
- FAQ раздела лежит здесь!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
Запуск PHP из Perl Script
Я пытаюсь запустить php-скрипты из perl-скрипта на моем общем хостинге goDaddy. Сценарий PHP, который я изначально написал, превышает 120-секундное ограничение по времени и ограничение памяти mySQL, поэтому я разбил сценарий на несколько частей.
Я хочу, чтобы все это выполнялось как одно задание cron, поэтому я хочу вызвать один скрипт perl, который запускает 4-5 php-скриптов.
Это для моего сайта, работает с Drupal 7.
Я написал Perl-скрипт со следующим содержанием:
my $command = '/web/cgi-bin/php5 -q $HOME/html/phpscript1.php'; exec ($command) or print STDERR "couldn't exec $command: $!";
Что вызывает php-скрипты, содержащие что-то вроде следующего:
Но когда я запускаю это из perl (пробовал как в моем каталоге $HOME, так и в каталоге html), я вижу следующие проблемы при запуске сценария (где XXXXXX — папка моей учетной записи godaddy):
Notice: Undefined index: SCRIPT_NAME /home/content/05/XXXXXXX/html/includes/bootstrap.inc on line 1627
Notice: Undefined index: REMOTE_ADDR in /home/content/05/XXXXXXX/html/includes/bootstrap.inc on line 2802
Notice: Undefined index: argc in /home/content/05/XXXXXXX/html/includes/bootstrap.inc on line 3290
Я пришел к выводу, что это проблемы с FastGCI и что мне, вероятно, нужно определить / экспортировать / указать эти индексы / переменные на что-то, но я не смог выяснить, что делать после продолжительного поиска.
Сценарий PHP копирует изображения с внешнего сервера на мой сервер, используя CURL