一、迁出
1、停止apache2服务
sudo systemctl stop apache2
2、打包nextcloud目录所有文件
sudo tar -czvf nextcloud.tar.gz /var/www/nextcloud
3、导出MySQL数据库
sudo mysqldump --single-transaction --default-character-set=utf8mb4 -h server -u username -p password db_name > bakfile.sql
二、恢复
1、安装依赖
sudo apt install apache2 mysql-server php redis php-mysql php-redis php-apcu php-common php-curl php-gd php-json php-mbstring php-xml php-zip php-bz2 php-intl php-gmp php-imagick php-bcmath
#对于php-imagick的额外支持
sudo apt install libmagickcore-6.q16-6-extra
2、解压文件
tar -zxvf nextcloud.tar.gz
mv nextcloud /var/www/
chown www-data:www-data -R /var/www/nextcloud
3、恢复数据库
恢复用户
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
创建数据库
CREATE DATABASE IF NOT EXISTS nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
授予权限
GRANT ALL PRIVILEGES ON nextcloud.* TO 'username'@'localhost';
刷新权限
FLUSH PRIVILEGES;
恢复数据库
mysql -h server -u username -p password db_name < bakfile.sql
4、配置Nextcloud
启用对应Apache2模块
sudo a2enmod rewrite headers env dir mime
sudo systemctl restart apache2
#启用SSL
a2enmod ssl
按照另一篇文章Nextcloud的Apache2配置写入配置
修改不同位置PHP设置,按照不同需求。根据PHP版本变化修改中间版本号。
/etc/php/7.4/apache2/php.ini
or
/etc/php/7.4/fpm/php.ini
or
/etc/php/7.4/cli/php.ini
修改内容如下
修改/etc/php/7.4/apache2/php.ini
max_execution_time = 3600
max_input_time = 3600
memory_limit = 1024M
upload_max_filesize = 16G
post_max_size = 16G
另外对APCu还需单独启用
#为APache2启用
sudo nano /etc/php/7.4/apache2/conf.d/20-apcu.ini
#加入下列内容
apc.enable_cli=1
为Nextcloud建立定期corn服务
#执行文件
sudo nano /etc/systemd/system/nextcloudcron.service
#写入以下内容
[Unit]
Description=Nextcloud cron.php job
[Service]
User=www-data
ExecStart=/usr/bin/php -f /var/www/nextcloud/cron.php
KillMode=process
#定时触发文件
sudo nano /etc/systemd/system/nextcloudcron.timer
#写入内容
[Unit]
Description=Run Nextcloud cron.php every 5 minutes
[Timer]
OnBootSec=5min
OnUnitActiveSec=5min
Unit=nextcloudcron.service
[Install]
WantedBy=timers.target
#以下列命令立即执行
sudo systemctl daemon-reload
sudo systemctl enable --now nextcloudcron.timer