Перенос сайта на локальный сервер

Главные вкладки

jura12 23 августа 2020 в 0:20

Настройка локального сервера

Настройка многосайтного локального сервера для apache в ubuntu может быть несколькими способами.

  1. Подпапки localhost. например http://localhost/mysite1 . нужно отредактировать в корне друпала файл .htaccess переменную на RewriteBase /site1 . сайт размещается в /var/www/html/site1
  2. в папке пользователя public_html (модуль userdir). Например, http://localhost/~username . сайт размещается в /home/username/public_html
  3. если есть домен то качестве поддомена http://drupal9.domename.ru . сайт размещается в /var/www/drupal9domenameru
  4. наверно самый правильный способ. виртуальные домены:
    VirtualHost *:80
        ServerAdmin sargath@test.com
        VirtualDocumentRoot "/home/sargath/Projects/%1/web"
        ServerName symfony.localhost
        ServerAlias *.drupal.localhost
       
        Directory "/home/sargath/Projects/*/web"
            Require all granted
            AllowOverride All
        /Directory
    /VirtualHost>

сайты работают от пользователя www-data. для удобства чтобы работал от пользователя можно поставить mpm_itk .

Перенос данных

перенос данных состоит из 2х частей.

  1. Перенос БД
  2. надо создать БД, создать пользователя, загрузить БД в БД.

    CREATE DATABASE drupal9db;
    USE drupal9db;
    CREATE USER drupal9db@localhost IDENTIFIED BY 'passwd';
    GRANT ALL privileges ON drupal9db.* TO 'drupal9db'@'localhost' IDENTIFIED BY 'passwd';
    FLUSH privileges;
    SOURCE ./mybaza.sql
    quit

    Можно попробовать восстановить с помощью drush sqlc < baza_drup8.sql . этот способ я не тестировал.

  3. Перенос папки с файлами
  4. перенос можно осуществить простым копированием. если у вас апачи запущен не от пользователя то надо всем файлам и папкам дать собственника www-data.
    sudo chown -R www-data:www-data drupal9

upd1: добавил 4й способ в способ настройки сервера.

Автор

Комментарии

Аватар пользователя bsyomov bsyomov 24 августа 2020 в 12:45

Так-то ок, но это фрагментарное описание одного частного случая, по большому счёту. Как по мне, смысла в такой "документации" крайне мало.

Например, сайт может располагаться примерно где угодно. Обычно, это понятно из конфига веб сервера. Перечисление где лежит локальный сайт бесполезно. Если читающий документацию этого не знает, ему она не нужна просто - всё равно не сделает ничего.

Правильно было бы описывать методы разработки целиком, с объяснением что и зачем делается в именно такой модели, и какие у неё плюсы, и чтобы все действия были в одном контексте.

Ну и для таких описаний, нужна квалификация, чтобы во-первых хорошо понимать о чём пишешь, во-вторых иметь возможность сравнить разные решения, а не описывать восторг неофита в стиле: "вот какая штука у меня получилось, срочно награфоманить нетленный труд на эту тему". Так оно не работает, даже хуже - часто получается сборник вредных советов вместо руководства.

В данном случае, как мне кажется, тут можно сменить заголовок и оставить только то, что касается создания базы/пользователя/импорта данных - это будет полезная, в целом, информация. Остальное совершенно бесполезно.

P.S. Также, лучше учить более разумным подходам к разработке, в данном случае, хотя бы что-то вроде git clone -> composer install -> mysql db < db.sql раз уж мы тут 9 аж drupal упоминаем.

Аватар пользователя jura12 jura12 24 августа 2020 в 13:05

Так то что вы пишите называется документация на другую тему и ее можно добавить в документацию.
Я намеренно подробно не описывал с тем чтобы понять какие будут высказывания.
Если будет нужда опишу подробнее.
Вариантов великое множество всего не перечислить.

Аватар пользователя bsyomov bsyomov 25 августа 2020 в 1:03

А эта на какую тему? Зачем вообще это было написано? Чем и кому это должно помочь?

Вариантов организации процесса разработки, не так много, кстати. А частично описанный выше, основанный на копировании файлов, при этом, самый примитивный и устаревший. Не стоит он того, чтобы подробнее описывать.