openSUSE官方存储库里已经为我们打包好了一个nextcloud的全家桶,基于LAMP环境,如果你要安装的话只需要一条命令即可完成:
sudo zypper in nextcloud
我们只需要再装一个opcache即可,这是优化nextcloud所需,这个包不知道为啥不当作nextcloud的依赖,不知道是不是漏掉了:
sudo zypper in php7-opcache
如果在后续需要配置SSL,你还可以安装certbot的apache插件:
sudo zypper in python3-certbot-apache
提示:
1.建议安装nextcloud的机器内存要有2GB。
2.这个软件包基于LAMP环境,它会自动帮你安装apache/mariadb/php,如果你的系统内装了nginx,需要停止掉。
3.建议只在tumbleweed版本上操作,leap的话不推荐用这个方法。因为leap的软件包较旧,你可能无法及时获取到nextcloud的更新和最新版,还是去nextcloud官网自己下压缩包安装比较好。
接下来我们只需要简单的对LAMP环境进行配置即可,首先把服务都启动,启动apache:
sudo systemctl start apache2 sudo systemctl enable apache2
启动mariadb:
sudo systemctl start mariadb sudo systemctl enable mariadb
如果你是初次安装mariadb需要执行下面的命令进行一番配置:
sudo mysql_secure_installation
登录mariadb:
mysql -u root -p
创建一个名为nextcloud的数据库和用户并设置用户密码:
CREATE DATABASE nextcloud CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; GRANT ALL PRIVILEGES ON nextcloud.* TO nextcloud@localhost IDENTIFIED BY '设置你的用户密码'; FLUSH PRIVILEGES; quit
接下来配置apache,首先启用一些所需的mod:
sudo a2enmod php7 sudo a2enmod rewrite
这里的apache是使用的mod_php,如果你要apache使用php-fpm的话需要额外配置,这里不细说。只是提醒一下,如果你安装了nginx并启用了php-fpm不会影响到这里的apache,因为mod_php和php-fpm根本不是一个东西。你只需要注意nginx不要把80/443端口占用了就行。
新建一个虚拟主机配置文件:
sudo nano /etc/apache2/vhosts.d/nextcloud.conf
写入如下配置即可:
<VirtualHost *:80> ServerName cloud.imlala.best DocumentRoot /srv/www/htdocs/nextcloud </VirtualHost>
重启apache:
sudo systemctl restart apache2
访问你的域名开始安装:
到这里安装好后,如果你不打算继续配置一些优化的东西那么就可以拿来用了。
但是你要知道nextcloud这货就是个非常臃肿的东西,不优化好的话后面使用起来各种卡。所以建议还是麻烦一下把下面的这些步骤走一走。
首先在设置-基本设置-后台任务这里把它改为cron:
然后启用nextcloud的systemd定时器即可:
sudo systemctl enable --now nextcloud-cron.timer
这个定时器也是nextcloud这个官方软件包为我们提供的,默认5分钟执行一次,你可以查看运行状态,确保它在正常工作:
sudo systemctl status nextcloud-cron.timer
启用漂亮的URL(去掉地址中的index.php)
首先把.htaccess的所属用户和组改下,不然后续occ没有权限改动这个文件:
sudo chown -R wwwrun:www /srv/www/htdocs/nextcloud/.htaccess
编辑nextcloud的配置文件:
sudo -u wwwrun nano /srv/www/htdocs/nextcloud/config/config.php
加入如下配置:
'htaccess.RewriteBase' => '/',
默认情况下php7-apcu已经安装好了,所以你还可以在这里加上APCu的缓存配置:
'memcache.local' => '\OC\Memcache\APCu',
运行occ更新.htaccess:
sudo -u wwwrun php /srv/www/htdocs/nextcloud/occ maintenance:update:htaccess
最后编辑php.ini,配置一下opcache和php内存限制:
sudo nano /etc/php7/apache2/php.ini
需要改动的地方:
memory_limit = 512M opcache.enable=1 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=10000 opcache.memory_consumption=128 opcache.save_comments=1 opcache.revalidate_freq=1
重启apache使其生效:
sudo systemctl restart apache2
签发SSL证书,整个过程是全自动的,不需要人工干预:
sudo certbot --apache
以上是在openSUSE上搭建nextcloud的整个过程,后续你在使用了一段时间后会发现单独拿nextcloud这个程序来说的话,apache其实比nginx好用。
而openSUSE更是人性化,直接提供了全家桶方便安装(吹一波,让更多的人入坑)
像我拿openSUSE做桌面环境的话,不仅服务端,连客户端都准备好了,要安装也是zypper一把梭:
sudo zypper in nextcloud-desktop nextcloud-desktop-lang