Содержание
Yii – это высокопроизводительный компонентный PHP фреймворк, предназначенный для быстрой разработки современных веб-приложений. Слово Yii (произносится как
https://www.yiiframework.com/doc/guide/2.0/ru/intro-yiiЙи
[ji:]
) в китайском языке означает «простой и эволюционирующий». Также Yii может расшифровываться как акроним Yes It Is!
Yii – это универсальный фреймворк и может быть задействован во всех типах веб-приложений. Благодаря его компонентной структуре и отличной поддержке кэширования, фреймворк особенно подходит для разработки таких крупных проектов, как порталы, форумы, CMS, магазины или RESTful-приложения.
Сам процесс установки Ubuntu 18.04 Server, ввиду своей тривиальности, тут рассматриваться не будет. Скачать дистрибутив можно с официального сайта: https://ubuntu.com/download/server. Установка на десктопные версии не должна отличаться от серверной, но на практике не проверялась.
После установки, как всегда желательно сначала обновить все пакеты до последних версий.
Теперь, собственно, сам процесс установки необходимых пакетов.
Установка LAMP (Linux, Apache, MySQL, PHP):
Первый вариант — установка при помощи tasksel ( Tasksel — это инструмент Debian / Ubuntu, который позволяет устанавливать сразу несколько пакетов, объединённых в одну задачу, при помощи одной команды):
Сначала убедимся, что tasksel установлен сам по себе и, при необходимости, установим его:
$ sudo apt-get install tasksel
После этого можно выполнить установку всего стека LAMP с помощью одной команды:
$ sudo tasksel install lamp-server
Результатом выполнения будет установка вебсервера apache, базы данных MySQL и языка программирования PHP.
Второй вариант — «вручную», прописав все необходимые пакеты:
$ sudo apt-get install apache2 mysql-server php libapache2-mod-php php-mysql
Если всё прошло без ошибок, значит веб-сервер установлен. Можно это проверить, открыв в браузере URL с адресом сервера, на который происходит установка. Результатом должна служить приветственная страница веб-сервера apache
Теперь надо подключить модуль Rewrite веб-сервера apache
Модуль mod_rewrite использует механизм перезаписи на основе правил, основанный на синтаксическом анализаторе регулярных выражений PCRE, для перезаписи запрошенных URL-адресов на лету. По умолчанию mod_rewrite отображает URL-адрес в путь файловой системы. Однако его также можно использовать для перенаправления одного URL-адреса на другой URL-адрес или для вызова внутренней прокси-выборки.
https://httpd.apache.org/docs/current/mod/mod_rewrite.html
$ sudo a2enmod rewrite
Установка фреймворка Yii2
Теперь перейдём к установке самого фреймворка. Для этого понадобится composer
Composer — это пакетный менеджер уровня приложений для языка программирования PHP, который предоставляет средства по управлению зависимостями в PHP-приложении
https://ru.wikipedia.org/wiki/Composer
Устанавливаем сам composer и сразу же некоторые необходимые для установки библиотеки:
$ sudo apt-get install composer php-mbstring php-curl php7.2-xml php-gd php-imagick
Переходим в корневой каталог документов веб-сервера apache (по умолчанию /var/www/html) и запускаем установку фреймворка Yii2 и его первого демо-приложения, в данном примере «basic»:
$ cd /var/www/html $ composer create-project --prefer-dist yiisoft/yii2-app-basic basic
Проверка установки:
$ cd ./basic $ php yii serve 0:8080
Данная команда в интерактивном режиме запустит встроенный PHP-вебсервер на порту 8080 и демо-шаблон фреймворка. По умолчанию, без указания параметра хост:порт, сервер запускается на 127.0.0.1:8080
Настройка apache на работу с проектом «по умолчанию»
Для настройки веб-сервера apache на работу с созданным ранее проектом «по умолчанию», создаём файл конфигурации /etc/apache2/sites-available/sitename.conf :
<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/basic/web <Directory "/var/www/html/basic/web"> # use mod_rewrite for pretty URL support RewriteEngine on # if $showScriptName is false in UrlManager, do not allow accessing URLs with script name RewriteRule ^index.php/ - [L,R=404] # If a directory or a file exists, use the request directly RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # Otherwise forward the request to index.php RewriteRule . index.php # ...other settings... </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Где sitename — название нашего сайта, /var/www/html/basic/web — путь к проекту фреймворка.
Осталось только заменить сайт apache «по умолчанию» на наш, проверить правильность конфигурации и перезагрузить apache:
$ sudo a2dissite 000-default $ sudo a2ensite sitename $ sudo apachectl configtest $ sudo systemctl reload apache2
На этом всё. Сервер с установленным фреймворком Yii2 готов.
Все настройки тут указаны для варианта «по умолчанию», для простого первого запуска и тестирования PHP фреймворка Yii2, без рассмотрения вопросов безопасности, тонкой настройки веб-сервера apache, баз данных и т.д. и не предназначены для «боевого» сервера.
Полезные ссылки:
https://www.yiiframework.com/doc/guide/2.0/en/start-installation
https://help.ubuntu.ru/wiki/web-server
https://help.ubuntu.ru/wiki/lamp
https://httpd.apache.org