Как запустить php скрипт в браузере
Перейти к содержимому

Как запустить php скрипт в браузере

  • автор:

forum.clarionlife.net

Дернуть php-скрипт без открытия интернет-браузера

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников.

12 сообщений • Страница 1 из 1

NewUser Старожил Сообщения: 226 Зарегистрирован: 10 Ноябрь 2005, 23:07 Откуда: Краснодар Благодарил (а): 4 раза

Дернуть php-скрипт без открытия интернет-браузера

Сообщение NewUser » 13 Декабрь 2011, 12:07

Всем привет!
Подскажите, пожалуйста, как можно из CW6 дернуть php-скрипт на web-сервере без открытия интеренет-браузера?

NewUser

Игорь Столяров Ветеран движения Сообщения: 7173 Зарегистрирован: 07 Июль 2005, 10:19 Откуда: г. Ростов-на-ДоМу Благодарил (а): 11 раз Поблагодарили: 41 раз

Re: Дернуть php-скрипт без открытия интернет-браузера

Сообщение Игорь Столяров » 13 Декабрь 2011, 12:51

Да, Вы батенька, какие-то хакерские вопросы задаете .
Скрытно выполнить скрипт — также как и из программы на «сях» — через WinAPI — см. google и MSDN.

За теми кто отстал — не возвращаться. (С) Кодекс

Игорь Столяров

Yufil Ветеран движения Сообщения: 1277 Зарегистрирован: 16 Май 2006, 14:34 Контактная информация:

Re: Дернуть php-скрипт без открытия интернет-браузера

Сообщение Yufil » 15 Декабрь 2011, 11:12

А что такое Дёрнуть скрипт? Если заставить выполнить запрос — я делал классы, отправляющие и принимающие запрос чере Get или Post, нет проблем.

Yufil

Bristan Посетитель Сообщения: 30 Зарегистрирован: 31 Январь 2009, 15:27

Re: Дернуть php-скрипт без открытия интернет-браузера

Сообщение Bristan » 15 Декабрь 2011, 13:02

NewUser писал(а): Всем привет! Подскажите, пожалуйста, как можно из CW6 дернуть php-скрипт на web-сервере без открытия интеренет-браузера?

Есть ещё вариант использовать РНР как скриптовый язык. В .Net есть большой выбор таких языков и можно свой, написанный под конкретную предметную область, доменный язык использовать с компиляцией. Надо только переходник для с6 написать.

Сейчас уже пишем Темплейты для работы .Net с Clarion for Windows. Версия Clarion не имеет значения, и любой язык Net. (c#, VB .Net . Clarion.Net)

Bristan

NewUser Старожил Сообщения: 226 Зарегистрирован: 10 Ноябрь 2005, 23:07 Откуда: Краснодар Благодарил (а): 4 раза

Re: Дернуть php-скрипт без открытия интернет-браузера

Сообщение NewUser » 19 Декабрь 2011, 23:53

Как запустить php скрипт в браузере

Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2014

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

Здравствуйте! Не могу сообразить как запустить скрипт когда кончается обратный отсчет. Подскажите пожалуйста.

$count_down = intval($enddate) — time();
if($count_down <= 0 && $order_info['order_state']; != 30)<

//Надо запустить эту ссылку где «member_refund» это название другого файла. Делаю так но работает только при запуске в браузере. Крон использовать нельзя так как передаются $_GET

$.get( «index.php?act=member_refund&op=add_refund_all&order_id= &end_time_cancel=1» );
Отправлено: 24 Августа, 2014 — 12:31:11

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

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

Подробнее можно?

——
Март 2021. Бросил программирование

Отправлено: 24 Августа, 2014 — 12:38:10

Покинул форум
Сообщений всего: 6
Дата рег-ции: Апр. 2014

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

dcc0 пишет:
Подробнее можно?

Объясню подробно. Покупатель оплачивает заказ. К времени заказа прибавляется определенное время (допустим 5 минут) и с этого момента начинается отсчет времени. Если продавец не отправил заказ в этот промежуток времени то запускается скрип и заказ отменяется. Ответ не нужен просто нужно запустить эту ссылку с $_GET параметрами. Работа скрипта заносится в базу. Скрипт запускается только один раз потом меняется статус заказа и скрипт не запускается.

Отправлено: 24 Августа, 2014 — 12:53:10

Покинул форум
Сообщений всего: 177
Дата рег-ции: Апр. 2012

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

# Язык программирования PHP

PHP — самый распространённый язык программирования для создания веб-приложений. На PHP написано большинство динамических сайтов, CMS и блоговых движков. При подключении услуги Поддержка PHP на хостинге можно будет использовать скрипты, написанные на этом языке.

# Поддерживаемые версии PHP

Для каждого подключённого к хостингу домена можно установить отдельную версию PHP. Полный список поддерживаемых версий PHP и пути к их интерпретаторам можно посмотреть в разделе Управление

Переключение между версиями происходит в разделе Управление

Настройки веб-сервера . Здесь же, но уже на вкладке «Настройки PHP» представлены все подключаемые модули и расширения выбранной версии PHP.

Устаревшие версии PHP не поддерживаются разработчиками и могут иметь проблемы с безопасностью. Рекомендуем использовать последнюю из доступных версий.

# Выполнение php-скриптов

PHP-скрипты исполняются от имени владельца аккаунта, а не от имени веб-сервера. Чтобы PHP смог что-то записать в папку, права на папку должны быть установлены 0755.

По умолчанию PHP-скриптом считается файл с расширением .php или .phtml.

Для работы скриптов на Джино.Хостинге выделяется 128 МБ оперативной памяти.

# Как узнать текущие установки PHP

Чтобы узнать текущие установки PHP, создайте в папке domains в подпапке с вашим доменным именем («~/domains/example.com/) файл phpinfo.php со следующим содержанием:

?php phpinfo(); ?> 

В браузере зайдите по адресу ‘example.com/phpinfo.php’.

На этой странице будет представлена большая таблица с полным описанием всех настроек текущей версии PHP, работающей на этом домене.

# Запуск PHP в режиме CGI

Запуск PHP в режиме CGI позволяет указывать свой php.ini, работать из PHP с любыми файлами на аккаунте и иметь полный доступ к файлам, созданным из PHP.

Чтобы запустить PHP режиме CGI нужно подключить услуу «Поддержка веб-приложений» (Поддержку PHP можно отключить).

После этого в папке domains в подпапке с доменным именем, на котором будет работать скрипт (~/domains/example.com), создайте файл php.cgi со следующим содержанием:

#!/bin/bash /usr/local/bin/php-cgi -n 

Также можно создать файл php.cgi со следующим содержанием:

#!/bin/bash /usr/local/bin/php-cgi -c /path/to/file/php.ini 

После этого установите на файл php.cgi права 0755 (rwxr-xr-x) — это можно сделать в файловом менеджере, щёлкнув правой кнопкой мыши на нужном файле. Также проверьте права на папку с доменным именем: должны быть 0755 (drwxr-xr-x).

Последний шаг — в подпапке с доменным именем создайте файл .htaccess со следующим содержимым:

Action php-cgi /php.cgi AddHandler php-cgi .php 

Теперь файлы с расширением .php будут обрабатываться PHP-интерпретатором в CGI-режиме.

Недостатки запуска PHP через CGI: низкая скорость работы, недоступность некоторых функций модуля и потенциальная небезопасность (если ваш скрипт взломают, это может иметь более серьезные последствия, чем если бы PHP работал как модуль Apache). По этим причинам мы не рекомендуем запускать PHP через CGI.

# php.ini

В конфигурационном файле php.ini находится большинство настроек PHP.

(opens new window) приведён список директив php.ini, которые вы можете использовать в файле .htaccess.

На Джино.Хостинге можно использовать только те директивы, которые обозначены параметрами PHP_INI_USER, PHP_INI_PERDIR, PHP_INI_ALL.

Список директив категории PHP_INI_SYSTEM, которые можно изменить, приведён в разделе Управление

Например, чтобы включить magic_quotes_gpc, нужно прописать директиву функции в файле .htaccess:

php_flag magic_quotes_gpc on 

Чтобы отключить буферизацию вывода данных, в файле .htaccess укажите следующий код:

php_flag output_buffering off 

Чтобы отключить глобальные переменные, добавьте в .htaccess строчку:

php_flag register_globals off 

Все приведённые выше параметры прописаны через директиву php_flag, поскольку они могут принимать только значения — on/off (1/0). Если значение прописываемого параметра может быть отлично от нуля или единицы (т. е. от on или off), то следует использовать директиву php_value.

Например, чтобы увеличить объём загружаемого файла через скрипты, создайте файл .htaccess в папке скрипта или папке домена и поместите в него следующие директивы:

php_value upload_max_filesize 15M php_value post_max_size 15M 

Здесь 15M — это максимальный размер загружаемого файла в МБ. Укажите нужный вам размер. На Джино.Хостинге PHP работает как модуль Apache, поэтому по умолчанию использовать пользовательский php.ini нельзя.

Если вы хотите использовать собственный php.ini вы можете запустить PHP в режиме CGI.

Большую часть настроек можно изменить, не запуская PHP в режиме CGI — через файл .htaccess и раздел меню Управление

# allow_call_time_pass_reference

Некоторые CMS требуют включить параметр php.ini allow_call_time_pass_reference. Для этого создайте в нужной папке (например, в папке, куда устанавливаете скрипт) файл .htaccess и поместите в него такую директиву:

php_flag allow_call_time_pass_reference on 

Если файл .htaccess в нужной папке уже существует, то просто добавьте эту строку в конец. Действие этой директивы распространяется и на все подпапки.

# register_globals

Некоторые скрипты требуют включения директивы register_globals. Для этого в папке скрипта или в папке домена создайте файл .htaccess и поместите в него следующую директиву:

php_flag register_globals on 

Если файл .htaccess в нужной папке уже существует, то просто добавьте эту строку в конец. Действие этой директивы распространяется и на все подпапки.

# Вопросы и ответы

Как изменить часовой пояс на сайте?

Добавьте в файл .htaccess строку с указанием нужного часового пояса (например, московского):

php_value date.timezone 'Europe/Moscow' 

Список поддерживаемых временных зон можно узнать на сайте php.net

Почему вместо результатов работы PHP-скрипта я вижу лишь пустую белую страницу?

Скорее всего, в процессе работы скрипта произошла ошибка, а в файле .htaccess отключён вывод ошибок на экран. Чтобы его включить, добавьте в этот файл (обычно он находится в вашей домашней директории, папке домена или папке с вашим скриптом) строку:

php_flag display_errors on 

Если такая строка уже есть, приведите её к указанному выше виду.

После завершения отладки скрипта настоятельно рекомендуем снова выключить отображение ошибок.

Почему вместо результатов работы PHP-скрипта скачивается файл *index.php*?

Это значит, что у вас не подключена услуга «Поддержка PHP», и обработка PHP-скриптов на вашем аккаунте не работает. Подключить услугу можно в разделе Услуги .

Как выключить отображение ошибок PHP?

На серверах хостинга Джино по умолчанию включён вывод ошибок в PHP-скриптах в браузер. Чтобы отключить отображение ошибок, создайте в своей домашней директории, в папке домена или в папке со скриптом файл .htaccess и добавьте в него следующую строку:

php_flag display_errors off 

После завершения отладки скрипта рекомендуется выключать отображение ошибок.

© Джино, 2003–2022. «Джино» является зарегистрированным товарным знаком.
Лицензия на телематические услуги связи №150549 от 09.03.2017.

Добавление PHP скрипта в cron

Cron — это демон (программа, которая постоянно работает в системе в фоновом режиме), представляющий собой планировщик задач в UNIX-подобных операционных системах, который в определенное время автоматически выполняет задания. Пример задания — регулярное создание резервной копии.

Каждый пользователь сервера может добавлять свои задания, указывая, в какое время и какие скрипты нужно выполнять от его имени. Задания могут выполняться, например, раз в день, раз в месяц, раз в год.. На вашем хостинге могут действовать ограничения на общее количество заданий и на то, как часто может выполняться задание (Например, не чаще 1 раза в 10 минут и не более 10 cron-заданий).

Структура крон задания

Задание (таблица crontab) включает 6 разделов, разделяемых пробелами или табуляцией.

минуты часы день_месяца месяц день_недели команда

Первые пять разделов задают время выполнения скрипта:
минуты: 0-59
часы: 0-23
день месяца: 1-31
месяц: 1-12
день недели: 0-7 (0 и 7 — воскресенье)
* — диапазон с первого до последнего.

команда задает скрипт, который нужно выполнять, например, скрипт на php. Если команда передает текст в стандартный вывод, этот текст отправляется на e-mail пользователя, но стандартный вывод можно перенаправить в /dev/null:

команда >/dev/null 2>&1

Примеры задания времени выполнения скрипта:
0 22 * * * — каждый день в 22:00 (в 0 минут, в 22 часа, каждый день, каждый год, каждый день недели)
0 0 1 * * — раз в месяц (в 0 минут 0 часов первого числа каждого месяца)
0,30 10-22 * * * — каждые полчаса между 10:00 и 22:00 (в 0 и 30 минут с 10 до 22 часов каждый день)
*/10 * * * * — каждые 10 минут

Онлайн генератор crontab для PHP скрипта

Чтобы выбрать несколько значений из списка, зажмите Ctrl.

Минуты
Каждую минуту
Выбрать
Часы
Каждый час
Выбрать
День месяца
Каждый день
Выбрать
Месяц
Каждый месяц
Выбрать
День недели
Каждый день
Выбрать

Добавить скрипт PHP в крон

Для начала нам нужен SSH доступ к серверу или панель Cron у вашего хостера. Настройки крон в панели у каждого хостера свои, их разбирать нет смысла.

Разберем действия через SSH.

PHP скрипты в терминале запускаются с помощью команды

php file.php

Эту команду уже можно добавить в крон, но тут могут появиться проблемы

При сохранении сокращенной версии команды, PHP может быть не найден

Не стоит добавлять в крон команду php. Воспользуйтесь запуском whereis php и скопируйте полную версию команды, чаще всего это /usr/bin/php

Далее вместо команды php, лучше сразу всё проверять на полной версии. Например:

/usr/bin/php --version
HTTP сервер и команда из терминала могут запускать разные версии PHP

Чтобы проверить, что версия одна создайте на сервере файл с контентом:

Запустите его из браузера. Увидите какую версию запускает веб сервер.

В терминале запустите команду:

php --version

Увидите версию запускаемую из терминала. Версии на сервере и из терминала должны быть одинаковые.

Если версии разные, то надо поискать команду запуска версии PHP как у веб сервера. Вам может помочь команда whereis.

Вот у нас запуск php выводит 5.6, а нам надо 7.1. Получается надо запускать /usr/local/bin/php7.1

HTTP сервер и команда из терминала могут запускать PHP с разными настройками

У разных CMS есть свои обязательные настройки. Какие настройки изменятся и как это повлияет в вашем конкретном случае — не знаю. Чтобы узнать значение настройки — используйте функцию ini_get(), чтобы в терминале указать параметр — используйте директиву -d.

Например, нам надо верно установленный часовой пояс. Контент тестового файла:

Запускаем без параметров, и с установленным часовым поясом:

Важно: если параметры у вас не верные и на веб сервере и в терминале — надо настраивать сам PHP, например через php.ini. Если проблема только при запуске через консоль — тогда можно использовать установку нужных параметров с помощью параметра -d.

Пользователь, от которого работает веб сервер, может отличаться от текущего.

Задание в крон добавляется от того пользователя, от кого вы работаете в SSH. А вебсервер может работать от другого лица.

Создайте файл с контентом:

Запустите его из браузера. Посмотрите на сервере в папке скрипта владельца файла test.txt. После этого файл test.txt удалите, запустите скрипт через консоль. Снова посмотрите владельца файла test.txt. В первом и втором случае — это должен быть один и тот же пользователь.

При запуске через терминал не установлены некоторые переменные.

Часто скрипт зависит от установки $_SERVER[‘DOCUMENT_ROOT’]. В этой переменной хранится корневая папка сайта. А когда мы запускаем скрипт через консоль — никакого сайта нет. Файл мы можем хоть откуда запускать, сайт не требуется для этого.

Чтобы решить эту проблему, в начало файла добавьте определение переменной:

Если скрипт находится в корневой папке сайта — используйте константу __DIR__, в ней папка, которой находится запускаемый файл. Если скрипт в других папках, то можно использовать относительные пути от __DIR__:

Добавление крон

С основными ошибками закончили, приступим к делу!

Чтобы запустить файл, нужен полный путь к нему. Для этого перейдите в папку с файлом, и введите команду pwd, скопируйте путь.

Как запускать php определились выше, путь к файлу есть. Попробуем запустить самостоятельно с полными путями и полной командой. Всё работает:

Берем команду и вставляем её в генератор, настраиваем время, жмем создать. Получаем строку по типу 1 1,13 * * * /usr/bin/php /var/www/myscript.php — это запуск php скрипта 2 раза в день.

Для редактирования крон заданий существует команда crontab -e. Введите её в терминале и добавьте в самый низ полученную ранее строку, сохраните.

Важно: после последнего задания должна быть одна пустая строка, иначе работать не будет. Так устроен крон.

Всё, задание добавлено.

Чтобы просмотреть список заданий, используйте команду crontab -l.

Настройка уведомлений о работе крон на электронную почту

Чтобы вывод крон задания отправлялся к вам на почту, в крон надо установить переменную MAILTO.

Чтобы отключить уведомления, MAILTO требуется установить в пустое значение.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *