Создание среды разработки на языке PHP в облачной среде

Узнайте, как использовать IBM Cloud для создания и тестирования PHP-приложений

В данной статье описываются привлекательные стороны облачных вычислений для PHP-разработчиков и приводятся пошаговые инструкции быстрой организации среды разработки для PHP и DB2 в IBM Cloud. Узнайте, как развернуть сервер данных Linux и сервер Web-приложений, подключиться к виртуальным машинам по протоколу SSH, использовать перенаправление X-интерфейса для установки предварительно настроенного PHP-дистрибутива и протестировать подключение к DB2.

Дэниел Крук, инженер-программист, IBM

Дэниел Крук (Daniel Krook) – сертифицированный специалист (IBM/Open Group Master Certified IT Specialist), проживающий в Нью-Йорке. Имеет более чем 10-летний опыт разработки Web-приложений, а в настоящее время занимается созданием облачной инфраструктуры для IBM с использованием Java EE, DB2, REST и мобильных технологий. Имеет сертификаты по PHP, Java EE, BlackBerry, DB2 и Solaris. Пишет статьи по PHP для IBM developerWorks и является соавтором документа IBM Redbook "Разработка PHP-приложений для IBM Data Servers".



20.04.2012

Введение

IBM Development and Test Cloud – это открытый IaaS-сервис, предназначенный для создания и тестирования приложений. Эта облачная платформа предоставляет доступ к различным образам серверов Linux и Windows с предустановленным программным обеспечением IBM. Для развертывания, настройки и обслуживания этих виртуальных машин можно использовать Web-приложения, мобильные приложения, приложения командной строки или специализированные приложения. При установке, выполнении и тестировании приложений к ним можно обращаться по протоколам SSH, HTTP или FreeNX.

Наибольшие риски при планировании даты завершения и общего качества проекта связаны со временем и стоимостью настройки традиционной инфраструктуры разработки и тестирования, состоящей из физических серверов. Платформа IBM Development and Test Cloud значительно снижает эти риски. Вместо приобретения компьютеров и установки операционных систем и программного обеспечения промежуточного уровня (процесс, подверженный ошибкам) можно использовать платформу IBM Cloud, позволяет снизить риски и затраты, предоставляя легко и быстро развертываемые предварительно настроенные виртуальные серверы.

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

  • Операционная система Linux с сервером базы данных DB2.
  • Операционная система Linux с клиентом DB2, установленным и работающим на сервере Zend Server, и предустановленный PHP-дистрибутив с графическим интерфейсом для Web-приложений.

Пример, рассматриваемый в данной статье, показывает, насколько ускоряется настройка всей топологии системы при использовании IBM Cloud по сравнению с приобретением, настройкой и установкой двух физических машин.


Преимущества для PHP-разработчиков, предоставляемые IBM Cloud

Платформа IBM Development and Test Cloud помогает ускорить выпуск приложений, уменьшить количество ошибок и расширить рынок сбыта по сравнению с альтернативными облачными и физическими средами разработки и тестирования.

Почему бы не использовать образы IBM на EC2?

На Amazon EC2 имеется несколько предустановленных образов программного обеспечения IBM промежуточного уровня. Их тоже можно использовать для разработки приложений, но платформа Development and Test Cloud имеет ряд преимуществ:

  • Первоклассная поддержка IBM и поставщиков операционных систем.
  • Детальное управление по сети, в том числе управление использованием ресурсов.
  • Простота создания специализированных образов системы.

Центром этой системы является каталог корпоративных образов систем Linux или Windows, заранее настроенных на использование программного обеспечения IBM. Экземпляр, созданный из образа, позволяет монтировать постоянный диск, назначать экземпляру IP-адреса и обращаться к нему, используя аутентификацию с открытыми ключами по протоколу SSH.

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

Все эти ресурсы можно быстро развернуть и организовать в топологию, соответствующую потребностям PHP-приложения.

Платформа IBM Development and Test Cloud позволяет решать разнообразные проблемы, с которыми сталкиваются все разработчики PHP-приложений, включая корпоративных и независимых программистов, студентов и писателей, системных администраторов и архитекторов.

Вот несколько конкретных сценариев, в которых применение этой облачной среды помогает достичь поставленных целей.

Проверка среды развертывания
Облачная среда помогает документировать действия по развертыванию на ранних этапах процесса. Ее можно также использовать для настройки тестовой конфигурации, чтобы выполнить проверку системы на соответствие взаимосогласованным требованиям на более ранних этапах цикла разработки, до выпуска окончательной версии продукта. Вы будете точно знать, что именно нужно развернуть в облаке, снизив таким образом риск возникновения ошибок и неправильного конфигурирования. Например, может возникнуть необходимость оценить, будет ли приложение лучше работать в одной версии PHP-дистрибутива, чем в другой, либо вы можете захотеть проверить процесс публикации (начиная с наладки и заканчивая внедрением) или конфигурацию репликации между двумя серверами баз данных MySQL.
Ускорение инноваций и поощрение экспериментирования
Облачная среда позволяет разработчикам менять платформы и сравнивать их между собой. Разработчики могут свободно проверять идеи вне основной ветки кода, не затрагивая стабильные конфигурации. Например, при оценке возможности перехода на другую версию PHP-среды, такой как новый проект Lithium, создание в облаке отдельного виртуального экземпляра PHP 5.3 с MongoDB может оказаться более быстрым и менее разрушительным решением по сравнению с настройкой аналогичной конфигурации на существующем физическом сервере.
Решение проблем производительности и захвата ресурсов
Допустим, вы столкнулись с проблемой производительности и хотите модифицировать свою систему и поскорее протестировать решение, но не хотите вносить значительные изменения в процесс разработки и наладки. Теперь для выполнения такого тестирования можно использовать IBM Cloud. Можно записать действия по установке и проверить планы возврата к предыдущей конфигурации. Например, можно оценить и протестировать несколько возможных конфигураций, используя облачную инфраструктуру, а не физические системы. Кроме того, имея каталог сохраненных собственных образов, можно быстро выполнить повторное тестирование или локализовать проблемы конкретных конфигураций.
Усовершенствование проектов с открытыми исходными кодами
Если вы поддерживаете PHP-инфраструктуру с открытыми исходными кодами, вам необходимо иметь стабильный продукт, работающий на как можно большем числе платформ. Допустим, вы получили отчет об ошибке от пользователя конкретной конфигурации. Используя IBM Cloud, вы легко можете воспроизвести среду пользователя для идентификации источника ошибок. Например, если пользователь сообщил о проблеме с версией SUSE Linux Enterprise Server, а у вас есть только Ubuntu или Fedora, вы можете быстро создать экземпляр SLES с вашей интегрированной средой для проверки сообщения об ошибке. Кроме того, после выполнения такого теста можно расширить список поддерживаемых платформ, создав несколько образов корпоративных Linux-конфигураций в личном каталоге.
Повышение квалификации и расширение знаний
Среда IBM Cloud будет полезна также составителям технической документации, студентам, преподавателям и отраслевым аналитикам благодаря возможности работы с новым программным обеспечением и проведения экспериментов с программами, нужными им только на ограниченный период времени. Если у подобного пользователя есть проект, который необходимо завершить в жесткие сроки, но нет желания приобретать или устанавливать полные системы с нуля, ответом может быть IBM Cloud.

Теперь, когда вы узнали, какие выгоды предоставляет платформа IBM Development and Test Cloud различным категориям пользователей PHP, давайте настроим среду разработки и тестирования PHP-приложений в IBM Cloud.


Развертывание сервера данных Linux

Каталог образов

Каталог доступных образов серверов постоянно меняется и содержит регулярные обновления программного обеспечения IBM наряду с соответственно обновляемыми образами ПО. Если вы не найдете образы с точно такими же названиями, которые используются в статье, используйте похожие версии.

Для сервера данных выберите в каталоге сервер Red Hat Enterprise Linux с предустановленной системой управления базами данных DB2. Экземпляр Web-сервера мы создадим позднее, когда будем устанавливать PHP и подключаться к серверу, поэтому никакой специальной настройки пока не требуется.

  1. Войдите в приложение Development and Test и выберите вкладку Control Panel (панель управления). Нажмите кнопку Add Instance.
    Рисунок 1. Кнопка Add Instance панели управления
    Рисунок 1. Кнопка Add Instance панели управления
  2. Выберите в каталоге DB2 Enterprise Developer Edition 9.7.1 64bit.
    Рисунок 2. Выбор образа DB2
    Рисунок 2. Выбор образа DB2
  3. Укажите название и сгенерируйте (при необходимости) пару из открытого и закрытого ключей. Я назвал этот экземпляр dW DB2 data server и выбрал сгенерированный мною открытый ключ dW. Для доступа к данному экземпляру вместо имени пользователя и пароля используйте соответствующий закрытый ключ на вашей рабочей станции.
    Рисунок 3. Настройка образа DB2
    Рисунок 3. Настройка образа DB2
  4. Установите пароли для трех учетных записей пользователей, как требует DB2.
    Рисунок 4. Настройка паролей DB2
    Рисунок 4. Настройка паролей DB2
  5. Подтвердите конфигурацию экземпляра.
    Рисунок 5. Проверка конфигурации экземпляра
    Рисунок 5. Проверка конфигурации экземпляра
  6. Прочтите лицензионное соглашение и нажмите кнопку Next.
    Рисунок 6. Лицензионное соглашение
    Рисунок 6. Лицензионное соглашение
  7. Убедитесь, что запрос на экземпляр отправлен.
    Рисунок 7. Запрос на экземпляр успешно отправлен
    Рисунок 7. Запрос на экземпляр успешно отправлен

Это все, что нужно сделать для запуска экземпляра, используемого как сервер базы данных. Можно вызвать панель управления, на которой должно быть видно, что экземпляра развернут и запущен. После загрузки системы сразу начинает работать DB2.


Развертывание Linux-сервера Web-приложений

Создайте еще один экземпляр из того же образа и установите Zend Server Community Edition. Это простейший способ обеспечить установку и доступность DB2-клиента, который необходим PHP-драйверу.

  1. Войдите в приложение Development and Test и выберите вкладку Control Panel (панель управления). Нажмите кнопку Add Instance.
  2. Выберите в каталоге тот же образ DB2 Enterprise Developer Edition 9.7.1 64bit.
  3. Укажите его название и сгенерируйте необходимые ключи. Я назвал этот экземпляр dW Zend Web server и выбрал открытый ключ dW.
  4. Укажите пароли DB2.
  5. Подтвердите конфигурацию.
  6. Прочтите лицензионное соглашение.
  7. Нажмите кнопку Next и дождитесь подтверждения.

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


Преобразование закрытого ключа и подключение к серверу по SSH

После создания экземпляра сервера Web-приложений можно войти в него и установить Zend Server Community Edition.

Совет: повторное использование конфигурации сеанса PuTTY

Сеанс PuTTY, который мы настроим ниже, можно будет повторно использовать в других экземплярах, для чего нужно загрузить его, изменить поле Host name на название нового хоста, переименовать его и нажать кнопку Save.

Дальнейшие действия предполагают использование Windows для SSH и перенаправления X. Если используется другая платформа, необходимо установить эквивалентные инструментальные средства.

  1. При создании рассмотренных выше экземпляров образов можно сгенерировать пару из открытого и закрытого ключей для подключения к серверам без указания имени пользователя и пароля. Необходимо преобразовать загруженный на рабочую станцию закрытый ключ из формата OpenSSH в формат PuTTY, используя генератор ключей PuTTY – PuTTYgen. Откройте PuTTYgen и выберите File > Load private key.
    Рисунок 8. Преобразование закрытого ключа
    Рисунок 8. Преобразование закрытого ключа
  2. Отобразится сообщение о том, что ключ имеет формат OpenSSH. Нажмите OK.
    Рисунок 9. Загруженный закрытый ключ OpenSSH
    Рисунок 9. Загруженный закрытый ключ OpenSSH
  3. Нажмите кнопку Save private key и выберите новое местоположение для преобразованного файла. Чтобы подтвердить сохранение преобразованного ключа без идентификационной фразы (passphrase), нажмите кнопку Yes.
    Рисунок 10. Сохранение преобразованного ключа
    Рисунок 10. Сохранение преобразованного ключа
  4. Установите и настройте XMing. Эта программа должна запускаться автоматически. Если это не так, нажмите на пиктограмму Xming.
  5. Настройте PuTTY на вход в экземпляр с использованием SSH. Добавьте имя хоста, которое отображалось в панели управления после развертывания экземпляра. Нажмите кнопку Save, а затем Load.
    Рисунок 11. Настройка PuTTY
    Рисунок 11. Настройка PuTTY
  6. В поле Auto-login username раздела Connection...Data установите для имени пользователя значение idcuser.
    Рисунок 12. Установка имени пользователя
    Рисунок 12. Установка имени пользователя
  7. Выполните импорт своего закрытого ключа на экране SSH...Auth и найдите файл закрытого ключа, преобразованного ранее.
    Рисунок 13. Импорт закрытого ключа
    Рисунок 13. Импорт закрытого ключа
  8. Наконец, настройте перенаправление X для просмотра интерфейса X Windows Linux-сервера из вашей настольной системы Windows. На экране SSH...X11 отметьте флажок X11 forwarding и введите localhost:0 в поле X display location.
    Рисунок 14. Настройка X forwarding
    Рисунок 14. Настройка X forwarding
  9. Теперь вернитесь на вкладку Session и нажмите кнопку Save, а затем кнопку Open. Нажмите кнопку Yes в окне PuTTY Security Alert и примите ключ хоста экземпляра, поскольку вы впервые подключаетесь к этому серверу.
  10. Отключите сетевой экран, чтобы разрешить перенаправление X-интерфейса. Затем проверьте работу X Windows, используя простой тест с xclock:
    Листинг 1. Отключение сетевого экрана и запуск xclock
    $ sudo /etc/init.d/iptables stop
    $ xclock
    Рисунок 15. Отключение iptables и тестирование X forwarding
    Рисунок 15. Отключение iptables и тестирование X forwarding

Установка предварительно настроенного дистрибутива PHP

  1. После регистрации и настройки графического интерфейса загрузите Zend Server Community Edition (Zend Server CE (PHP 5.3) 5.0.3 (64 bit) (TAR.GZ) 55.95 МБ). Дополнительная информация о Zend Server приведена на странице продукта Zend.
    Листинг 2. Загрузка и установка Zend Server
    $ mkdir src
    $ cd src
    $ wget http://www.zend.com/download/353?start=true
    $ tar - xvzf ZendServer-CE-php-5.3.3-5.0.3-linux-glibc23-x86_64.tar.gz
    $ cd ZendServer- 5.0.3_Tarball_B3-php5.3.3-linux-glibc23-x86_64/
    $ sudo su -
    # cd /home/idcuser/src/ZendServer-5.0.3_Tarball_B3-php5.3.3-linux-glibc23-x86_64/
    # ./install.sh

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

    Рисунок 16. Установка Zend Server
    Рисунок 16. Установка Zend Server
  2. Наберите команду exit для выхода из root shell и продолжите сеанс idcuser, а затем запустите Web-браузер Firefox. Вы не сможете запускать любые окна от имени root, поскольку перенаправление X настроено в PuTTY только для idcuser.
    Листинг 3. Запуск Firefox от имени idcuser
    # exit
    $ firefox https://localhost:10082/ZendServer

    Поскольку Zend Server работает по протоколу HTTPS с самоподписанным сертификатом, для просмотра страницы необходимо при запросе добавить исключение. После запуска Firefox отобразится страница End User License Agreement. Прочите ее и нажмите кнопку Next.

    Рисунок 17. Zend Server EULA
    Рисунок 17. Zend Server EULA
  3. На второй странице установите пароль консоли, повторите его и нажмите кнопку Next.
  4. На третьей странице при желании можете указать свой адрес электронной почты, если хотите подписаться на рассылку Zend Server Community Edition. Нажмите Finish.
  5. Отобразится инструментальная панель Zend Server Dashboard. В нее уже включены (и готовы к использованию) наиболее часто используемые расширения. Включено также расширение DB2 driver, но его необходимо активировать.
  6. Выберите вкладку Server Setup, затем ссылку Extensions и найдите ibm_db2. Нажмите кнопку Turn On.
    Рисунок 18. Расширение ibm_db2
    Рисунок 18. Расширение ibm_db2
  7. В новом сеансе PuTTY укажите среду DB2 для Web-сервера Apache и измените порт по умолчанию на 80, а затем перезапустите все демоны Zend Server.
    1. Отредактируйте файл конфигурации Apache и измените строку Listen 10088 на Listen 80.
      Листинг 4. Изменение порта в файле httpd.conf
      $ sudo su -
      # vi /usr/local/zend/apache2/conf/httpd.conf
    2. Среду DB2 необходимо использовать в качестве источника данных при каждом старте Apache. Чтобы PHP-драйвер нашел DB2, необходимо указать путь в Apache. После открытия файла добавьте строку ./home/db2inst1/sqllib/db2profile в любое место после первой строки.
      Листинг 5. Изменение apachectl для работы со средой DB2
      # vi /usr/local/zend/apache2/bin/apachectl
    3. Перезапустите все процессы Zend Server из командной строки. Нажатия кнопки Restart PHP в графическом интерфейсе недостаточно.
      Листинг 6. Перезапуск процессов Zend Server
      # /usr/local/zend/bin/zendctl.sh restart
  8. Откройте новую вкладку в существующем окне Firefox и введите в адресной строке http://localhost/. Должен отобразиться экран Zend Server Test Page.
    Рисунок 19. Zend Server Test Page
    Рисунок 19. Zend Server Test Page

Тестирование подключения

  1. В заключение мы создадим простой PHP-сценарий для тестирования корректности настройки подключения к DB2. Я создам приведенный ниже PHP-сценарий в каталоге /var/www/html. Он просто подключается к серверу данных для тестирования соединения.
    Листинг 7. Изменение apachectl для работы со средой DB2
    # vi /usr/local/zend/apache2/htdocs/db2info.php
    Листинг 8. PHP-сценарий для подключения к DB2
    <?php
    $username = 'db2inst1';
    $password = 'passw0rd';
    $database = 'sample';
    $hostname = 'vhost0323.developer.ihost.com';
    $port     = '50001';
    
    $conn_string =
       "DRIVER={IBM DB2 ODBC DRIVER};DATABASE=$database;" .
       "HOSTNAME=$hostname;PORT=$port;PROTOCOL=TCPIP" .
       "UID=$username;PWD=$password";
      
    $conn_resource = db2_connect($conn_string, '', '');
    
    if ($conn_resource) {
        echo 'Connection to database succeeded.';
        db2_close($conn_resource);
    } else {
        echo 'Connection to database failed.<br />';
        echo 'SQLSTATE: ' . db2_conn_error() . '<br />';
        echo 'Message: ' . db2_conn_errormsg(). '<br />';
    }
    ?>
  2. После сохранения этого файла вы должны увидеть следующий экран при загрузке страницы http://localhost/db2info.php в браузере:
    Рисунок 20. Успешное подключение из PHP к DB2
    Рисунок 20. Успешное подключение из PHP к DB2

Поздравляю - теперь у вас есть два виртуальных сервера, настроенных на поддержку Web-приложений, использующих PHP и DB2! Действия по созданию данной системы применимы для любых виртуальных серверов, которые вы решите создать в будущем.


Заключение

Из этой статьи вы узнали:

  • какие возможности предлагают облачная среда и SmartCloud Enterprise разработчикам PHP-приложений;
  • как быстро создать типовую среду разработки и тестирования PHP-приложений в IBM Cloud.

Настроив и запустив PHP в облаке, можно реализовать любой рассмотренный в статье сценарий:

  • проверить среду развертывания;
  • ускорить инновации и поощрить экспериментирование;
  • решить проблемы производительности и захвата ресурсов;
  • развить проект с открытыми исходными кодами;
  • повысить квалификацию и расширить знания.

Изучите приведенные ниже ресурсы с дополнительной информацией о разработке PHP-приложений в облаке и приступайте к работе с IBM SmartCloud Enterprise.

Ресурсы

Научиться

Получить продукты и технологии

  • Ознакомьтесь со списком образов продуктов, доступных на IBM SmartCloud Enterprise.
  • Загрузите программы PuTTY и PuTTYgen, использующиеся в данной статье для подключения к вашему экземпляру сервера по SSH посредством аутентификации с открытым ключом.
  • Загрузите Xming X Server for Windows, использующийся в данной статье для поддержки перенаправления X-интерфейса.
  • Загрузите новейшую интегрированную среду Lithium для PHP 5.3.

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Облачные вычисления, Linux, Information Management
ArticleID=811059
ArticleTitle=Создание среды разработки на языке PHP в облачной среде
publish-date=04202012