Пытаясь узнать больше о других языках и облаке, я загрузил приложение с открытым исходным кодом, написанное на PHP, для его запуска в Azure: FoOlSlide2 . Также известно, что он работает без проблем на XAMPP или WAMPP.
Мне удалось настроить всю среду приложения, создать и подключить базу данных MySql, запустить приложение и воспроизвести его метод установки и настройки базы данных без проблем.
Но каждый раз, когда я пытаюсь войти в систему с действительными учетными данными, он не может войти в систему, просто перенаправляет меня на страницу входа снова. Но когда я пытаюсь ввести неверные учетные данные, не происходит перенаправления http, а также я получаю отзыв о недопустимой попытке.
Выполнение некоторых поисков как здесь , заставляет меня думать if could be a rewrite configuration error
, так как пришлось преобразовать .htaccess
в web.config
файл. Хотя я сделал это, используя собственный IIS URL Rewrite для генерации моих правил, а также попробовал онлайн-инструменты, чтобы сделать это преобразование для меня, но ни один из них не сработал.
Я также пытался найти в портале Azure какую-то опцию - службы приложений, которая могла бы безуспешно устранять неполадки при входе в систему. Версия Php совместима с проектом (5.6), и приложение успешно соединяется с базой данных, так как это требуется для его настройки и созданы все необходимые таблицы.
Ниже, вся соответствующая информация, которая, как мне кажется, может быть использована для обнаружения проблемы, а также я могу предоставить больше при необходимости.
Сценарий попытки входа в систему с неверными учетными данными (работает должным образом):
Request URL: https://xxxxxxxxxxxxx/account/auth/login/
Request Method: POST
Status Code: 200 OK
[...] Error response inside
Сценарий попытки входа в систему с действительными учетными данными ( Не работает должным образом):
Request URL: https://xxxxxxxxxxxxx/account/auth/login/
Request Method: POST
Status Code: 302 Moved Temporarily
[Header] Location: https://xxxxxxxxxxxxx/account/profile/
Request URL: https://xxxxxxxxxxxxx/account/profile/
Request Method: POST
Status Code: 302 Moved Temporarily
[Header] Location: https://xxxxxxxxxxxxx/account/auth/login/
Request URL: https://xxxxxxxxxxxxx/account/auth/login/
Request Method: GET
Status Code: 200 OK
[Here I am back to login form even inputted valid credentials]
Весь мой web.config (правила, сгенерированные с использованием IIS URL Rewriter):
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{R:1}" pattern="^(index\.php|assets|content|robots\.txt|favicon\.ico)" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="./index.php?{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<httpProtocol>
<customHeaders>
<remove name="ETag"/>
<add name="Access-Control-Allow-Origin" value="*"/>
<add name="X-UA-Compatible" value="IE=Edge,chrome=1"/>
<remove name="X-Powered-By"/>
<add name="Cache-Control" value="max-age=691200" />
</customHeaders>
</httpProtocol>
<defaultDocument>
<files>
<clear />
<add value="index.php" />
</files>
</defaultDocument>
</system.webServer>
</configuration>
.htacess файл из GitHub (который я использовал для генерации своих правил web.config)
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|assets|content|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
** Обновление с дополнительной информацией: **
Я также пытался развернуть другую службу приложений в Azure, опять же на PHP, под названием MangaReader , а также с открытым исходным кодом, и она прекрасно работает в WAMPP / XAMPP. У меня также возникают похожие проблемы с попытками входа в систему - не перенаправление, а успешный код состояния без авторизации.
Как и прежде, я сгенерировал файл web.config с помощью IIS URL Rewriter на основе файла .htaccess; а также смог настроить всю базу данных и запустить настройку сайта. После этого мое маленькое сомнение в том, что я могу быть ошибкой проекта, прошло.
Это выглядит так:
- Ошибка при преобразовании файла .htaccess в web.config;
- Некоторые недостающие настройки в службе приложений портала Azure;
- Некоторая недостающая конфигурация в IIS;
- Любая неизвестная ошибка.
** Редактировать 2, Дополнительная информация **
Сама проблема не в том, чтобы управлять сессиями на основе файлов .php, поскольку FoOlSlide2 и MangaReader (оба упомянутые ранее) делают это в таблице mysql. Кроме того, FoOlSlide2 имеет функцию балансировки нагрузки для обработки большого количества запросов (масштабирование по горизонтали)