Страницы

Поиск по вопросам

понедельник, 24 февраля 2020 г.

Установка yii2 + base template на локальный компьютер Linux/ubuntu

#php #yii2


Никогда не имел дело с фреймворком yii2. Скачал весь сайт по фтп + база к нему.  

Файлы скинул в /var/www/html - однако ничеого не заработало.
При переходе на localhost/index.php - выхлоп ошибки.
Подключение к бд сделал вроде правильно.
Есть ли какие либо нюансы при портировании сайта на yii2 на локальную машину?
Выхлоп  

//exit();

//Main config file with all settings and autoloads
require_once "config/autoload.php";

//Set 1 to see the work time and sql queries
$debug = new Debug(0); 

//Main object of site also contains all modules objects
$mv = new Builder();

$products_delete = isset($_SESSION['shop']['cart']) && $_SESSION['shop']['cart']
? $_SESSION['shop']['cart'] : "";

if ($products_delete && is_array($products_delete))
{
    $products_delete = $mv -> products -> select(array("id->in" => implode(",",array_keys($products_delete))));
    $mv -> cart -> deleteProducts($products_delete);
}

//Router refers to include needed view to display the page
include_once $mv -> router -> defineRoute();

//If 1 was passed above, displays the data
$debug -> displayInfo($mv -> router);

    


Ответы

Ответ 1



Для начала, вам следует почитать документацию о том, как настроить виртуальный хост в Линуксе. Любой виртуальный хост. А только после этого пытаться примерять фреймворки и прочее)) Попробую описать под Ubuntu 14.04 как это сделать. Бежим вот сюда:http://www.yiiframework.com/download/#yii2 качаем Yii 2 with basic application template - это базовый шаблон с папкой vendor(сам фремворк) Идем в папку /var/www создаем директорию, к примеру yii2-app и в нее кидаем все, что находится в скачанной папке yii-basic-app-2.0.7/basic. В итоге в /var/www/yii2-app должны находится папки assets,config,vendor, web и прочее Идем в /etc/apache2/apache2.conf и добавляем (если нет таких строк): ServerName localhost ## Для того, чтобы Apache интерпретировал php и не предлагал сохранить php-файл AddType application/x-httpd-php .php .phtml ## Установка кодировки UTF-8 по умолчанию AddDefaultCharset UTF-8 # Идем в /etc/apache2/sites-available/ создаем конфигурационный файл yii2-app.conf, прописываем в него то, что под спойлером: ServerName yii2-app ServerAdmin webmaster@localhost DocumentRoot /var/www/yii2-app Options Indexes FollowSymlinks AllowOverride All Require all granted ErrorLog /var/www/yii2-app/logs/error.log CustomLog /var/www/yii2-app/logs/access.log combined Создаем паку logs в папке /var/www/yii2-app и файлы error.log и access.log Теперь надо включить сайт sites-enabled.... для этого просто создаем сим линк конфига из sites-available.... Для этого в терминале можно написать: ln -s откуда_копируем куда_копируем. В нашем случае это: sudo ln -s /etc/apache2/sites-available/yii2-app.conf /etc/apache2/sites-enabled/yii2-app.conf Открываем файл /etc/hosts, прописываем 127.0.0.1 localhost 127.0.0.1 yii2-app Открываем терминал, включаем mod rewrite апачу и перезапускаем его: sudo a2enmod rewrite sudo service apache2 restart Как минимум уже по адресу http://yii2-app должны появится папки. Если нет - значит надо настроить права у папок. Очень опасно, но можно выполнить в консоли chmod 777 /var/www/yii2-app -R что позволит читать и писать и выполнять все файлы всем кому не лень. Так делать нельзя! Хоть и увидите свои папки. Просто это для демонстрации того, что все появилось и надо лишь настроить права для папок. В /var/www/yii2-app/config/web.php необходимо задать значение для ключа cookieValidationKey И по крайней мере по адресу http://yii2-app/web уже будет что-то видно: В целом нужно еще файлы .htaccess Один .htaccess в корне /var/www/yii2-app с настройками: Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_URI} ^/.* RewriteRule ^(.*)$ web/$1 [L] RewriteCond %{REQUEST_URI} !^/web/ RewriteCond %{REQUEST_FILENAME} !-f [OR] RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^.*$ web/index.php И один .htaccess в папке /var/www/yii2-app/web с содержимым: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . index.php И уже остальное настраивать в конфигурационных файлах... Должно работать

Ответ 2



В Yii2 корневая папка - web. А у вас корневая сайта /var/www/html. Изменить на /var/www/html/web Пример привел для Basic приложения. Но суть не меняется.

Комментариев нет:

Отправить комментарий