Виртуальные серверы, как правило, сдаются в аренду только с предустановленной операционной системой, выбранной арендатором при создании веб-сервера. Все остальное программное обеспечение устанавливается и настраивается самостоятельно в процессе эксплуатации веб-сервера. В данной статье будет показано, как установить и настроить веб-сервер на виртуальном сервере от Xelent.ru.
Рассматриваемый веб-сервер был заказан с операционной системой Ubuntu 16.04. Весь процесс настройки будет соответствовать этой операционной системе. Мы установим и настроим веб-сервер Apache, интерпретатор PHP, фреймворк Symfony, а также обеспечим поддержку сервера баз данных MySQL. Другими словами, будет создана и настроена типичная конфигурация PHP-разработчика, предназначенная для разработки и тестирования PHP-приложений.
Итак, подключитесь к своему веб-серверу и первым делом обновите репозитарии apt (здесь и далее, поскольку мы работаем от root, команда sudo не требуется):
apt-get update
Рис. 1. Успешное подключение по SSH к виртуальному серверу
Рис. 2. Обновление репозитариев
Далее установим PHP 7.0:
apt-get install php7.0-cli
Рис. 3. Установка и настройка PHP
После чего нужно ввести команду php -v, выводящую версию PHP и убедиться, что мы-таки установили седьмую версию.
Рис. 4. Версия PHP
Для упрощения навигации по файловой системе и редактирования файлов конфигурации установим файловый менеджер mc:
apt-get install mc
Далее нужно отредактировать и настроить файл /etc/php/7.0/cli/php.ini. Symfony требует, чтобы была включена опция date.timezone. Найдите ее в файле php.ini, раскомментируйте и поставьте актуальное значение, например, Europe/Moscow (см. рис. 5).
Рис. 5. Редактирование php.ini
После установки веб-сервера Apache нужно будет проделать то же самое, но с файлом /etc/php/7.0/apache2/php.ini, то есть с конфигурацией PHP при работе через сервер Apache.
Далее нужно настроить Apache:
apt-get install apache2 libapache2-mod-php
В принципе, в Symfony есть свой сервер и Apache для разворачивания приложения не нужен, но он вам понадобится на реально-работающем интернет-проекте, когда ваше приложение будет протестировано и готово к запуску (либо же для тестирования приложения в условиях, приближенных к production).
Самый простой способ установки и настройки Symfony - использование Symfony Installer. Сначала нужно получить сам инсталлятор. В Linux для этого нужно ввести команды:
curl -LsS https://symfony.com/installer -o /usr/local/bin/symfony
chmod a+x /usr/local/bin/symfony
Создадим новый проект:
cd /var/www
symfony new myproject
Рис. 6. Процесс создания проекта
Рис. 7. Проект создан
Здесь желательно команды выполнять не от root'а, а от обычного пользователя. После создания проекта нужно проверить, соответствует ли наша система требованиям Symfony.
Поэтому введите команды:
$ cd myproject
$ php bin/symfony_requirements
Рис. 8. Проверка системных требований
Как показано на рис. 8, на данный момент виртуальный сервер не соответствует требованиям Symfony. Нужно поставить расширения php-xml (DOM), php-intl (интернационализация), а также драйверы для PDO (драйверы БД).
Чтобы установить все необходимые для работы Symfony расширения, введите команду:
apt-get install php-xml php-intl php-mysql
Обратите внимание, что пакет php-mysql сейчас - это не старое расширение mysql, которое сейчас уже не поддерживается. Данный пакет содержит драйвер PDO MySQL, то есть обеспечивает поддержку MySQL в современных версиях PHP. Настройку самого сервера баз данных MySQL рассматривать не будем, поскольку он может быть удаленным. Если вам необходим локальный MySQL, тогда можно воспользоваться статьей из раздела «помощь» на сайте ubuntu и настроить его самостоятельно.
Снова запустите проверку системы. На этот раз увидите заветное OK, хотя Symfony все еще немного ругается на пакет php-intl - ему не нравится его версия.
Рис. 9. Все в порядке
Итак, у нас инсталлирован Symfony и создан новый проект. Для запуска приложения введите команду (нужно находиться в каталоге проекта):
php bin/console server:run
Вывод команды будет примерно такой:
Server running on http://localhost:8000
Quit the server with CONTROL-C.
Рис. 10. Сервер запущен и работает
Что ж, осталось открыть браузер и ввести адрес http://localhost:8000 - вместо полноценного браузера у меня будет lynx, который также нужно ставить отдельно. Если вы все сделали правильно, то увидите страницу приветствия (рис. 11).
Рис. 11. Приложение развернуто!
При наличии доменного имени можно "прикрутить" наше приложение к конфигурации Apache. Для этого нужно в каталог /etc/apache2/sites-available/ добавить файл конфигурации виртуального хоста для нашего Symfony-приложения. Его настройка и конфигурация будет выглядеть примерно так:
<VirtualHost *:80>
ServerName test.example.com
DocumentRoot /var/www/myproject/web
<Directory /var/www/myproject/web>
AllowOverride All
Order Allow,Deny
Allow from All
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>
</Directory>
ErrorLog /var/log/apache2/myproject_error.log
CustomLog /var/log/apache2/myproject_access.log combined
</VirtualHost>
После этого не забудьте включить веб-сайт и перезапустить Apache (перечитать файл конфигурации):
$ sudo a2ensite test.example.com
$ sudo service apache2 reload
Собственно, на этом все. Как видите, на разворачивание серьезного фреймворка на платформе xelent.cloud было потрачено совсем немного времени.