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