Общие папки с PHP на Azure - PullRequest
0 голосов
/ 12 мая 2011

При разработке PHP-приложений обычно имеется общая папка в структуре приложения, на которую ориентирован веб-сервер.Код частного приложения хранится вне этого каталога, поэтому он не является общедоступным.

У меня есть приложение PHP, которое я пытаюсь запустить на Azure, и я хочу настроить каталог в моей WebRole как открытыйdirectory ', но в Eclipse (я использую плагин PHP Azure) я не вижу никаких опций для его настройки.Есть ли способ настроить фактический «корневой» каталог роли?Или эта роль по своей природе публична, и поэтому я должен хранить свой частный код где-то еще и делиться им с WebRole?

1 Ответ

2 голосов
/ 13 мая 2011

По умолчанию корневой каталог веб-сайта всегда открыт для конфигурации IIS в Windows Azure. Однако, поскольку поддерживается перезапись URL-адресов, это довольно легко преодолеть.

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

Вот часть XML, которую вы можете скопировать / вставить в ваш файл Web.config. Публичный корень в приведенном ниже коде «public», если это «shizzle», обязательно измените это: -)

<!-- Rewrite rules to /public -->
<rewrite>
  <rules>
    <clear />
    <rule name="TransferToPublic" patternSyntax="Wildcard" stopProcessing="true">
      <match url="*" />
      <action type="Rewrite" url="public/{R:0}" />
    </rule>
  </rules>
</rewrite>

Для справки: он должен находиться под узлом XML.

Другим вариантом является «создание собственной роли», как я частично сделал в этом посте Легкое развертывание приложения PHP в Windows Azure . Изменяя некоторые файлы, вы можете обмануть IIS в другом публичном корне. Если вы используете мой пост в блоге для части упаковки для Azure и используете Google / Bing / MSDN для части конфигурации IIS, это также должно работать.

Наслаждайтесь!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...