什么是 Nextcloud?
Nextcloud 是一套用于建立网络硬盘的客户端和服务器软件。其功能和 Dropbox 相近,但 Nextcloud 是开源的,任何人都可以在自己的服务器上安装并运行它。
虽然 Nextcloud 性能比较弱,但是实际测试下来几个人的小团队用用也足够了。
准备环境
由于 Nextcloud 消耗资源比较大,一般我们不建议在 4GB 内存以下的 VPS 安装,官方推荐配置为 512MB 内存,实际体验下来安装在 8GB 内存上跑 Nextcloud 会比较流畅。
配置 LEMP 环境
首先,配置好 LEMP 环境,在安装 PHP 的时候,请选择 PHP 8.3 以及以下模块:
apt install php8.3-common php8.3-fpm php8.3-mysql php8.3-curl php8.3-gd php8.3-mbstring php8.3-xml php8.3-xmlrpc php8.3-zip php8.3-bz2 php8.3-intl php8.3-ldap php8.3-smbclient php8.3-bcmath php8.3-gmp php8.3-imap php8.3-opcache php8.3-imagick redis-server php8.3-redis -y
这里我们使用了 Redis 作为缓存,所以需要安装 redis-server
和 php8.3-redis
,请不要直接安装 php-redis
,否则系统会默认把所有的 PHP 版本都给你安装一遍哦。
优化 PHP-FPM 设置
由于默认的 PHP-FPM 设置只适合小型应用,不适合 Nextcloud 这种消耗资源比较大的程序,所以我们可以修改如下参数,这里的例子是你想设置最大上传的文件为 10GB:
sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/8.3/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 10240M/' /etc/php/8.3/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 10240M/' /etc/php/8.3/fpm/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 512M/' /etc/php/8.3/fpm/php.ini
sed -i 's/#opcache.interned_strings_buffer=8/opcache.interned_strings_buffer=16/' /etc/php/8.3/fpm/php.ini
sed -i 's/;listen.mode = 0660/listen.mode = 0660/' /etc/php/8.3/fpm/pool.d/www.conf
sed -i 's/pm.max_children = 5/pm.max_children = 20/' /etc/php/8.3/fpm/pool.d/www.conf
sed -i 's/pm.start_servers = 2/pm.start_servers = 4/' /etc/php/8.3/fpm/pool.d/www.conf
sed -i 's/pm.min_spare_servers = 1/pm.min_spare_servers = 2/' /etc/php/8.3/fpm/pool.d/www.conf
sed -i 's/pm.max_spare_servers = 3/pm.max_spare_servers = 8/' /etc/php/8.3/fpm/pool.d/www.conf
sed -i 's/;clear_env = no/clear_env = no/' /etc/php/8.3/fpm/pool.d/www.conf
具体配置可以参考官网教程。
然后我们重启 PHP-FPM 生效:
systemctl restart php8.3-fpm.service
配置 Nginx
我们假设你的 Nextcloud 需要安装在 /var/www/nextcloud
目录,配置的域名是 cloud.example.com
,证书文件位于 /etc/nginx/ssl/cloud.example.com.crt
,证书私钥位于 /etc/nginx/ssl/cloud.example.com.key
,那么我们直接参考官网上的