Merge pull request #10165 from nupplaphil/bug/strip_pageinfo
[friendica.git/.git] / doc / Migrate.md
index 32d331e..e116d02 100644 (file)
@@ -1,4 +1,4 @@
-Migrating to a new server
+Migrating to a new server installation
 ===============
 
 * [Home](help)
@@ -6,35 +6,42 @@ Migrating to a new server
 ## Preparation
 
 ### New server
-Set up your new server as described [here](install) by following installation procedure until you have created a database.
+Set up your new server as described [here](Install); follow the installation procedure until you have created a database.
 
-### Head up to users
-
-Inform your users of an upcoming interruption to your service. To ensure no loss of data, your server needs to be offline during some part of the migration processes.
-
-You may find these addons useful for in communicating with your users prior to the migration process:
+### Heads up to users
+Inform your users of an upcoming interruption to your service.
+To ensure data consistency, your server needs to be offline during some steps of the migration processes.
 
+You may also find these addons useful for communicating with your users prior to the migration process:
 * blackout
 * notifyall
 
-
 ### Storage
 Check your storage backend with ``bin/console storage list`` in the root folder.
+The output should look like this:
+````
+Sel | Name
+-----------------------
+     | Filesystem
+ *   | Database
+````
 
-If you are not currently using ``Database`` run the following commands:
-1. ``bin/console storage set Database`` to active the database backend.
-2. ``bin/console storage move`` to initiate moving the stored image files.
+If you are *not* using ``Database`` run the following commands:
+1.  ``bin/console storage set Database`` to activate the database backend.
+2.  ``bin/console storage move`` to initiate moving the stored image files.
 
-This process may take a long time depending on the size of your storage and your server capacity. Prior to initiating this process, you may want to check the number of files in the storage with the following command: ``tree -if -I index.html /path/to/storage/``.
+This process may take a long time depending on the size of your storage and your server's capacity.
+Prior to initiating this process, you may want to check the number of files in the storage with the following command: ``tree -if -I index.html /path/to/storage/``.
 
 ### Cleaning up
+Before transferring your database, you may want to clean it up; ensure the expiration of database items is set to a reasonable value and activated via the administrator panel.
+*Admin* > *Site* > *Performance* > Enable "Clean up database"
+After adjusting these settings, the database cleaning up processes will be initiated according to your configured daily cron job.
 
-Before transferring your database, you may want to clean it up by ensuring the expiration of items is set to reasonable value in the administrator panel. *Admin* > *Site* > *Performance* > Enable "Clean up database" 
-
-After adjusting these settings, the database cleaning up processes will be initiated according to your configured daily cron time frame.
-
-To review the size of your database, log into MySQL with ``mysql -p`` run the following query: 
-``SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 / 1024 AS "Size (GB)" FROM information_schema.TABLES GROUP BY table_schema;``
+To review the size of your database, log into MySQL with ``mysql -p`` run the following query:
+````
+SELECT table_schema AS "Database", SUM(data_length + index_length) / 1024 / 1024 / 1024 AS "Size (GB)" FROM information_schema.TABLES GROUP BY table_schema;
+````
 
 You should see an output like this:
 ````
@@ -46,29 +53,40 @@ You should see an output like this:
 +--------------------+----------------+
 ````
 
-Finally, you may also want optimise your database with the following command:
-``mysqloptimize -p friendica-db``
+Finally, you may also want to optimise your database with the following command: ``mysqloptimize -p friendica-db``
 
-### Go offline 
-Take your web server offline. This will ensure consistency of your users' data.
+### Going offline 
+Stop background tasks and put your server in maintenance mode.
+1.  If you had set up a worker cron job like this ``*/10 * * * * cd /var/www/friendica; /usr/bin/php bin/worker.php`` run ``crontab -e`` and comment out this line. Alternatively if you deploy a worker daemon, disable this instead.
+2.  Put your server into maintenance mode: ``bin/console maintenance 1 "We are currently upgrading our system and will be back soon."``
 
 ## Dumping DB
+Export your database: ``mysqldump  -p friendica_db > friendica_db-$(date +%Y%m%d).sql`` and possibly compress it.
 
-Dump you database: ``mysqldump  -p friendica_db > friendica_db-$(date +%Y%m%d).sql``
-
-and possibly compress it. 
-
-## Transferring to new installation 
+## Transferring to new server
+Transfer your database and a copy of your configuration file ``config/local.config.php.copy`` to your new server installation.
 
-Transfer your database and copy of your configuration file ``config/local.config.php-copy`` to your new server.
+## Restoring your DB
+Import your database on your new server: ``mysql -p friendica_db < your-friendica_db-file.sql``
 
-## Import your DB
+## Completing migration
 
-Import your database: ``mysql -p friendica_db < your-friendica_db-file.sql``
+### Configuration file
+Copy your old server's configuration file to ``config/local.config.php``.
+Ensure the newly created database credentials are identical to the setting in the configuration file; otherwise update them accordingly. 
 
-## Completing installation process
+### Cron job for worker
+Set up the required daily cron job.
+Run ``crontab -e`` and add the following line according to your system specification
+``*/10 * * * * cd /var/www/friendica; /usr/bin/php bin/worker.php`` 
 
-Complete the installation by adjusting the configuration settings and set up the required daily cron job.
+### DNS settings
+Adjust your DNS records by pointing them to your new server.
 
+## Troubleshooting
+If you are unable to login to your newly migrated Friendica installation, check your web server's error and access logs and mysql logs for obvious issues.
 
+If still unable to resolve the problem, it's likely an issue with your [installation](Install).
+In this case, you may try to an entirely new Friendica installation on your new server, but use a different FQDN and DNS name.
+Once you have this up and running, take it offline and purge the database and configuration file and try migrating to this installation.