В моей последней статье о Windows Azure с PHP мы подробно рассмотрели процесс развертывания приложения PHP + MySQL в Windows Azure; но каждый PHP-разработчик знает, что нет смысла не использовать фреймворк. Изобретать колесо никогда не будет хорошим вариантом, даже если у вас есть так много отличных колес на выбор.
В этой статье мы установим Phalcon, мой личный фреймворк. Вы можете подумать: «Но разве фреймворк — это не просто набор классов? Разве их недостаточно просто загрузить?». Это не так с Phalcon. Phalcon — это расширение PHP, написанное на C, которое необходимо установить в PHP так же, как и любое другое расширение (mcrypt, xdebug и т. Д.) — это делает его недоступным в различных средах общего хостинга, но это усложнение также гарантирует, что люди, использующие его, в основном преданные профессионалы.
Чтобы познакомиться с Phalcon, не стесняйтесь взглянуть на некоторые из наших предыдущих статей на эту тему:
— Phalcon intro
— Google App Engine и заявление о Phalcon
— Zephir — создавать расширения PHP, не зная C
Подготовка
Используйте руководство из предыдущей статьи, чтобы настроить новое пустое веб-приложение на PHP. В качестве альтернативы, используйте приложение из последней статьи, если вы не слишком привязаны к нему.
Поскольку Windows Azure является средой Windows, расширения PHP для нее представляют собой файлы .dll. Скачать Phalcon.dll . Убедитесь, что вы взяли 32-битную версию (x86), потому что бесплатные пробные учетные записи Azure не поддерживают 64-битные среды. Кроме того, возьмите файл с последней версией PHP в названии и NTS (без поточной защиты).
Независимо от системы, в которой вы сейчас находитесь, также убедитесь, что Phalcon установлен в вашей локальной среде. В конце концов, нам нужно место для тестирования нашего приложения перед его развертыванием.
Клонируйте пример приложения , поместите его в свой веб-корень и посмотрите, работает ли оно. Если все идет хорошо, вы должны увидеть следующий экран в вашем браузере:
Если вы заблудились, настраивая его, у документации Phalcon есть довольно хорошие учебники по настройке приложения на каждом популярном веб-сервере: http://docs.phalconphp.com/en/latest/reference/install.html#installation-notes
Неважно, какую ОС или сервер вы используете в настоящее время — я почти уверен, что вы не используете IIS — поэтому все, что важно, — заставить приложение работать. Если вы попадаете на экран, показанный выше, и ссылка «Зарегистрироваться здесь» работает и перенаправляет вас на нужный URL-адрес без каких-либо артефактов «index.php» в адресной строке браузера, мы можем перейти. Если приложение работает не так, как должно, попробуйте выполнить следующие действия вместе с его учебным пособием: http://docs.phalconphp.com/en/latest/reference/tutorial.html#creating-a-project
Установка расширения Phalcon
IIS — это сервер, который Azure использует для развертывания веб-приложений PHP. Поскольку документы Phalcon не охватывают настройку фреймворка на этом сервере, нам нужно немного импровизировать. На данный момент, если вы настроили учетную запись FTP и ваше приложение Azure запущено, мы готовы к работе.
Сначала подключитесь к FTP-серверу приложения и измените содержимое index.php
на
<?php phpinfo();
Если вы сейчас посетите URL своего приложения в браузере, вы должны увидеть знакомый вывод информации PHP, список установленных расширений, сведения об окружении и так далее.
Теперь давайте установим Phalcon. Сначала создайте каталог bin
в корне вашего приложения. В Azure это две папки выше той, которая содержит index.php
— ту, которая содержит папки LogFiles
и site
. Загрузите ранее загруженный файл Phalcon.dll в эту папку bin
, чтобы ваша структура каталогов теперь выглядела следующим образом:
Далее нам нужно указать Azure, где искать расширение (и вообще его искать). Перейдите в раздел «Настройка» своего приложения Azure и прокрутите вниз до раздела «Настройки приложения». Под KEY поместите «PHP_EXTENSIONS» и под VALUE, поместите ..\..\bin\php_phalcon.dll
Запомните обратную косую черту в пути! Помните, мы используем Windows!
Завершите работу, нажав «Сохранить» в нижней части экрана, и перезагрузите URL своего приложения. Если вы ищете строку «Phalcon» на отображаемой странице, вы должны получить вывод, похожий на следующий:
Фалькон был установлен. Но мы далеки от завершения.
Загрузка и тестирование
Теперь давайте загрузим наш код в Azure. Мы не хотим, чтобы весь код нашего приложения находился в папке wwwroot
, потому что эта папка общедоступна в Интернете — каждый может получить к ней доступ, поэтому необходимо учитывать некоторые аспекты безопасности. Вместо этого загрузите содержимое wwwroot
папки примера приложения в wwwroot
и загрузите папку app
примера приложения в папку site
уровень выше.
Обновление URL приложения теперь должно дать вам следующее:
Если эта страница загружена, это означает, что Phalcon был установлен. Однако, если вы попытаетесь получить доступ к ссылке «Зарегистрироваться здесь», вы получите «Ресурс, который вы ищете, был удален, изменилось его имя или временно недоступен». сообщение об ошибке. Это происходит потому, что мы не определили перезапись URL. Поскольку сейчас мы работаем с IIS, файлы Apache .htaccess
не будут работать. Нам нужен файл Web.config — эквивалент IIS.
В корне wwwroot
папки вашего приложения ( public
wwwroot
, wwwroot
в Azure) создайте файл Web.config
и предоставьте ему следующее содержимое:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Main Rule" stopProcessing="true"> <match url="(.*)" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php?_url=/{R:1}" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
Вышеприведенное можно (и нужно) настраивать для каждого приложения, но по сути это все, что нужно для того, чтобы файл Web.config
вел себя так же, как файл .htaccess
и перенаправлял все запросы в index.php
с помощью _url
ПОЛУЧИТЕ параметр согласно инструкциям Phalcon.
Попробуйте перейти по ссылке «Зарегистрироваться здесь» прямо сейчас. Страница должна открыться успешно, отображая форму регистрации.
Вывод
Azure — это невероятно универсальная среда, позволяющая развертывать пользовательские среды выполнения PHP, расширения и настройки всех типов. Вооружившись знаниями об установке самой быстрой среды PHP (которая должна значительно сократить эксплуатационные расходы вашего приложения Azure!), Почему бы не пойти дальше и принять участие в конкурсе Push The Web Forward с потрясающим приложением Phalcon? Время еще есть!
Оставьте свой отзыв в комментариях ниже и, как всегда, поделитесь этой статьей, если она вам понравилась!