#安装Nextcloud
👉Apache安装设置
sudo apt update
安装apache:
apt-get install apache2
安装PHP和Apache PHP模块:
sudo apt install php libapache2-mod-php
安装完软件包后,请重新启动Apache以加载PHP模块:
sudo systemctl restart apache2
测试配置文件语法:
sudo apachectl configtest
重新加载apache2
systemctl reload apache2
a2enconf/a2disconf 命令启用或关闭一个配置文件:
示例:
启用已创建站点配置文件:
a2ensite default-ssl.conf
关闭已创建的站点配置文件:
a2disconf default-ssl.conf
👉配置PHP.ini文件:
修改上传限制、执行超时限制、内存限制等
文件路径:/etc/php/8.1/apache2/php.ini
主要修改项:
; output_buffering = 4096
max_execution_time = 600
default_socket_timeout = 600
upload_max_filesize = 2048M
memory_limit = 2048M
post_max_size = 8192M
修改完成后重新启动Apache以加载PHP模块:
sudo systemctl restart apache2
👉系统启用APCu:
修改/etc/php/8.1/apache2/conf.d/20-apcu.ini文件
在文件中末尾添加 :
apc.enable_cli=1
重启php:
sudo systemctl restart apache2
👉Redis安装
sudo apt-get install redis #安装
sudo systemctl enable --now redis-server #允许开机启动
sudo systemctl restart redis-server #重启
sudo apt remove --autoremove redis-server -y #卸载
👉数据库安装
数据库部分配置详安装mariadb数据库
安装mariadb
apt install mariadb-server
初始化数据库
mysql_secure_installation
Enter current password for root (enter for none):(设置数据库root密码)
Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
命令行登录数据库
mysql -uroot -p
输入数据库root用户密码成功登录后,建立一个新的用户,并给予最大的权限:
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' WITH GRANT OPTION;
创建数据库,登录:
mysql -uroot -p
新建nextcloud 格式utf8mb4的数据库:(删除数据库执行:DROP DATABASE nextcloud;)
create database nextcloud default character set utf8mb4 collate utf8mb4_bin;
刷新权限:
FLUSH PRIVILEGES;
退出:
quit;
二、开始安装Nextcloud
👉从nextcloud 获取Nextcloud latest.zip程序文件并上传程序至站点指定目录
cd /var/www
wget https://download.nextcloud.com/server/releases/latest.zip
👉解压程序:
cd /var/www
unzip latest.zip
👉设置目录权限:
chmod -R 777 /var/www/nextcloud
👉安装必要依赖 :
sudo apt-get install php-zip php-gd php-curl php-intl php-gmp php-memcached php-apcu php-bcmath php-redis php-mysqli php-imagick php-dom php-xmlwriter php-xmlreader php-mbstring php-simplexml
启用SVG支持 :
apt install libmagickcore-6.q16-6-extra
启用ffmpeg解码器支持
apt install ffmpeg
👉安装完软件包后,请重新启动Apache以加载PHP模块:
sudo systemctl restart apache2
<VirtualHost *:80>
DocumentRoot /var/www/nextcloud/
ServerName your.server.com
<Directory /var/www/nextcloud/>
Require all granted
AllowOverride All
Options FollowSymLinks MultiViews
<IfModule mod_dav.c>
Dav off
</IfModule>
</Directory>
</VirtualHost>
👉进入your.server.com按引导页面进行初始化安装,安装完成后继续下一步,
👉创建定时任务
方式一:
创建指定用户并执行,www-data为网页服务器的用户,SSH连接服务器后,输入:
crontab -u www-data -e
创建一个Cron任务,输入下列内容并保存: */5 * * * * php -f /var/www/nextcloud/cron.php
查看定时任务列表:
crontab -u www-data -l
回显 含以下写入内容即为成功 */5 * * * * php -f /var/www/nextcloud/cron.php方式二:
root权限直接指定用户执行,SSH连接服务器后,输入:
crontab -e
创建一个Cron任务,并使用正则表达式:*/5 * * * * sudo -u www-data php /var/www/nextcloud/cron.php
保存即可。👉设置区域为CN
在nextcloud config.php文件配置,【 ); 前】添加以下行数
'default_phone_region' => 'CN',
👉设置允许访问的链接地址
'trusted_domains' =>
array (
0 => 'abc.com:444',
1 => '192.168.0.5:444',
),
优化图片或视频缩略图加载缓慢或者无法显示的问题
nextcloud的配置文件中添加APCu设置,修改/var/www/nextcloud/config/config.php文件
在文件中末尾【 ); 前】添加 :
'enable_previews' => true,
'enabledPreviewProviders' =>
array (
0 => 'OC\\Preview\\PNG',
1 => 'OC\\Preview\\JPEG',
2 => 'OC\\Preview\\GIF',
3 => 'OC\\Preview\\HEIC',
4 => 'OC\\Preview\\BMP',
5 => 'OC\\Preview\\XBitmap',
6 => 'OC\\Preview\\MP3',
7 => 'OC\\Preview\\TXT',
8 => 'OC\\Preview\\MarkDown',
9 => 'OC\\Preview\\Movie',
10 => 'OC\\Preview\\MKV',
11 => 'OC\\Preview\\MP4',
12 => 'OC\\Preview\\AVI',
13 => 'OC\\Preview\\Photoshop',
14 => 'OC\\Preview\\TIFF',
15 => 'OC\\Preview\\SVG',
),
启用APCu本地缓存(推荐选项):
nextcloud的配置文件中添加APCu设置,修改/var/www/nextcloud/config/config.php文件
在文件中末尾【 ); 前】添加 :
'memcache.local' => '\OC\Memcache\APCu',
启用Redis缓存:
打开/config.php指定使用Redis作为缓存,【 ); 前】添加(推荐选项)
👉Nextcloud中启用外部储存插件,加载NTFS格式硬盘,手动给nextcloud的配置文件中添加设置,打开/config.php,手动给nextcloud的配置文件中添加设置(关闭数据目录的权限检查,消除错误提示)
'filelocking.enabled' => true,
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
'timeout' => 0.0,
'password' => '', // Optional, if not defined no password will be used.
),
自动清理缓存文件,在Nextcloud文档中发现,通过修改trashbin_retention_obligation参数为'auto,D'可自动清理超过D天的trashbin
打开/config.php【 ); 前】添加(推荐选项)
'trashbin_retention_obligation' => 'auto,3',
auto,3即为超过3天自动清理,保存后等待下一次Cron生效
启用Memcached缓存(可选项):
打开/config.php【 ); 前】添加(可选选项)
'memcache.distributed' => '\\OC\\Memcache\\Memcached',
'memcached_servers' => array(
array('localhost', 11211),
),👉Nextcloud中启用外部储存插件,加载NTFS格式硬盘,手动给nextcloud的配置文件中添加设置,打开/config.php,手动给nextcloud的配置文件中添加设置(关闭数据目录的权限检查,消除错误提示)
'check_data_directory_permissions' => false,
👉上传速度优化:
为了在具有高上传带宽的环境中提高上传性能,可以调整服务器的上传区块大小:
定位到nextcloud程序目录
cd /var/www/nextcloud
设置值为 524288000 (500 MiB)执行:
sudo -u www-data php occ config:app:set files max_chunk_size --value 524288000
设置为完全没有分块 --value 0,执行:
sudo -u www-data php occ config:app:set files max_chunk_size --value 0
默认值为 10485760 (10 MiB)执行:
sudo -u www-data php occ config:app:set files max_chunk_size --value 10485760
👉手动刷新文件列表
定位到nextcloud程序目录
cd /var/www/nextcloud
刷新文件索引,终端执行
sudo -u www-data php occ files:scan --all --quiet
👉数据库整理修复
索引修复
sudo -u www-data php occ db:convert-filecache-bigint
sudo -u www-data php occ db:add-missing-indices
整形修复
sudo -u www-data php occ db:add-missing-indices
更新.htaccess文件(Apache适用)
sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess
👉使用软链接更改数据目录的实际位置,
【 /mnt/Data/admin(真实目录) /var/www/nextcloud/data(软连接目录)】
ln -s /mnt/Data/admin /var/www/nextcloud/data
👉目录下的所有文件与子目录执行相同的权限变更:
chmod -R 777 /home/wwwroot
chmod -R 777 /media/user/93d8f11a-0823-46e2-bde4-0b545de7a180
👉目录下的所有文件与子目录执行相同的所有者变更:
chown -R www-data:www-data /var/www/nextcloud
chown -R www-data:www-data /media/user/
👉清理运行日志:
rm /var/www/nextcloud/data/nextcloud.log
👉Nginx安装环境变量设置,需要打开/etc/php/8.x/fpm/php-fpm.conf,在其尾部添加一行
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin