Как запустить на сайте программу

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

Но, в то же время, меня всегда привлекало низкоуровневое программирование. Ещё во время учёбы мне очень понравился язык программирования C++. Только негде было его применять, кроме как для своего развлечения. Дальше я опустился пониже — изучил Assembler. Понял, как работает процессор (хотя слишком поверхностно) и как выполняются программы на самом деле.

Со всем этим набором знаний и опыта я попал в веб-разработку. Всё поначалу казалось весьма и весьма хорошо, оказалось гораздо проще, чем я думал. А со временем приелось, стало слишком просто, неинтересно, нет простора для оптимизаций и интересных решений. Генерируешь веб-странички, пишешь и подключаешь js-скрипты, оформляешь страницы с помощью css. Чувствовал, что больше не развиваюсь как программист.

Как запустить 7 программ одним нажатием



В то время меня стали мучить вопросы:

  1. Почему я не могу создавать высокопроизводительные веб-приложения на таком языке, как C++ (не CGI)? Ведь этот язык мне нравится больше всех других. Никогда не слышал о том, что бывают сайты, написанные на C++. Почему?
  2. Почему веб-разработку захватили скриптовые (интерпретируемые) языки программирования?

Искал ответ на первый вопрос — как писать сайты на C++. В интернете ничего толкового по этой теме не нашёл (только через CGI). И ужаснулся: как же так? Я хочу быть свободен в выборе инструмента разработки, хочу использовать тот язык, который мне нравится. И до сих пор никто ничего не сделал?

Или сделал, но использует только у себя?

Это меня и заставило начать разрабатывать свой веб-сервер, где веб-приложения (сайты) подключались бы как библиотеки (*.so, *.dll).

Читайте также:
Как сделать резервную копию программы на Андроид

(Во время разработки я прозрел и понял, как правильно использовать HTTP протокол — узнал, что такое RESTful. Узнал, как правильно строить архитектуру веб-приложений. Удивился, какое множество сайтов не соответствуют требованиям RESTful, то есть, фактически, — работают неправильно).

Суть

За год работы над собственным веб-сервером (который я пишу на C++ самых модных новых стандартов) мне удалось реализовать все базовые необходимые функции:

  • Отправка файлов (с помощью установки заголовка X-Sendfile);
  • отправка сгенерированных приложением HTML страниц;
  • понимание и обработка частичных GET запросов;
  • получение данных из форм (файлов и текста) в различных видах (application/x-www-form-urlencoded, multipart/form-data) и передача их приложению в готовом виде;
  • поддержка Keep-Alive соединений;
  • поддержка Upgrade соединений (WebSocket).
Как работает мой веб-сервер

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

Как скачать OsEngine с ГитХаб. Как запустить программу?


server < listen 2280; server_name servertest www.servertest; server_module /media/projects/sites/servertest/module/servertest_release.so; server_module_update /media/projects/httpserverapp/httpserverapp/bin/Release/libhttpserverapp.so; root_dir /media/projects/sites/servertest/www/; request_max_size 10485760; >

  • listen — порт для приёма запросов к приложению;
  • server_name — имена веб-приложения (сайта);
  • server_module — путь к библиотеке, реализующей функционал веб-приложения;
  • server_module_update — путь к библиотеке веб-приложения новой версии, используется для обновления веб-приложения без перезапуска самого веб-сервера (почти на лету);
  • root_dir — корневая директория файлов сайта (веб-приложения);
  • request_max_size — максимальный размер данных запроса (в байтах), если размер данных в запросе больше — запрос игнорируется.
  • application_call — функция, которая вызывается для обработки каждого запроса;
  • application_clear — функция вызывается для освобождения памяти, выделенной под заголовки, которые приходят от веб-приложения к веб-серверу;
  • application_init — функция выполняется при успешной загрузке библиотеки, [не обязательна];
  • application_final — выполняется при завершении работы веб-сервера, [не обязательна];

Особенность в том, что так же передаётся и сокет клиента, с которым можно (нужно) работать напрямую.

Основная работа по разработке веб-сервера, можно сказать, завершена. Уже теперь разработчик может создавать свои веб-приложения на любом языке программирования, компиляторы которых позволяют собирать проект в виде библиотеки. Например, языки C и C++.

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

Читайте также:
С помощью какой программы можно скачивать видео с ютуба на компьютер

Хотите попробовать?

Исходный код веб-сервера и пример приложения к нему прилагается (используемая IDE — Monodevelop).

Веб-сервер распространяется под лицензией AGPL.

Что дальше?

Веб-сервер в рабочем состоянии, но работать ещё есть над чем (привести код некоторых функций в порядок, написать комментарии к коду).

Далее хотелось бы подробнее разобрать и описать структуру веб-приложения, описать с чего начинать разработку, для тех, кому это может быть интересно.

Сейчас пишу фреймворк для удобной разработки веб-приложений на C++ для моего веб-сервера (пока нет в доступе). На самом же фреймворке разрабатываю сайт для одной компании. Обычный сайт — ничего примечательного, но зато с оптимизациями. Использую СУБД MariaDB.

  • Разработка веб-сайтов
  • Open source
  • C++

Источник: habr.com

Как запустить python скрипт на сайте, чтобы пользователь мог взаимодействовать с ним?

Мне нужна помощь, дело в том, что мне нужно сделать так, чтобы на сайте запускался py скрипт,желательно сделать это по кнопке. Нужно чтобы пользователь мог взаимодействовать с ним, то есть в py скрипте будут спрашиваться значения. И к python скрипту прилагается еще файл, ну пусть будет config.txt, нужно чтобы пользователь мог туда добавлять значения. Как это сделать? P.s на сайте используется wp(если это играет значение).

Отслеживать
user243545
задан 10 мая 2020 в 19:15
21 1 1 серебряный знак 3 3 бронзовых знака
А какой сайт даёт запускать у себя скрипты Python?
10 мая 2020 в 20:23

3 ответа 3

Сортировка: Сброс на вариант по умолчанию

можно с помощью функции exec() с записью исходящих данных в массив. например:

exec(«python3.5 /PATH/TO/FILE/SCRIPT.py «, $output_response_array); print_r($output_response_array);

где $input_params_string строка данных, разделенных пробелом, например:

$input_params_string = implode(‘ ‘, array( // В этом случае ключи не будут переданы ‘user_id’ => 1, ‘user_pass’ => 123, ‘user_status’ => ‘OK’, ));

и обработанная на стороне Python-скрипта, например:

import sys print(sys.argv[1]) #user_id print(sys.argv[2]) #user_pass print(sys.argv[3]) #user_status print («Hello World!»)

Вся информация, выведенная функцией print() в Python-скрипте, будет записана в массив $output_response_array PHP-скрипта

Отслеживать
ответ дан 10 мая 2020 в 23:25
70 1 1 серебряный знак 4 4 бронзовых знака

Возможно использовать CGI-скрипты на Python, если хостинг это поддерживает. На сколько я знаю, reg.ru и вроде как beget работают.

Если знаете веб-фреймворк, по типу Flask и Django, то можете запустить их на отдельном порту и настроить прокси через nginx/apache.

Читайте также:
Примеры программ pascalabc net

Отслеживать
ответ дан 10 мая 2020 в 20:24
89 6 6 бронзовых знаков

const term = new Terminal(); const socket = new WebSocket(‘ws://localhost:8080/term’); const attachAddon = new AttachAddon.AttachAddon(socket); const fitAddon = new FitAddon.FitAddon(); term.loadAddon(fitAddon); term.loadAddon(attachAddon); term.open(document.getElementById(‘terminal’)); fitAddon.fit();

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

Источник: ru.stackoverflow.com

Запуск PHP. Выполнение файлов. Как вставить PHP в HTML?

Основная тема статьи — выполнение PHP-файлов. Также будут вкратце рассмотрены особенности использования функции exec и тема вставки PHP в HTML .

О запуске файлов PHP

Согласно установленным правилам и SLI SAPI, существует несколько способов запуска кода на PHP. Рассмотрим три основных.

1. Указание файла для запуска

Screenshot_1-1801-360634.png

Два вышеописанных способа (как с опцией –f, так и без нее) выполнят запуск файла PHP my_script.php. Причем отсутствуют ограничения, какой именно файл следует запускать, то есть файлы не должны обязательно иметь расширение .php.

2. Передача PHP-кода напрямую в командной строке

Screenshot_2-1801-1c21e6.png

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

3. Передача запускаемого PHP-кода с помощью стандартного потока ввода (stdin)

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

Screenshot_3-1801-58aec1.png

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

Вставляем PHP в HTML

Нередко появляется необходимость вставить код внутрь страницы HTML. Выполнить это несложно, если понимать принципы работы парсера кода и знать как методы его вставки, так и различия между ними.

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

Чтобы понять это на примере, стоит попробовать запустить у себя файл со следующим содержимым:

Screenshot_4-1801-4dc201.png

Способы вставки

Чаще всего используется следующий вариант:

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru