Как залить на хостинг сайт на yii2? — Хабр Q&A

Как залить на хостинг сайт на yii2? — Хабр Q&A Хостинг

40 хостингов для yii/yii2 — 2022

Всем привет. Решил и я оставить свой правдивый отзыв.

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

Минусы:
Особых не заметил, мелкие незначительные проблемы решаются в течении короткого времени.

Дабы не быть голословным приведу пару скринов.
https://cloud.mail.ru/public/7GHm/r66z7p… — сайты на первом аккаунте
https://cloud.mail.ru/public/6W1i/kPDFVs… — у меня три аккаунта.
Поэтому я думаю что могу компетентно судить о данном хостинге.

А теперь по порядку.
1. в свое время я перепробывал множество хостингов и серверов. У меня стояли сайты и на своих вдс, и на хостингах. Но я крайне не люблю запутанные хостинги, не люблю шариться искать где какая функция включается. После того как я перешел на хостинг бегета данные проблемы отпали.
Удобная панель, все четко и пополочкам.
Своя файловая панель. Мне нравится двухколоночное окно. Крайне удобно при моей работе, когда нужно скопировать какой то сайт на другой домен. Занимает десяток секунд, не более.
2. Цена. 334 рубля (на моем тарифе (13 сайтов)) вполне приемлимая и подьемная.
3. Автоустановка цмс (наверное это есть у всех) но функция приятная и удобная.
4. Бесплатный тариф (но о нем я напишу ниже.)
5. Адекватная тех поддержка. Я бы даже сказал радушная техподдерка.
И это проверенно на моем личном опыте. https://s.mail.ru/6wWg/wXreBHsxj — это мои последние запросы. (да я любопытный и люблю поспрашивать). На все запросы я получал быстрые четкие и внятные ответы, мне всегда помогают, а иногда и делали за меня работу https://s.mail.ru/Hooz/MFiadQQ5g — а я всего лишь задал вопрос. За что огромное спасибо Игорю.
6. SSH консоль. Наверное это на любителя. Но для меня нужная вещь.
Я тут видел что люди некоторые говорят что нельзя устанавливать фреймворки на данный хостинг. Странно. У меня три сайта работает на yii2 advanced, которые я установил через композер прямо с панели. https://s.mail.ru/CfYe/D7F6xZkvm — и ведь очень удобно.
7. композер, гит, фреймворки — все прекрасно работает, я пользуюсь этим не первый день. Наверное как и многие. Это отчетливо выделяет данный хостинг от других.
8. Мне нравится перенос доменов из панели в другую панель. Как пример я делаю сайт в своей панели, и дабы не мучаться его копировать, всего лишь одной кнопкой https://s.mail.ru/N9Nv/cTDGGkfwz можно передать домен вместе с файлами в другую панель (к примеру клиенту.) Ну разве это не удобно?
Это не все плюсы, я боюсь что места не хватит все описывать. Но на мой взгляд хостинг достоин того что бы на него обратили внимание. Он надежен, оптимален, удобен, функционален, ну а дальше главное прямые руки. Удачи Вам всем!

P.S. Забыл о бесплатном тарифе) Можно зарегистрировать бесплатный тариф. Но для одного сайта. Я на нем держал свой первый сайт)) давно это было. Так что у кого не ресурсоемкий сайт, или кто только начинает как я, то я вам советую попробывать!

Sprinthost — yii2

Yii2фреймворк для разработки веб-приложений на PHP. Он имеет базовую и расширенную версии. В расширенной содержится два приложения: для самого сайта (frontend) и для административной части (backend), в базовой — приложение одно (frontend).

Выберите версию, которая подходит для решения ваших задач, а мы расскажем, как ее установить.

Базовую версию фреймворка установить несложно. Рекомендуем работать, подключившись по SSH.

Перейдите в каталог ~/domains/domain.ru и удалите папку public_html: [username@server ~]$ cd domains/domain.ru/
[username@server domain.ru]$ rm -r public_html 
Эту операцию можно выполнить и с помощью Файлового менеджера в Панели управления.

Скачайте последнюю версию фреймворка с официального сайта с помощью утилиты wget:

[username@server domain.ru]$ wget ссылка_на_архив

Распакуйте архив: [username@server domain.ru]$ tar xfz yii-basic-app-X.X.XX.tgz  где X.X.XX — версия вашего дистрибутива.

Переместите файлы из каталога ~/domains/domain.ru/basic в ~/domains/domain.ru:

[username@server domain.ru]$ mv basic/* .

И удалите каталог basic, а также сам архив:

[username@server domain.ru]$ rm -r basic
[username@server domain.ru]$ rm yii-basic-app-X.X.XX.tgz

Создайте базу данных в разделе «Базы данных» Панели управления и укажите данные для подключения к ней в файле ~/domains/domain.ru/config/db.php: [username@server domain.ru]$ vim config/db.php
'dsn' => 'mysql:host=localhost;dbname=username_db',
'username' => 'username_dbname',
'password' => 'password', 
Здесь username_db — название базы данных, username_dbname — имя пользователя базы данных, password — пароль. Для сохранения изменений и выхода из vim нажмите Esc и выполните команду :wq

Yii2 basic проверяет cookie, чтобы их было невозможно подделать. Укажите произвольный набор символов в качестве значения параметра cookieValidationKey в файле ~/domains/domain.ru/config/web.php:13 Если его не задать, при запуске проекта возникнет ошибка:

[username@server domain.ru]$ vim config/web.php 'cookieValidationKey' => 'proisvolnaya_frasa', 

По умолчанию корневым каталогом сайта является папка ~/domains/domain.ru/public_html. Для работы фреймворка необходимо, чтобы сайт открывался из директории ~/domains/domain.ru/web. Это можно реализовать с помощью символической ссылки. Создайте ее командой:

[username@domain.ru ~]$ ln -s /home/username/domains/domain.ru/web /home/username/domains/domain.ru/public_html 

Фреймворк установлен! При обращению к домену отобразится заглушка:

Процесс установки расширенной версии отличается от базовой. Рассмотрим его далее.

Yii2 advanced мы рекомендуем устанавливать с помощью Composer.

Composer — менеджер пакетов. С его помощью можно сразу установить и сам фреймворк, и необходимые для его работы библиотеки.

Подключитесь к серверу по SSH. Перейдите в каталог ~/domains: [username@server ~]$ cd domains/

И выполните команды: [username@server domains]$ curl -sS https://getcomposer.org/installer | php
[username@server domains]$ php composer.phar global require "fxp/composer-asset-plugin:^X.X.X"
где X.X.X — актуальная версия пакета composer asset plugin, узнать которую можно в репозитории Packagist.

Composer установлен. Скачайте дистрибутив Yii2 advanced: [username@server domains]$ php composer.phar create-project --prefer-dist yiisoft/yii2-app-advanced domain.ru/ Замените domain.ru на имя вашего сайта.

Перейдите в каталог с именем домена:

[username@server domains]$ cd domain.ru/

Чтобы подготовить фреймворк к запуску, выполните команду:

[username@server domain.ru]$ php init --env=Development --overwrite=All

Создайте базу данных в разделе «Базы данных» Панели управления. В файле ~/domains/domain.ru/common/config/main-local.php укажите данные для подключения к БД: [username@server domain.ru]$ vim common/config/main-local.php
'dsn' => 'mysql:host=localhost;dbname=username_db',
'username' => 'username_dbname',
'password' => 'password',
Здесь username_db — название базы данных, username_dbname — имя пользователя базы данных, password — пароль.

Чтобы в базе данных были созданы необходимые для работы фреймворка таблицы, выполните миграцию:

[username@server domain.ru]$ php yii migrate

По умолчанию корневым каталогом сайта является папка public_html. Перенесите в нее файлы из каталога ~/domains/domain.ru/frontend/web:

[username@server domain.ru]$ mv frontend/web/{.,*}* public_html/

Перейдите в каталог public_html:

[username@server domain.ru]$ cd public_html/

Чтобы приложение для разработки административной части открывалось по ссылке http://domain.ru/admin, создайте символическую ссылку:

[username@server public_html]$ ln -s ../backend/web/ admin

Замените содержимое файла index.php.

Если все настроено верно, при обращении к сайту вы увидите страницу:

А по ссылке http://domain.ru/admin — интерфейс для входа в административную панель:

Если в процессе установки Yii2 у вас возникли сложности, обратитесь в нашу службу поддержки.

Запускаем своё первое приложение с yii на обычном хостинге

Сегодня поговорим о том, как начать разработку на фреймворке YII максимально просто и безболезнено. Мы сможем запустить наше первое приложение на обычном шаред хостинге например Beget

Итак для начала скачиваем YII Framework 2 и распаковываем его в корневую директорию вашего сайта.

Затем заходим в web/web.php и в строке 'cookieValidationKey' => '' вводим любое значение, например 'cookieValidationKey' => 'sfg8t0sf7g'

Проверяем вашсайт.com/web вы должны увидеть вот такой экран приветствия:

Запускаем своё первое приложение на YII на обычном хостинге

Давайте теперь сделаем доступным его на основном домене вашсайт.com вместо вашсайт.com/web Для этого переносим файл index.php из папки web в корень вашего сайта и меняем в нём пути.

Примечание: конечно правильнее было бы перенастроить веб сервер на папку web или сделать симлинк на оную.

Было:

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/autoload.php');
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../config/web.php');

(new yiiwebApplication($config))->run();

Стало:

// comment out the following two lines when deployed to production
defined('YII_DEBUG') or define('YII_DEBUG', true);
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/vendor/autoload.php');
require(__DIR__ . '/vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/config/web.php');

(new yiiwebApplication($config))->run();

Тоесть мы просто убрали /…/ в трёх строчках, вот и вся магия, приложение стало доступно на основном домене, давайте ещё пути стилей в файле assets/AppAsset.php это 21 строка 'css/site.css' меняем на 'web/css/site.css'

Мои поздравления! Вы только что настроили среду для разработки великолепных веб приложений!

Теперь давайте разберёмся как настроить красивые адреса в приложении построенном на Yii. Что бы включить ЧПУ для начала создадим файл .htaccess в корневой папке приложения со следующим содержимым:

Options  FollowSymLinks
IndexIgnore */*
RewriteEngine on


# if file or directory dosn't exists go to /web/index.php 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php

Теперь в файл config/web.php добавляем такую конфигурацию:

Я вставил её между ‘errorHandler’ и ‘mailer’

  'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'enableStrictParsing' => false,
                'rules' => [
                  '/' => '/view',
                  '/' => '/site/index', // меняем главную страницу на корень домена
                  '/about' => '/site/about', // так же можно заменить и /site/about на /about
                  '//' => '/',
                ],
            ],

Теперь на вашем сайте будут доступны красивые понятные URL.

Подробности но настройке роутинга в Yii можно найти в официальном репозитории github.com/yiisoft/yii2/blob/master/docs/guide/runtime-routing.md

Как залить на хостинг сайт на yii2?

По мне так извращение, сколько знаю панелей, везде можно указать рутовую папку для домена.
«создаете папку например «yii2″ рядом с public_html туда копируете проект»
при этом приложение не перестает быть в корне домена и доступным для всех, просто вкладывается глубже.

При правильно настроенном .htaccess корень смотрит в /frontend/web и приложение недоступно извне.

Если уж очень хочется приложение не размещать в корне, ставите домен на /frontend/web, а бэкенд настраиваете через .htaccess.

Судя по всему, вопрос безопасности особо и не стоит, делайте тогда, как удобно, а не как надо, — пашед и ладно.

Корневая директория ftp доступна для записи ¶

Если вы можете записать в корневую директорию, где располагаются config, logs и www, то загрузите сюда же assets, commands и остальные директории, так же, как и у вас, локально.

В случае, если ваш сервер Apache, добавьте в директорию web или аналогичную, где располагается index.php, файл .htaccess со следующим содержимым:

Options  FollowSymLinks
IndexIgnore */*

RewriteEngineonRewriteCond%{REQUEST_FILENAME} !-f
RewriteCond%{REQUEST_FILENAME} !-d

RewriteRule . index.php

В случае использования nginx не требуется каких-либо дополнительных настроек.

Отдельные сессии и куки ¶

Изначально подразумевалось, что приложения бекенд и фронтенд располагаются на разных доменах. Теперь, когда мы перенесли всё на один домен, куки и сессии из бекенда и фронтенда стали пересекаться. Для решения этой проблемы требуется внести следующие настройки в конфигурацию бекенд-приложения backend/config/main.php:

Переименование webroot ¶

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

config
logs
www

В приведенном выше описании www — это webroot директория веб-сервера. Она может называться по-другому. Возможные названия: www, htdocs или public_html.

В Basic webroot называется web. Перед загрузкой своего приложения на виртуальный хостинг, переименуйте локальный webroot на название webroot виртуального хостинга. Например, web в www или public_html, в зависимости от наименования webroot вашего хостинга.

Перемещение входных скриптов в одну директорию webroot ¶

Для начала нам необходима директория webroot. Создайте новую директорию и назовите её так же, как на виртуальном хостинге, например, www или public_html, как описывалось выше в разделе Переименование webroot. Затем создайте следующую структуру в www:

Установка приложения basic. ¶

Поскольку на виртуальном хостинге обычно только один webroot, то лучше использовать шаблонное приложение Basic. Прочитайте раздел Установка Yii и локально установите приложение. После того как оно начнет работать, можно внести необходимые корректировки, которые помогут разместить Basic на виртуальном хостинге.

Установка шаблона приложения advanced ¶

Установка шаблона Advanced немного сложнее, чем установка Basic, из-за того, что в Advanced имеются две директории webroot, работа с которыми на виртуальном хостинге не поддерживается. По этой причине нам потребуется внести изменения в структуру директорий.

Оцените статью
Хостинги