Перенести сайт на другой сервер
Перенести сайт на другой сервер
Коллеги, добрый день!
Достался архив сайт (frontend, backend) и база данных, нужно перенести на новый сервер, как правильно сделать?
Достался архив сайт (frontend, backend) и база данных, нужно перенести на новый сервер, как правильно сделать?
Re: Перенести сайт на другой сервер
Копировать!
- Dominus
- Сообщения: 892
- Зарегистрирован: 2013.03.14, 21:27
- Откуда: Россия, Иваново
- Контактная информация:
Re: Перенести сайт на другой сервер
Можно скопировать всё кроме папки vendor и файла composer.loc
Добавить composer.phar
Затем подключиться по SSH и выполнить:
Создать базу, выполнить миграции, если есть, если нет то через phpmyadmin
Добавить composer.phar
Затем подключиться по SSH и выполнить:
Код: Выделить всё
php composer.phar self-update
php composer.phar install
php composer.phar update
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Re: Перенести сайт на другой сервер
Скопировать все файлы кроме подпапок runtime и web/assets и импортировать дамп базы.
Как раз копировать с файлом composer.lock.
Последний раз редактировалось ElisDN 2018.05.04, 23:54, всего редактировалось 1 раз.
- Dominus
- Сообщения: 892
- Зарегистрирован: 2013.03.14, 21:27
- Откуда: Россия, Иваново
- Контактная информация:
Re: Перенести сайт на другой сервер
Ну я помню что как то пришлось удалить vendor, и были какие то проблемы при установке, пока не удалил composer.loc. После удаления, установка прошла корректно, и composer.loc автоматически сгенерировался.
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Re: Перенести сайт на другой сервер
проблемы были из-за непонимания как работает. composer.lock нужен.
Re: Перенести сайт на другой сервер
У меня есть копия папки с сайтами
как понимаю папка с сайтом (www.site.su) находится в каталоге frontend/ а админка (backend.site.su) в backend/
Создал в apache два виртуальных хоста:
www.site.su
backend.site.su
Скопировал все файлы что на срине в папку /var/www/site/data/www/site.su/
.htaccess
как понимаю папка с сайтом (www.site.su) находится в каталоге frontend/ а админка (backend.site.su) в backend/
Создал в apache два виртуальных хоста:
www.site.su
Код: Выделить всё
<Directory /var/www/site/data/www/site.su>
Options +ExecCGI -Indexes
AllowOverride All
</Directory>
<VirtualHost *:80>
ServerName site.su
DocumentRoot /var/www/site/data/www/site.su
DirectoryIndex index.php index.html
CustomLog /var/www/site/data/logs/site.su-backend.access.log combined
ErrorLog /var/www/site/data/logs/site.su-backend.error.log
ServerAlias www.site.su
ServerAdmin admin@site.su
ScriptAlias "/cgi-bin" "/var/www/site/data/php-bin/site.su/site.su"
Action application/x-httpd-php5 /cgi-bin
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler application/x-httpd-php5
</FilesMatch>
AddDefaultCharset UTF-8
</VirtualHost>
Код: Выделить всё
<Directory /var/www/site/data/www/backend.site.su>
Options +ExecCGI -Indexes
AllowOverride All
</Directory>
<VirtualHost *:80>
ServerName backend.site.su
#DocumentRoot /var/www/site/data/www/backend.site.su/site.su/backend/web
DocumentRoot /var/www/site/data/www/site.su/backend/web
DirectoryIndex index.php index.html
CustomLog /var/www/site/data/logs/backend.site.su-backend.access.log combined
ErrorLog /var/www/site/data/logs/backend.site.su-backend.error.log
ServerAlias www.backend.site.su
ServerAdmin admin@backend.site.su
ScriptAlias "/cgi-bin" "/var/www/site/data/php-bin/backend.site.su/backend.site.su"
Action application/x-httpd-php5 /cgi-bin
<FilesMatch "\.ph(p[3-5]?|tml)$">
SetHandler application/x-httpd-php5
</FilesMatch>
AddDefaultCharset UTF-8
</VirtualHost>
.htaccess
Код: Выделить всё
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
# Если запрос начинается с /admin, то заменяем на /backend/web/
RewriteCond %{REQUEST_URI} ^/admin
RewriteRule ^admin\/?(.*) /backend/web/$1
# Добавляем другой запрос /frontend/web/$1
RewriteCond %{REQUEST_URI} !^/(frontend/web|backend/web|admin)
RewriteRule (.*) /frontend/web/$1
# Если frontend запрос
RewriteCond %{REQUEST_URI} ^/frontend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /frontend/web/index.php
# Если backend запрос
RewriteCond %{REQUEST_URI} ^/backend/web
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /backend/web/index.php
Re: Перенести сайт на другой сервер
Захожу на сайт, выходит такое сообщение:
Что делаю не так ?
Код: Выделить всё
<?php
defined('YII_DEBUG') or define('YII_DEBUG', false);
defined('YII_ENV') or define('YII_ENV', 'prod');
require(__DIR__ . '/../../vendor/autoload.php');
require(__DIR__ . '/../../vendor/yiisoft/yii2/Yii.php');
require(__DIR__ . '/../../common/config/bootstrap.php');
require(__DIR__ . '/../config/bootstrap.php');
$config = yii\helpers\ArrayHelper::merge(
require(__DIR__ . '/../../common/config/main.php'),
require(__DIR__ . '/../../common/config/main-local.php'),
require(__DIR__ . '/../config/main.php'),
require(__DIR__ . '/../config/main-local.php')
);
(new yii\web\Application($config))->run();
Re: Перенести сайт на другой сервер
Какой запрос? DocumentRoot /var/www/site/data/www/site.su Вы уверены, что это web директория проекта?
- proctoleha
- Сообщения: 298
- Зарегистрирован: 2016.07.10, 19:00
Re: Перенести сайт на другой сервер
Если вылетает именно такое сообщение как вы показали, ваш web сервер не обрабатывает индексный файл как файл php.
Я не понимаю в вашем конфиге двух строк:
ScriptAlias "/cgi-bin" "/var/www/site/data/php-bin/site.su/site.su"
Action application/x-httpd-php5 /cgi-bin
Зачем они? Устанавливаем php как модуль апач, и работаем.
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Re: Перенести сайт на другой сервер
Сделал простой конфиг виртхоста для основного сайта для backend не делал
Перенес все файлы сайта /var/www/html/
Перенес базу создал логин пароль такой-же который в конфиге
Теперь такие ошибки:
Код: Выделить всё
<VirtualHost *:80>
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Перенес базу создал логин пароль такой-же который в конфиге
Теперь такие ошибки:
Код: Выделить всё
[Sun May 06 12:26:07.033604 2018] [:error] [pid 13269] [client 10.222.2.6:55611] An Error occurred while handling another error:\nPDOException: SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value in /var/www/html/vendor/yiisoft/yii2/db/Command.php:959\nStack trace:\n#0 /var/www/html/vendor/yiisoft/yii2/db/Command.php(959): PDOStatement->execute()\n#1 /var/www/html/vendor/yiisoft/yii2/db/Schema.php(411): yii\\db\\Command->execute()\n#2 /var/www/html/vendor/yiisoft/yii2/db/ActiveRecord.php(509): yii\\db\\Schema->insert('{{%cart}}', Array)\n#3 /var/www/html/vendor/yiisoft/yii2/db/ActiveRecord.php(476): yii\\db\\ActiveRecord->insertInternal(NULL)\n#4 /var/www/html/vendor/yiisoft/yii2/db/BaseActiveRecord.php(643): yii\\db\\ActiveRecord->insert(true, NULL)\n#5 /var/www/html/common/modules/dvizh/yii2-cart/src/models/tools/CartQuery.php(33): yii\\db\\BaseActiveRecord->save()\n#6 /var/www/html/common/modules/dvizh/yii2-cart/src/models/Cart.php(19): dvizh\\cart\\models\\tools\\CartQuery->my()\n#7 /var/www/html/common/modules/dvizh/yii2-cart/src/Cart.php(317): dvizh\\cart\\models\\Cart->my()\n#8 /var/www/html/common/modules/dvizh/yii2-cart/src/Cart.php(46): dvizh\\cart\\Cart->update()\n#9 /var/www/html/vendor/yiisoft/yii2/base/BaseObject.php(107): dvizh\\cart\\Cart->init()\n#10 /var/www/html/common/modules/dvizh/yii2-cart/src/Cart.php(40): yii\\base\\BaseObject->__construct(Array)\n#11 [internal function]: dvizh\\cart\\Cart->__construct(Object(dvizh\\cart\\models\\Cart), Object(dvizh\\cart\\models\\CartElement), Array)\n#12 /var/www/html/vendor/yiisoft/yii2/di/Container.php(381): ReflectionClass->newInstanceArgs(Array)\n#13 /var/www/html/vendor/yiisoft/yii2/di/Container.php(156): yii\\di\\Container->build('dvizh\\\\cart\\\\Cart', Array, Array)\n#14 /var/www/html/vendor/yiisoft/yii2/BaseYii.php(348): yii\\di\\Container->get('dvizh\\\\cart\\\\Cart', Array, Array)\n#15 /var/www/html/vendor/yiisoft/yii2/di/ServiceLocator.php(136): yii\\BaseYii::createObject(Array)\n#16 /var/www/html/vendor/yiisoft/yii2/di/ServiceLocator.php(73): yii\\di\\ServiceLocator->get('cart')\n#17 /var/www/html/frontend/views/layouts/main.php(62): yii\\di\\ServiceLocator->__get('cart')\n#18 /var/www/html/vendor/yiisoft/yii2/base/View.php(330): require('/var/www/html/f...')\n#19 /var/www/html/vendor/yiisoft/yii2/base/View.php(250): yii\\base\\View->renderPhpFile('/var/www/html/f...', Array)\n#20 /var/www/html/vendor/yiisoft/yii2/base/Controller.php(396): yii\\base\\View->renderFile('/var/www/html/f...', Array, Object(frontend\\controllers\\SiteController))\n#21 /var/www/html/vendor/yiisoft/yii2/base/Controller.php(382): yii\\base\\Controller->renderContent('\\n<main class="e...')\n#22 /var/www/html/vendor/yiisoft/yii2/web/ErrorAction.php(128): yii\\base\\Controller->render('error', Array)\n#23 /var/www/html/vendor/yiisoft/yii2/web/ErrorAction.php(107): yii\\web\\ErrorAction->renderHtmlResponse()\n#24 [internal function]: yii\\web\\ErrorAction->run()\n#25 /var/www/html/vendor/yiisoft/yii2/base/Action.php(94): call_user_func_array(Array, Array)\n#26 /var/www/html/vendor/yiisoft/yii2/base/Controller.php(156): yii\\base\\Action->runWithParams(Array)\n#27 /var/www/html/vendor/yiisoft/yii2/base/Module.php(523): yii\\base\\Controller->runAction('error', Array)\n#28 /var/www/html/vendor/yiisoft/yii2/web/ErrorHandler.php(97): yii\\base\\Module->runAction('site/error')\n#29 /var/www/html/vendor/yiisoft/yii2/base/ErrorHandler.php(111): yii\\web\\ErrorHandler->renderException(Object(yii\\db\\Exception))\n#30 [internal function]: yii\\base\\ErrorHandler->handleException(Object(yii\\db\\Exception))\n#31 {main}\n\nNext yii\\db\\Exception: SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value\nThe SQL being executed was: INSERT INTO `cart` (`created_time`, `tmp_user_id`, `updated_time`) VALUES (1525598767, '6048e13ffb000273aeac5f04c00e6748', 1525598767) in /var/www/html/vendor/yiisoft/yii2/db/Schema.php:592\nStack trace:\n#0 /var/www/html/vendor/yiisoft/yii2/db/Command.php(969): yii\\db\\Schema->convertException(Object(PDOException), 'INSERT INTO `ca...')\n#1 /var/www/html/vendor/yiisoft/yii2/db/Schema.php(411): yii\\db\\Command->execute()\n#2 /var/www/html/vendor/yiisoft/yii2/db/ActiveRecord.php(509): yii\\db\\Schema->insert('{{%cart}}', Array)\n#3 /var/www/html/vendor/yiisoft/yii2/db/ActiveRecord.php(476): yii\\db\\ActiveRecord->insertInternal(NULL)\n#4 /var/www/html/vendor/yiisoft/yii2/db/BaseActiveRecord.php(643): yii\\db\\ActiveRecord->insert(true, NULL)\n#5 /var/www/html/common/modules/dvizh/yii2-cart/src/models/tools/CartQuery.php(33): yii\\db\\BaseActiveRecord->save()\n#6 /var/www/html/common/modules/dvizh/yii2-cart/src/models/Cart.php(19): dvizh\\cart\\models\\tools\\CartQuery->my()\n#7 /var/www/html/common/modules/dvizh/yii2-cart/src/Cart.php(317): dvizh\\cart\\models\\Cart->my()\n#8 /var/www/html/common/modules/dvizh/yii2-cart/src/Cart.php(46): dvizh\\cart\\Cart->update()\n#9 /var/www/html/vendor/yiisoft/yii2/base/BaseObject.php(107): dvizh\\cart\\Cart->init()\n#10 /var/www/html/common/modules/dvizh/yii2-cart/src/Cart.php(40): yii\\base\\BaseObject->__construct(Array)\n#11 [internal function]: dvizh\\cart\\Cart->__construct(Object(dvizh\\cart\\models\\Cart), Object(dvizh\\cart\\models\\CartElement), Array)\n#12 /var/www/html/vendor/yiisoft/yii2/di/Container.php(381): ReflectionClass->newInstanceArgs(Array)\n#13 /var/www/html/vendor/yiisoft/yii2/di/Container.php(156): yii\\di\\Container->build('dvizh\\\\cart\\\\Cart', Array, Array)\n#14 /var/www/html/vendor/yiisoft/yii2/BaseYii.php(348): yii\\di\\Container->get('dvizh\\\\cart\\\\Cart', Array, Array)\n#15 /var/www/html/vendor/yiisoft/yii2/di/ServiceLocator.php(136): yii\\BaseYii::createObject(Array)\n#16 /var/www/html/vendor/yiisoft/yii2/di/ServiceLocator.php(73): yii\\di\\ServiceLocator->get('cart')\n#17 /var/www/html/frontend/views/layouts/main.php(62): yii\\di\\ServiceLocator->__get('cart')\n#18 /var/www/html/vendor/yiisoft/yii2/base/View.php(330): require('/var/www/html/f...')\n#19 /var/www/html/vendor/yiisoft/yii2/base/View.php(250): yii\\base\\View->renderPhpFile('/var/www/html/f...', Array)\n#20 /var/www/html/vendor/yiisoft/yii2/base/Controller.php(396): yii\\base\\View->renderFile('/var/www/html/f...', Array, Object(frontend\\controllers\\SiteController))\n#21 /var/www/html/vendor/yiisoft/yii2/base/Controller.php(382): yii\\base\\Controller->renderContent('\\n<main class="e...')\n#22 /var/www/html/vendor/yiisoft/yii2/web/ErrorAction.php(128): yii\\base\\Controller->render('error', Array)\n#23 /var/www/html/vendor/yiisoft/yii2/web/ErrorAction.php(107): yii\\web\\ErrorAction->renderHtmlResponse()\n#24 [internal function]: yii\\web\\ErrorAction->run()\n#25 /var/www/html/vendor/yiisoft/yii2/base/Action.php(94): call_user_func_array(Array, Array)\n#26 /var/www/html/vendor/yiisoft/yii2/base/Controller.php(156): yii\\base\\Action->runWithParams(Array)\n#27 /var/www/html/vendor/yiisoft/yii2/base/Module.php(523): yii\\base\\Controller->runAction('error', Array)\n#28 /var/www/html/vendor/yiisoft/yii2/web/ErrorHandler.php(97): yii\\base\\Module->runAction('site/error')\n#29 /var/www/html/vendor/yiisoft/yii2/base/ErrorHandler.php(111): yii\\web\\ErrorHandler->renderException(Object(yii\\db\\Exception))\n#30 [internal function]: yii\\base\\ErrorHandler->handleException(Object(yii\\db\\Exception))\n#31 {main}\nAdditional Information:\nArray\n(\n [0] => HY000\n [1] => 1364\n [2] => Field 'user_id' doesn't have a default value\n)\n\nPrevious exception:\nPDOException: SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value in /var/www/html/vendor/yiisoft/yii2/db/Command.php:959\nStack trace:\n#0 /var/www/html/vendor/yiisoft/yii2/db/Command.php(959): PDOStatement->execute()\n#1 /var/www/html/vendor/yiisoft/yii2/db/Schema.php(411): yii\\db\\Command->execute()\n#2 /var/www/html/vendor/yiisoft/yii2/db/ActiveRecord.php(509): yii\\db\\Schema->insert('{{%cart}}', Array)\n#3 /var/www/html/vendor/yiisoft/yii2/db/ActiveRecord.php(476): yii\\db\\ActiveRecord->insertInternal(NULL)\n#4 /var/www/html/vendor/yiisoft/yii2/db/BaseActiveRecord.php(643): yii\\db\\ActiveR
- proctoleha
- Сообщения: 298
- Зарегистрирован: 2016.07.10, 19:00
Re: Перенести сайт на другой сервер
И?
Что вы лично думаете по: General error: 1364 Field 'user_id' doesn't have a default value?
И в выводе даже файл есть: var/www/html/common/modules/dvizh/yii2-cart/src/models/tools/CartQuery.php(33)
Никто кроме вас не разберется - копайте
Что вы лично думаете по: General error: 1364 Field 'user_id' doesn't have a default value?
И в выводе даже файл есть: var/www/html/common/modules/dvizh/yii2-cart/src/models/tools/CartQuery.php(33)
Никто кроме вас не разберется - копайте
Вот за что я не люблю линукс, так это за свои кривые, временами, руки
Re: Перенести сайт на другой сервер
Да я не спорю что это мой геморой, но я не когда не работал c yii2, а задачу поставили перенести проект на сервер, что сделали, спасибо Dominus :
Выходит вот такой текст:
что дальше делать не понимаю =(
Заранее благодарю всех !
Код: Выделить всё
<?php
namespace dvizh\cart\models\tools;
use yii\web\Session;
use yii;
class CartQuery extends \yii\db\ActiveQuery
{
public function my()
{
$session = yii::$app->session;
//if(!$userId = yii::$app->user->id) { chanel delete cart after login
if (!$userId = $session->get('tmp_user_id')) {
$userId = md5(time() . '-' . yii::$app->request->userIP . Yii::$app->request->absoluteUrl);
$session->set('tmp_user_id', $userId);
}
$one = $this->andWhere(['tmp_user_id' => $userId])->limit(1)->one();
/*} else {
$one = $this->andWhere(['user_id' => $userId])->limit(1)->one();
}*/
if (!$one) {
$one = new \dvizh\cart\models\Cart();
$one->created_time = time();
if(yii::$app->user->id) {
\yii\helpers\VarDumper::dump($userId, 10, 1);
die;
$one->user_id = $userId;
}
else {
$one->tmp_user_id = $userId;
}
$one->updated_time = time();
\yii\helpers\VarDumper::dump($one, 10, 1);
die;
$one->save();
}
return $one;
}
}
Код: Выделить всё
dvizh\cart\models\Cart#1
(
[dvizh\cart\models\Cart:element] => dvizh\cart\models\CartElement#2
(
[yii\db\BaseActiveRecord:_attributes] => []
[yii\db\BaseActiveRecord:_oldAttributes] => null
[yii\db\BaseActiveRecord:_related] => []
[yii\base\Model:_errors] => null
[yii\base\Model:_validators] => null
[yii\base\Model:_scenario] => 'default'
[yii\base\Component:_events] => []
[yii\base\Component:_behaviors] => []
)
[yii\db\BaseActiveRecord:_attributes] => [
'created_time' => 1525617896
'tmp_user_id' => '7ce2ca32338a03abb848281aa07be6f7'
'updated_time' => 1525617896
]
[yii\db\BaseActiveRecord:_oldAttributes] => null
[yii\db\BaseActiveRecord:_related] => []
[yii\base\Model:_errors] => null
[yii\base\Model:_validators] => null
[yii\base\Model:_scenario] => 'default'
[yii\base\Component:_events] => []
[yii\base\Component:_behaviors] => null
)
Заранее благодарю всех !
- Dominus
- Сообщения: 892
- Зарегистрирован: 2013.03.14, 21:27
- Откуда: Россия, Иваново
- Контактная информация:
Re: Перенести сайт на другой сервер
Код: Выделить всё
VarDumper::dump($one, 10, 1);
die;
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Re: Перенести сайт на другой сервер
$userId пустой.
Re: Перенести сайт на другой сервер
Убрал, на сайте снова в дебаге ошибка:Dominus писал(а): ↑2018.05.06, 17:50можно уже убрать. Это нужно было для того, что бы узнать что находится в модели перед сохранением)Код: Выделить всё
VarDumper::dump($one, 10, 1); die;
Код: Выделить всё
Exception
Database Exception – yii\db\Exception
SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value
The SQL being executed was: INSERT INTO `cart` (`created_time`, `tmp_user_id`, `updated_time`) VALUES (1525618489, '7ce2ca32338a03abb848281aa07be6f7', 1525618489)
Error Info: Array
(
[0] => HY000
[1] => 1364
[2] => Field 'user_id' doesn't have a default value
)
↵
Caused by: PDOException
SQLSTATE[HY000]: General error: 1364 Field 'user_id' doesn't have a default value
in /var/www/vendor/yiisoft/yii2/db/Command.php at line 959
- Dominus
- Сообщения: 892
- Зарегистрирован: 2013.03.14, 21:27
- Откуда: Россия, Иваново
- Контактная информация:
Re: Перенести сайт на другой сервер
Так попробуй
Код: Выделить всё
if (!$one) {
$one = new \dvizh\cart\models\Cart();
$one->created_time = time();
if(yii::$app->user->id) {
$one->user_id = yii::$app->user->id; // Может так должно быть?
}
else {
$one->user_id = 0;// или какое там значение определено по умолчанию
$one->tmp_user_id = $userId;
}
$one->updated_time = time();
$one->save();
}
Не спорь с дураком, иначе окружающие не правильно поймут кто из вас дурак!
Re: Перенести сайт на другой сервер
Работает !!! Спасибо !