Easily Update Owncloud with PHP Scripting
update your owncloud installation with only one command
Owncloud#
You like owncloud ? But updating realy sucks..there ist no automatic update function and typing 10 lines into your shell takes to much time. So here is the simple. 1 command solution!
Usage#
Just execute the following command via ssh (you get the packeage url directly from owncloud.com):
Syntax: owncloud_update.php <package_url.tar.bz2>
Example:php owncloud_update.php http://download.owncloud.org/releases/owncloud-4.0.4.tar.bz2
Required Directory Structure#
You need the following directory structure:
*owncloud_update.php
*owncloud
*owncloud/config
*ownclouddata (the data folder, name may be variant)
Warning#
If you have the default structure (which is strongly not recommended) the script will erase all your data!
Default Structure is like:
owncloud
*owncloud/config
*owncloud/data (your data dir which is directly web-accessables -> security risk)
The Script#
Functionality#
The Steps of the script explained:
- Move the config dir ./owncloud/config outside of the owncloud system dir ./owncloud
- Deletes the old owncloud system dir ./owncloud
- Download the given new package by url
- Extract (Un-Tar/Bz2) the new Package
- Remove the tar.bz2 package file
- Remove the new config dir into ./owncloud/config
- Restore the old config dir to ./owncloud/config
Well that’s it – and quite faster/easier as typing each command by hand. And it will save your time ;)
Scriptfile#
owncloud_update.php#
[php]
<?php
if ($argc==2 && strlen(trim($argv[1]))>0){
// get pathes
$url = trim($argv[1]);
$archive = basename($url);
// save config dir
shell_exec(‘mv ./owncloud/config ./config’);
// remove old installation
shell_exec(‘rm -rf ./owncloud’);
// download new version
file_put_contents($archive, file_get_contents($url));
// unzip
shell_exec(‘tar xfj ‘.$archive);
// remove installation archive
unlink($archive);
// delete new ocnfig dir
shell_exec(‘rm -rf ./owncloud/config’);
// move config dir back
shell_exec(‘mv ./config ./owncloud/config’);
}else{
echo ‘Usage: ocupdate.php <achiveurl.tar.bz2>’."\r\n";
}
?>
[/php]