Португальский
китайский
Сервер Fox Pages (FPS) — это многопоточный сервер HTTP, HTTPS и FastCGI для Visual FoxPro.
С помощью Fox Pages Server вы можете разрабатывать, отлаживать и распространять веб-контент и приложения с помощью Visual FoxPro.
Сервер Fox Pages не позволяет запускать код Visual FoxPro в Интернете. Вот почему необходимо знать язык и инструменты разработки для Интернета, которые будут использоваться, например: HTML, CSS, Javascript, JQuery, Dojo и т. д.
Сервер Fox Pages можно использовать в сочетании с платформой boa. Таким образом, вы можете создавать веб-приложения без каких-либо знаний языка веб-разработки. Сервер Fox Pages взаимодействует с BOA.
Microsoft Visual FoxPro 9.0
Fox Pages Server распространяется в двух режимах: режиме разработки и режиме распространения.
В этом режиме сервер по умолчанию работает в однопоточном режиме, что позволяет использовать Visual FoxPro для разработки страниц FXP. Для режима разработки требуется установленный Visual FoxPro.
В этом режиме сервер работает в многопоточном режиме, обеспечивая экстремальный прирост производительности. Для режима распространения требуется установленная среда выполнения Visual FoxPro.
В режимах разработки и распространения любая ошибка записывается в таблицы в папке LOGS, что позволяет обнаруживать и отслеживать ошибки.
Не пытайтесь выполнить процедуру установки в режиме разработки и развертывания на одном компьютере. Если это необходимо, запустите файл install.bat из режима распространения, поскольку он зарегистрирует компоненты и создаст службу Windows. Настройте режим разработки для использования IP-адреса или порта, отличного от режима распространения.
Отладка Visual FoxPro будет работать только в режиме разработки, поскольку невозможно отобразить какой-либо интерфейс, когда код выполняется в многопоточной DLL. Любая попытка приведет к возникновению ошибок или зависанию потока.
Не рекомендуется оставлять файлы .HTML с их скомпилированным .FXP в одной папке сервера, их можно скачать, если изменить расширение в веб-браузере.
Fox Pages использует порт 80 по умолчанию для HTTP, поэтому перед запуском необходимо остановить любую службу, использующую порт 80 (IIS, Apache и т. д.), или изменить порт, используемый в программе HTTP.PRG, расположенной в папке SERVERS на режим или в поле PORT таблицы SERVERS.DBF, расположенной в папке DATA в режиме раздачи.
Другие протоколы следуют той же процедуре.
База данных FPS.DBC, расположенная в папке DATA, хранит конфигурацию серверов. Документацию по таблицам и соответствующим полям можно найти в файле FPS.HTML. Взаимосвязь между таблицами можно просмотреть на изображении FPS.JPG.
Серверы отвечают за соединения клиентов (IE, Chrome, Firefox и т. д.) и серверов (NGinX и т. д.).
Каждый сервер работает в отдельном потоке и может, в зависимости от конфигурации IP-номера, прослушивать один и тот же порт. В случае конфликта IP-номеров и портов подключения получит первый настроенный сервер.
Настройте серверы, добавив, изменив или удалив записи в таблице SERVERS.DBF.
Каждый протокол по умолчанию использует определенный порт:
FastCGI обычно используется для связи между серверами, порта по умолчанию нет.
Сайты устанавливают связь между ИМЯ ХОСТА (например, www.example.com) с папкой, в которой расположены файлы сайта (например, c:sitesexample), и настраивают вашу домашнюю страницу (например, index.fxp, index. php, index. .html и т. д.).
Настройте сайты, добавляя, изменяя или удаляя записи в таблице SITES.DBF.
Если поле HOSTNAME заполнено знаком «*», все HOSTNAMES будут относиться к одной и той же папке.
В этой же таблице настраиваем перенаправления, заполняя поле REDIRECT полным адресом перенаправления. Эта функция очень полезна, когда нам нужно например перенаправить незащищенные соединения (HTTP) на защищенный сервер (HTTPS), это делается например заполнением поля REDIRECT сайта www.example.com с небезопасного сервера. (HTTP) с https://www.example.com, адресом безопасного сайта (HTTPS).
Шлюзы используются для отправки запросов к другим инструментам разработки. На данный момент протестирован только PHP, а любой инструмент, поддерживающий FastCGI, должен быть совместим.
Настройте шлюзы, добавив, изменив или удалив записи в таблице GATEWAYS.DBF.
Единственный поддерживаемый протокол — FastCGI.
Шлюзы работают аналогично Сайтам, устанавливая связь между ИМЯ ХОСТА (например, www.example.com) и папкой, в которой расположены файлы сайта (например, c:sitesexample). Разница заключается в том, что содержимое поля URI (например, «.php») должно содержаться в URI запроса, чтобы оно было отправлено на шлюз.
На основе этих критериев сервер Fox Pages преобразует HTTP-запрос в запрос FastCGI и отправляет его на настроенный сервер. Ответ FastCGI затем преобразуется в ответ HTTP и отправляется клиенту.
Запросы, не соответствующие критериям, будут обрабатываться HTTP-сервером, поэтому для каждого Шлюза необходимо настроить Сайт.
Не все папки и файлы, содержащиеся на сайте, должны быть доступны. Базы данных, таблицы и программы — вот некоторые примеры.
Fox Pages Server имеет систему контроля доступа, позволяющую авторизовать доступ или полную блокировку папок сайта.
Контроль доступа настраивается путем добавления, изменения или удаления записей из таблиц REALMS.DBF, USERS.DBF и REALMUSER.DBF.
Таблица REALM.DBF задает настройки доступа к папкам сайта.
Таблица USERS.DBF определяет пользователей, которые будут иметь доступ к папкам.
В таблице REALMUSER.DBF перечислены пользователи с папками.
Это механизм браузера, который предотвращает доступ источника (домена) к ресурсам в отдельном источнике (другом домене) без авторизации.
Настройте авторизацию, добавляя, изменяя или удаляя записи в таблице CORS.DBF.
Введите сайт, который будет предоставлять авторизацию, в поле САЙТ. Это поле связано с таблицей SITES.DBF.
Введите источник (авторизованный домен) в поле ORIGIN. Если оно заполнено знаком «*», любой источник будет разрешен.
Введите ресурс в поле URI, если оно заполнено знаком «*», то любой отказ будет разрешен.
Поля GET, POST, PUT, DELETE, HEAD и OPTIONS определяют, какие методы разрешены.
Поле HEADER должно быть заполнено разрешенными заголовками HTTP. Их следует разделять запятой, за которой следует пробел.
Сервер Fox Pages можно настроить для использования через другие веб-серверы с использованием протокола FastCGI.
Файл nginx.conf, расположенный в папке NGINX, представляет собой шаблон конфигурации сервера NGinX. Скопируйте этот файл в папку CONF, где установлен NGinX, и настройте параметр ROOT, указав полный путь к папке с файлами сайта.
Чтобы настроить сервер Fox Pages для использования протокола FastCGI, заполните поле TYPE таблицы SERVERS.DBF значением «FCGI».
Поскольку вся информация, необходимая для обработки запроса, должна быть предоставлена веб-сервером, нет необходимости настраивать сайты, шлюзы или безопасность.
После запуска сервера воспользуйтесь любым браузером, введя настроенный адрес сервера (например, http://localhost, https://localhost).
Для входа на демо-сайт есть две учетные записи: одна для клиента и одна для представителя.
Учетная запись клиента имеет доступ к личному кабинету. Для доступа используйте адрес электронной почты [email protected] и пароль 123456.
В представительском кабинете запускается приложение для регистрации клиентов и заказов. Для доступа используйте адрес электронной почты[email protected] и пароль 123456.
Динамическая страница использует серверный язык программирования при разработке веб-сайта или интернет-приложения.
Страницы сервера Fox позволяют разрабатывать эти страницы, используя ресурсы статических страниц разработок (например, HTML, CSS, Javascript) с функциями программирования Visual Fox Pro (например, программирование на языке консоли, база данных).
В Fox Pages Server HTML-страница преобразуется в программный файл PRG и компилируется в скомпилированный файл FXP, поэтому обработка страницы происходит чрезвычайно быстро и не имеет ограничений, связанных с использованием другого интерпретатора.
В процессе компиляции будет обрабатываться только код между тегами <FPS>
и </FPS>
, остальная часть будет отправлена как статический контент.
Пример статического контента.
<HTML>
Hello World
</HTML>
Результат:
Привет, мир
Пример программы со статическим контентом из-за отсутствия тегов <FPS>
и </FPS>
.
<HTML>
for nCounter = 1 to 3
Hello World
next
</HTML>
Результат:
для lnCounter = от 1 до 3
Привет, мир
следующий
Пример использования тегов <t>
и <e>
, они отвечают за отправку статических текстов и выражений.
<HTML>
<FPS>
cWorld = "World"
for nCounter = 1 to 3
<t>Hello </t><e>cWorld</e><br>
next
</FPS>
</HTML>
Результат:
Привет, мир
Привет, мир
Привет, мир
Пример использования других HTML-тегов в сочетании с программированием. Отправляется каждая строка, начинающаяся с тега HTML или тега <t>
.
<HTML>
<FPS>
<b>Begin</b><br><br>
cWorld = "World"
for nCounter = 1 to 3
<b><t>Hello </t><e>cWorld</e></b><br>
next
<br>
<t>End</t>
</FPS>
</HTML>
Результат:
Начинать
Привет, мир
Привет, мир
Привет, мир
Конец
REST (передача репрезентативного состояния) — это архитектурный стиль, который утверждает, что веб-приложения должны использовать HTTP по первоначальному замыслу, где запросы GET, PUT, POST и DELETE должны использоваться для запроса, изменения, создания и удаления соответственно.
Сервер Fox Pages обрабатывает запрос как REST, если заголовок Accept имеет значение «application/json» или «application/xml».
Более подробную информацию можно найти в приложении, доступном на демо-сайте при входе в представительский аккаунт.
С помощью Fox Pages Server вы можете создать REST API для обслуживания запросов платформы BOA. Вы можете создать полноценное веб-приложение в Visual Foxpro. Страницы сервера Fox будут отвечать на запросы, отправленные BOA. Данные, которые передаются между страницами сервера Fox и BOA, представляют собой простые для понимания строки JSON.
После настройки страниц Visual Fox вы можете проверить эффективность этой комбинации. Запустите демо-версию на https://www.BOA-platform.com или по прямой ссылке: http://demo.boa-platform.com. Когда появится экран входа в систему, вы можете использовать следующее:
Пользователь: ru
Пароль: ru01
URL-адрес сервера API: http://localhost/boa. Это ваш локальный сервер Fox Pages.
Пример исходного кода см. в папке demo/boa.
Для поддержки протокола FastCGI изменена обработка свойств объекта Request и Response.
В заголовках версии 2.0 с дефисами (например, Accept-Encoding) дефис был удален (например, AcceptEnconding). В версии 3.0 эти дефисы заменены на подчеркивания (например, Accept_Encoding).
Fox Pages Server — бесплатное программное обеспечение с открытым исходным кодом. Лицензия находится в файле LICENSE.
Для соединений используется компонент Socketwrench компании Catalyst Development Corporation (www.sockettools.com).
Этот компонент распространяется в бесплатной и коммерческой версиях. Бесплатная версия не поддерживает безопасные соединения (SSL/TLS).
Разрабатываемая версия Fox Pages Server настроена на использование бесплатной версии SocketWrench. Это будет ограничением только в том случае, если требуется использование безопасных соединений в среде разработки.
Чтобы использовать коммерческую версию SocketWrench, вам необходимо приобрести лицензию, поскольку Fox Pages Server не включает эту лицензию.
Используемая конфигурация версии (бесплатная или коммерческая) или версия SocketWrench находится в файле FOXPAGES.H папки CORE следующим образом:
//ТОРЦЕВОЙ КЛЮЧ
#DEFINE USEFREEVERSION
#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.6"
//Гаечный ключ 8
//#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.8"
//#DEFINE CSWSOCK_LICENSE_KEY «ВСТАВЬТЕ СВОЮ ЛИЦЕНЗИЮ НА РАБОТУ»
//Гаечный ключ 9
//#DEFINE CSWSOCK_CONTROL "SocketTools.SocketWrench.9"
//#DEFINE CSWSOCK_LICENSE_KEY «ВСТАВЬТЕ СВОЮ ЛИЦЕНЗИЮ НА РАБОТУ ЗДЕСЬ»
После изменения этих настроек вам необходимо перекомпилировать проект.
Многопоточность — VFP2C32T.FLL — Кристиан Эльшайд
Сжатие — VFPCompression — Крейг Бойд
Шифрование – VFPEncryption – Крейг Бойд
JSON Parser — модифицированная версия библиотеки — Крейг Бойд
Головки - Торцевой ключ - Catalyst Development
Если этот проект вам полезен, рассмотрите возможность пожертвования.