Настроить yii2 на linux

Различные вопросы по установке и настройке фреймворка, конфигурции веб-сервера и IDE.
Закрыто
hollanditkzn
Сообщения: 95
Зарегистрирован: 2017.03.28, 17:37

Настроить yii2 на linux

Сообщение hollanditkzn »

У меня не получается чтобы, сайт выводил из фреймворка yii2. Я примерно реализовывал виртуальный хост для yii2 следующие действие Сам проект yii2 у меня находится в директории var/www/html/trainingYii. Только там символическая ссылка стоит. Потом я создал файл в директории /etc/apache2/sites-available/yii2-app.conf И в нем прописал

Код: Выделить всё

<VirtualHost *:80>
        ServerName yii2-app
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html/trainingYii

         <Directory /var/www/html/trainingYii>
        Options Indexes FollowSymlinks
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>

        ErrorLog /var/www/yii2-app/logs/error.log
        CustomLog /var/www/yii2-app/logs/access.log combined
</VirtualHost>
И делаю символическую ссылку sudo ln -s /etc/apache2/sites-available/yii2-app.conf /etc/apache2/sites-enabled/yii2-app.conf Получаю ссылку и потом я в /etc/hosts вписал 127.0.0.1 yii2-app И потом я перезарузил apache2 и получил вот такой ответ

Код: Выделить всё

ruslan@debian:/etc/apache2/sites-available$ sudo service apache2 restart
Job for apache2.service failed because the control process exited with error code.
See "systemctl status apache2.service" and "journalctl -xe" for details.
Посмотрел в логах в чем причина

Код: Выделить всё

[Sat Feb 10 12:52:58.622686 2018] [mpm_prefork:notice] [pid 7009] AH00169: caught SIGTERM, shutting down
Как мне сделать виртуальный хост для yii2?
Аватара пользователя
proctoleha
Сообщения: 298
Зарегистрирован: 2016.07.10, 19:00

Re: Настроить yii2 на linux

Сообщение proctoleha »

Как у меня (и на локалке и на продакшене). Если будете повторять мои шаги, главное не торопитесь, вы должны понимать что вы делаете, и всё будет отлично. Линукс сделан разработчиками для людей, тут главное понимать и делать всё аккуратно.

1. Вы установили или серверную, или десктопную версию Ubuntu 16.04, или её производные. Сам сейчас на Mint 18.3. Без разницы.
После установки в терминале

Код: Выделить всё

sudo apt update && sudo apt upgrade -y;
Всё отлично - обновились.

2. Устанавливаем lamp server

Код: Выделить всё

sudo apt install lamp-server^
В процессе установки попросят задать пароль для суперпользователя MySql root - задаем.

3. Настойчиво советую добавить расширение для apache - mpm-itk, подробности в гугле (запуск Apache от имени пользователя):

Код: Выделить всё

sudo apt install libapache2-mpm-itk
sudo service apache2 restart

Также не забываем выполнить

Код: Выделить всё

a2enmod rewrite
sudo service apache2 restart

4. Проверяем: в браузере вбиваем localhost, должны увидеть стандартный ответ apache c общей информацией

5. Сидим чешем репу и думаем какие библиотеки php нам нужны для работы. Например, для интернационализации приложения на yii2 требуется библиотека intl, и еще неплохо было бы установить imagick
В терминале запускаем

Код: Выделить всё

sudo apt install php-intl php-imagick
Т.е. синтаксис команды элементарный: php-имя-библиотеки-в-нижнем-регистре

Если каких-то библиотек не хватает, фигня вопрос - всё равно к этому вернемся при развертывании приложения на yii2.

6. OK. Апач накатили, MySql тоже, php худо-бедно тоже работает. Апач, по умолчанию работает с папкой /var/www, и перенаправить его на чтение другой папки - задача не для слабонервных. Но владелец папки /var/www - суперпользователь root, а работать под рутом не комильфо. Это очень плохо. Без комментариев.

Как я делаю (методика спорная, но мне так удобнее). Предположим вы работаете под пользователем с именем user. В терминале последовательно выполняем команды

Код: Выделить всё

sudo mkdir /var/www/user
sudo chown -R user:user /var/www/user
В результате у вас будет создана папка /var/www/user и вы будете её владельцем. При этом апач будет также работать с этой папкой.

========================
Подготовительные работы завершены.

Можно накатывать виртуальные хосты. Без разницы на yii2, или нет. Не прописывать линки, а создавать полноценные проекты в нужных папках, например:

Код: Выделить всё

mkdir /var/www/user/test.loc
cd /var/www/user/test.loc
composer create-project --prefer-dist --stability=stable yiisoft/yii2-app-basic .
В папке с установленным приложением запускаем:

Код: Выделить всё

php requirements.php
Смотрим каких библиотек не хватает, устанавливаем (п. 5)

Потом прописываем виртуальный хост test.loc в апач, и в файле .hosts (если работаем локально). Но это чуть др. тема, если будет нужно - продолжу (автоматизация создания виртуального хоста, баш скрипт)
=======================
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
skynin
Сообщения: 400
Зарегистрирован: 2017.12.12, 10:09

Re: Настроить yii2 на linux

Сообщение skynin »

hollanditkzn писал(а): 2018.02.10, 14:01 Как мне сделать виртуальный хост для yii2?
1.
See "systemctl status apache2.service" and "journalctl -xe" for details.
говорит о том что неправильные настройки самого апача. еще до всякого Yii2.

2.
думаю путь /var/www/html/trainingYii не очень правильный.
у Yii2 директория для вебсервера наверное /var/www/html/trainingYii/web

хотя можно и в /var/www/html/trainingYii, но тода придется реврайты править для этой директории.

3.
Если не поднимали ничего ранее на Linux, рекомендую перед тем как ставить Yii2, просто сделать каталог с index.php, в котором будет echo 'Hi!';
и настройте вначале виртуал хост на этот каталог.

4. Для работы Yii2 нужны определенные "моды" для апача, и расширения для php
Какие, выше подсказали.
Как их доставлять - гуглите.

потому что долго объяснять "магию":
sudo apt-get install -y php7.1 php7.1-opcache php7.1-cli php7.1-curl php7.1-gd php7.1-xml php7.1-mcrypt php7.1-mbstring php7.1-iconv php7.1-dom php7.1-zip php7.1-mysql

и почему у вас она не сработает (надо доставить sudo add-apt-repository -y ppa:ondrej/php ? а может перед этим sudo apt-get install software-properties-common ?) кто его знает, что у вас уже установлено :)

в действительности ничего сложного нет, глубоко вникать не придется.
но прочесть инструкции и пробовать придется самому.

хорошие инструкции на https://www.digitalocean.com/community/tutorials
именно пошагово, без глубокого погружения и не требующие серьезных знаний Linux.
Не желайте странного, и не будет у вас головной боли чтобы достичь этого странного.
Тем более что окажется что оно вам и не нужно было, странное это.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Настроить yii2 на linux

Сообщение Nex-Otaku »

Линукс линуксу, к сожалению, рознь. Инструкция должна быть под конкретную ОС, желательно ещё и подходящей версии.

Под Убунту я себе сам составил инструкцию, в принципе для всех проектов пока что хватает. Дебиан не тыкал уже много лет.
Закрыто