Есть ли способ перенести все мои сайты на localhost на новый компьютер?

У меня есть целый набор веб-сайтов на моем компьютере с Ubuntu, которые я использую для тестирования и разработки. Я не размещаю их в Интернете, я просто получаю к ним доступ локально для проектирования и отладки.

Каждый из них построен на PHP, каждый использует базу данных MySQL. Их около двенадцати.

Я хочу перенести их в новую версию Ubuntu. Я делал это раньше, и когда я это сделал, я создал каждый файл конфигурации в /etc/apache2/sites-enabled, я загружаю в каждую базу данных MySQL, я создаю пользователя для каждой базы данных ... Это утомительно и склонно к (моей) человеческой ошибке.

У меня уже есть все сайты и все конфигурации на одном компьютере. Разве нет способа, которым я могу купить все базы данных, файлы, настройки Apache, конфигурации и все остальное и перенести его на новый сервер за один раз?

1
задан 4 June 2013 в 18:11

2 ответа

Это довольно простая задача, для которой вам нужно 4 вещи:

  1. Дамп всех баз данных MySQL (для этого используйте mysqldump) и
  2. Список установленных пакетов для apache2 и используемые вами модули (dpkg -l и grep - ваши друзья) и файлы
  3. в /etc/apache2/sites-available (так как именно там должны быть файлы конфигурации виртуального хоста - файлы в включенных сайтах должны быть только символическими ссылками обычно создаются с помощью a2ensite
  4. других файлов в разделе /etc/apache2, в которые вы внесли изменения.

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

0
ответ дан 4 June 2013 в 18:11

Благодаря советам как от Askubuntu, так и от Linux & amp; Unix SE, я собрал то, что кажется наиболее эффективным способом сделать то, что я намеревался сделать. Я надеюсь, что это полезно для других, и если кто-то может увидеть какие-либо места, где этот процесс может быть оптимизирован и улучшен, пожалуйста, внесите свой вклад.

Перед тем, как продолжить, обратите внимание, что я использую phpMyAdmin, и именно здесь я выполнил все свои операции MySQL. Кроме того, это предполагает, что целевой компьютер является новой установкой и что никакие настройки или файлы на новом компьютере не требуют сохранения. Эти операции перезапишут то, что находится на целевом компьютере. Наконец, это то, что я сделал для переноса моей системы, поэтому ваша конкретная ситуация, скорее всего, будет другой. Это просто предлагается в надежде дать людям в подобных ситуациях страницу, которая будет менее пустой для начала. Я перешел с Ubuntu 13.04 на Linux Mint 14.

На старом компьютере:

Создайте каталог, в котором вы можете хранить все, что собираетесь передать.

Скопируйте каталог, в котором вы храните все свои HTML, CSS и любые другие файлы, которые составляют ваш сайт. Я храню мой в каталоге в моей папке /home, а затем делаю ссылку на него из /var/www с помощью ссылки с символической ссылкой под названием Websites.

Скопируйте весь каталог /etc/apache2 directory.

Скопировать файл /etc/hosts.

Используя phpMyAdmin, экспортируйте в файл sql все базы данных, которые вы создали, и хотите переместить на новый сервер. В phpMyAdmin на вкладке export в домашней области вам нужно использовать опцию custom, чтобы выбрать, какие базы данных экспортировать. Убедитесь, что не скопировали базы данных с именами mysql, performance_schema и information_schema. Они вам не нужны, и вы все равно не сможете перезаписать их на новом сервере. Поэтому, если вы включите их, это приведет к головной боли при установке на новый компьютер.

Перейдите в базу данных mysql и скопируйте таблицу user в файл sql.

На новом компьютере:

Установить phpMyAdmin в Synaptic. Это устанавливает все необходимые файлы для сервера LAMP, вытягивая все соответствующие зависимости. Вам могут понадобиться некоторые дополнительные компоненты. В моем случае мне также понадобились javascript-common и xdebug.

Из каталога, в котором вы сохранили все файлы со старого компьютера, как описано выше, выполните следующую команду, чтобы переместить каталог apache2 в ваш /etc/folder.

sudo cp -R apache2 /etc

Откройте старый файл hosts и скопируйте только первую строку, все после того, где написано 127.0.01. Не копируйте строку, начинающуюся с 127.0.1.1. Откройте /etc/hosts на новом компьютере и вставьте в первую строку. Опять же, будьте осторожны, чтобы только копировать то, что следует после 127.0.0.1. Оставьте остальную часть файла в покое. Вам понадобятся права суперпользователя для редактирования и сохранения файла /etc/hosts.

Скопируйте HTML-файлы и данные веб-сайта туда, где вы обычно это делаете. В моем случае я храню их в каталоге /home. Создайте символическую ссылку на этот каталог в /var/www, и если вы это сделаете, убедитесь, что у вас FollowSymLinks установлена ​​опция в /etc/apache2/sites-enabled/000-default и /etc/apache2/sites-available/default (обычно это один и тот же файл, связанный друг с другом). Кроме того, вам необходимо убедиться, что привилегии для папок, на которые есть ссылки в вашем /home, доступны для веб-сервера с точки зрения наличия необходимых привилегий. Это большая тема, и я заметил, что люди не согласны с тем, что имеет смысл. Вовлечено (как минимум) два пользователя: учетная запись пользователя, с которой вы входите в систему, и www-data, которая управляет содержимым веб-сервера. Вы можете изменить, с каким пользователем вы заходите на ваш сервер, вы можете включить своего логина в нужные группы для доступа к веб-серверу ... может быть ... эта часть мне неясна. Однако, для меня, запуск chmod +x в каталоге, который содержит папку, содержащую все файлы HTML , сделал свое дело. Просто чтобы прояснить, вы должны запустить этот уровень на один уровень выше из папки, содержащей файлы HTML. В моем случае все мои HTML-файлы, каталоги и сайты находятся в /home/dave/Dropbox/Websites. Итак, я побежал chmod +x /home/dave/Dropbox/, а затем chmod +x -R /home/dave/Dropbox/Websites. Как я и сказал, эта часть неясна для меня, поскольку привилегии всегда сбивают меня с толку, но это то, что сработало.

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

Перезапустите Apache с помощью этой команды:

sudo service apache2 restart

Теперь, когда Apache готов к восстановлению баз данных.

Файл sql, который вы создали со всеми вашими базами данных, может иметь большой размер, много мегабайт. При загрузке файла sql в phpMyAdmin по умолчанию разрешается загрузка только до 2 МБ. Чтобы изменить это, откройте /etc/php5/apache2/php.ini, найдите, где написано upload_max_filesize, и измените его так, чтобы оно было достаточно большим, чтобы загрузить файл sql. Это требует привилегий суперпользователя и измените их обратно после завершения всего этого, если вы считаете, что это имеет значение. Если вы сделаете это, вам придется перезапустить Apache, чтобы новые настройки вступили в силу.

В phpMyAdmin на вкладке Import импортируйте все свои базы данных, загрузив файл sql.

Еще в phpMyAdmin перейдите в базу данных mysql, выберите таблицу user и drop ее. Затем перейдите на вкладку Import и загрузите файл таблицы user sql, который вы сохранили со старого компьютера. На этом этапе у вас будут все пользователи со старой машины и все ваши базы данных, но пользователи и базы данных не подключены, поэтому следующую часть еще предстоит выполнить по очереди. :(

В области home phpMyAdmin перейдите на вкладку Privileges, где вы найдете список всех пользователей. Просмотрите каждого из ваших созданных пользователей, и с каждым из них выберите Edit Privileges, затем на всплывающем экране перейдите к Database-specific privileges, выберите правильную базу данных, и на следующем экране вы можете выбрать для этого пользователя иметь права доступа к базе данных, которую вы хотите контролировать. В моем случае каждый пользователь имеет полный контроль над базой данных, которую он администрирует, поэтому я использовал функцию check-all и сохранил.

На этом этапе вам необходимо перезапустить MySQL, чтобы изменения в пользовательских привилегиях вступили в силу.

sudo service mysql restart

В этот момент вам нужно идти. Откройте браузер и зайдите на свои веб-сайты, как вы делали на старой машине, и все готово!

Я надеюсь, что это будет полезно для некоторых других.

0
ответ дан 4 June 2013 в 18:11

Другие вопросы по тегам:

Похожие вопросы: