阅读 287

nextcloud升级日志

nextcloud升级日志

1,准备工作

  • 需要安装一台Ubuntu 20.4 LST长期版本的系统,准备一个nextcloud 15.02的版本。

  • 导出原来旧服务器上的/var/www/nextcloud目录下的data数据,这里包含所有的用户数据,同时需要删除里面的index.html  nextcloud.log。

  • 导出原来旧服务器上数据库文件,这个使用的mysql数据库,看了一下数据库比较小,导出很方便(mysqldunp -uroot -p -B nextcloud > /soft/nextcloud.sql)。

  • 将老的服务器设置为维护模式( maintenance => true ),或者时间允许你也可以停机维护。

<?php$CONFIG = array (
  'instanceid' => 'ocb3hud7w2rm',  'passwordsalt' => '5vCxOAIbTkS8igbAhv0+uZkOAACAVD',  'secret' => '1cf2NjrkevHSGl4ZR+0LOaZROokhtIKeTR2/8a50+JbBAky4',  'trusted_domains' =>
  array (
    0 => '10.93.58.209',  ),  'datadirectory' => '/var/www/nextcloud/data',  'dbtype' => 'mysql',  'version' => '20.0.8.1',  'overwrite.cli.url' => 'http://10.93.58.209',  'dbname' => 'nextcloud',  'dbhost' => 'localhost',  'dbport' => '',  'dbtableprefix' => 'oc_',  'mysql.utf8mb4' => true,  'dbuser' => 'admin',  'dbpassword' => 'Android',  'installed' => true,  'maintenance' => true,  'loglevel' => 2,  'ldapProviderFactory' => 'OCA\\User_LDAP\\LDAPProviderFactory',);



2,整理一下我们需要升级的步骤是需要注意的情况。

软件类型升级前升级后备注
系统版本Ubuntu 16.04Ubuntu20.04
软件版本
nextcloud 15.02nextcloud 20.08
PHP版本7.07.2这个需要从15.02升级到20.08PHP版本不能>=7.3,否则会报错
MariaDB10.0.3810.3.25
apacheApache/2.4.18Apache/2.4.41


3,安装系统,设置短域名,具体步骤如下:

  • 安装Apache、MariaDB、PHP构建LAMP环境。

apt-get update#配置一下源安装php7.2版本可以安装上nextcloud 15.02sudo apt install software-properties-commonsudo add-apt-repository ppa:ondrej/phpsudo apt install php7.2 apache2 mariadb-server libapache2-mod-php7.2 -ysudo apt install php7.2 php7.2-gd php7.2-json php7.2-mysql php7.2-curl php7.2-mbstring -ysudo apt install php7.2 php7.2-intl php7.2-mcrypt php7.2-imagick php7.2-xml php7.2-zip php7.2-ldap -y
  • 启动mariadb和apache

systemctl start apache2
systemctl start mysqld
  • 进入数据库,创建数据库并授权数据库的使用权限。

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'Android';CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;GRANT ALL PRIVILEGES ON nextcloud.* TO 'admin'@'localhost';FLUSH PRIVILEGES;
  • 上传nextcloud 15.02安装包,此步骤省略。

  • 解压nextcloud,将数据放在/var/www/下面。


tar xf nextcloud-15.0.12.tar.bz2mv nextcloud /var/www/
  • 然后给文件夹授权

chown -R www-data.www-data /var/www/nextcloud

设置Apache主目录,主要设置12-17行。

vim /etc/apache2/sites-available/000-default.conf
  1 <VirtualHost *:80>
  2         # The ServerName directive sets the request scheme, hostname and port that
  3         # the server uses to identify itself. This is used when creating
  4         # redirection URLs. In the context of virtual hosts, the ServerName
  5         # specifies what hostname must appear in the request's Host: header to
  6         # match this virtual host. For the default virtual host (this file) this
  7         # value is not decisive as it is used as a last resort host regardless.
  8         # However, you must set it for any further virtual host explicitly.
  9         #ServerName www.example.com
 10
 11         ServerAdmin webmaster@localhost
 12         DocumentRoot /var/www/nextcloud
 13         <Directory /var/www/nextcloud/>
 14         Require all granted
 15         AllowOverride All
 16         Options FollowSymLinks MultiViews
 17         </Directory>
 18         # error, crit, alert, emerg.
 19         # It is also possible to configure the loglevel for particular
 20         # modules, e.g.
 21         #LogLevel info ssl:warn
 22
 23         ErrorLog ${APACHE_LOG_DIR}/error.log
 24         CustomLog ${APACHE_LOG_DIR}/access.log combined
 25
 26         # For most configuration files from conf-available/, which are
 27         # enabled or disabled at a global level, it is possible to
 28         # include a line for only one particular virtual host. For example the
 29         # following line enables the CGI configuration for this host only
 30         # after it has been globally disabled with "a2disconf".
 31         #Include conf-available/serve-cgi-bin.conf
 32 </VirtualHost>
 33
 34 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
  • 然后在浏览器安装初始化nextcloud,这个跟上面一片步骤一样,这里省略了。需要到前面看。

  • 初始化完成,就去nextcloud主配置文件加上一条,'htaccess.RewriteBase' => '/',主要功能是隐藏index.php。

vim /var/www/nextcloud/config/config.php'htaccess.RewriteBase' => '/'
  • 随后开启Apache的功能模块,加载htaccess隐藏功能,重启Apache服务。

sudo a2enmod envsudo a2enmod rewritecd /var/www/nextcloud/sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess
systemctl restart apache2
  • 浏览器访问已经隐藏index.php。image.png

  • 导入数据库文件测试,不过前提你需要导出你的数据库文件。

mysql -uroot -p -B nextcloud >/soft/nextcloud.sql     #旧数据库上导出mysql -uroot -p nextcloud < ./nextcloud.sql            #从新的数据库上导入
  • 然后导入/var/www/nextcloud/data 数据导入到新的服务器/var/www/nextcloud/data下面,我先到了2个用户测试一下,结果可以。

scp -r  ./abe.li root@10.93.58.209:/var/www/nextcloud/data/scp -r  ./felick.wang root@10.93.58.209:/var/www/nextcloud/data/
  • 最关键一步就是升级nextcloud的版本。因为不能跨版本升级只能是15>16>17>18>19>20,感觉有点坑呀!升级之前还要走一下代理,不然就会报错,基本上会卡在一直Downloading状态,后台有错误显示网络什么的错误,这个问题搞了好几天。

export http_proxy=172.16.0.254:7070             #设置代理cd /var/www/nextcloud/updater/                  #进入目录sudo -u www-data php updater.phar               #升级命令sudo -u www-data php occ upgrade -v             #查看当前版本

image.png

  • 这样重复一直下去,知道完成到20.08时候会提示为最新版本不能升级,至此升级完成。

root@nextcloud:/var/www/nextcloud# sudo -u www-data php occ upgrade -vNextcloud is already latest version

最后,不要忘记关闭原来老的服务器,彻底的使用新服务器提供应用。

it学习论坛 http://www.137zw.com/



©著作权归作者所有:来自51CTO博客作者hwg1227的原创作品,如需转载,请注明出处,否则将追究法律责任


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐