Rocky 9.x Owncloud Manually moving DataDirectory
From Notes_Wiki
Home > Rocky Linux or CentOS > Rocky Linux 9.x > File Sharing > Owncloud > Manually moving DataDirectory
We can change path of owncloud DataDirectory as follows: (Assuming moving from /var/www/owncloud to /mnt/owncloud )
- Enable maintenance mode.  For example
- cd /var/www/html/owncloud
- sudo -u apache php -f occ maintenance:mode --on
- sudo -u apache php -f occ maintenance:mode
 
 
- Optionally stop web server (Dont stop MariaDB database)
- systemctl stop httpd
 
 
- Figure out various datadirectory in use.  Although config/config.php mentions about only one DataDirectory the oc_accounts table might have home value which is not a sub-folder of config/config.php DataDirectory.  In such cases we need to either copy/migrate all these other home folders also.  To see various home folders in use, use below SQL query
- select * from oc_accounts;
 
- 
- Look at value of home column. Validate that they are sub-folders of same parent DataDirectory and plan accordingly.
- We can move the home folders to a common location. But after that we must update various user home path appropriately.
 
 
- Move the files to new folder, Remount old Data directory on new path.  If instead of move copy is preferred then use:
- #Use below only if you want to copy instead of moving, Use twice space
- rsync -a /var/www/owncloud/ /mnt/owncloud/
 
- Trailing / in both paths is critical
 
- Connect to MariaDB using 'mysql'.  DB name, Username and Password are part of config/config.php file.  For example
- mysql -u <username> -p
- #On mysql> prompt
- use <db-name>
 
 
- Update oc_storage MariaDB table using:
- UPDATE oc_storages SET id='local::/mnt/owncloud/data/' WHERE id='local::/var/www/owncloud/data/';
 
- Trailing / in both paths is critical
 
- Update oc_accounts table using:
- UPDATE oc_accounts SET home = REPLACE(home, '/var/www/owncloud/data/', '/mnt/owncloud/data/' );
 
- Trailing / in both paths is critical
- If various accounts have different home folder (Not common DataDirectory, update this step appropriately)
 
- Validate that output of below SQL is empty:
- SELECT * FROM oc_jobs WHERE class = 'OC\Log\Rotate';
 
- If it is not empty use reference link below to understand how to update path in oc_jobs table
 
- Look at application setting to see if any application has cached path as part of its settings:
- cd /var/www/html/owncloud
- sudo -u apache php -f occ config:list
 
- If application has cached path then use reference link below to understand how to update path in oc_jobs table
 
- In config/config.php file update DataDirectory path
- Note that value of DataDirectory does not ends with trailing /
 
- Start http service, if it was stopped
- systemctl start httpd
 
 
- Remove owncloud from maintenance mode.  For example
- cd /var/www/html/owncloud
- sudo -u apache php -f occ maintenance:mode --off
- sudo -u apache php -f occ maintenance:mode
 
 
Refer:
There is older article on this at CentOS 8.x Owncloud changing datadirectory for a new installation
Home > Rocky Linux or CentOS > Rocky Linux 9.x > File Sharing > Owncloud > Manually moving DataDirectory

