简述
Nextcloud 可以安装在各种主流的 linux 服务器上,支持最好的是 Ubuntu 和 CentOS,而且有些 VPS 提供直接安装 Nextcloud 的选项,比如 vultr.com。如果你的 VPS 提供商有直接安装的模板,直接使用就好了,但是国内的阿里云、腾讯云什么的都没有免费的模板使用,所以只好自己折腾了。
本文使用官网提供的 php 脚本安装模式,这种模式简单来说就是:准备好 LAPM 环境,让 Nextcloud 自己装自己吧。LAPM 完全可以替换成别的 PHP 运行框架,只要有 PHP 和 MySql/MariaDB 就行。
准备环境
Ubuntu 18.04
操作系统的安装就不详细说了,使用 VPS 提供的就好,注意版本号 18.04。
Apache2
直接 apt-get 安装
sudo apt-get install apache2
MariaDB 10.4
Ubuntu 默认的版本没有这么高,需要特殊安装,可以在这个网页上选择和查看,直接点击链接就是下面的命令出处:https://downloads.mariadb.org/mariadb/repositories/#distro=Ubuntu&distro_release=bionic--ubuntu_bionic&mirror=tuna&version=10.4
需要选择合适的 mirror,否则太慢,服务器在北京可以选择清华的镜像,很快。
sudo apt-get install software-properties-common
sudo apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirrors.tuna.tsinghua.edu.cn/mariadb/repo/10.4/ubuntu bionic main'
sudo apt update
sudo apt install mariadb-server
安装完成后需要执行初始化脚本
sudo mysql_secure_installation
这个脚本会交互式地问一些问题,刚开始会要求验证 root 密码,第一次运行不需要直接回车即可,然后是设置 root 密码,后面再问的问题直接都选 yes 就行了。
然后创建 nextcloud 运行时需要的数据库,进入 mysql
sudo mysql -u root -p
执行以下命令,注意替换成你自己密码,这个密码要记住后面用:
CREATE DATABASE nextcloud;
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' IDENTIFIED BY '这里替换成你的密码';
FLUSH PRIVILEGES;
PHP 7.4
同样 Ubuntu 默认的版本没有这么高,需要特殊安装:
sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
Nextcloud 需要的 PHP 模块,可参考这个网页:https://docs.nextcloud.com/server/19/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
下面将需要的 php 模块都列出来了,直接复制执行就行了
sudo apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring
sudo apt-get install php7.4-common php7.4-curl php7.4-xml php7.4-JSON
sudo apt-get install php7.4-SimpleXML php7.4-XMLReader php7.4-XMLWriter
sudo apt-get install php7.4-zip php7.4-fileinfo
sudo apt-get install php7.4-bz2 php7.4-intl
sudo apt-get install php7.4-imagick
整合 php 和 apache,不需要自己配置,安装好这个模块就可以了
sudo apt-get install libapache2-mod-php7.0
装完可以看下 php 版本
php -v
生成 phpinfo.php 测试 php 能否正确运行
sudo echo "<?php echo phpinfo();?>" > /var/www/html/phpinfo.php
重启 apache
sudo service apache2 restart
假设服务器 IP 是 192.168.1.233,浏览器访问 http://192.168.1.233/phpinfo.php 测试 php,没有问题就可以开始安装 nextcloud 了。
Nextcloud
目录权限
先修改网站根目录权限,否则 php 脚本无法创建目录
sudo chmod 777 /var/www/html
PHP 安装脚本
下载 https://download.nextcloud.com/server/installer/setup-nextcloud.php 到服务器 /var/www/html/ 下
cd /var/www/html
sudo wget https://download.nextcloud.com/server/installer/setup-nextcloud.php
假设服务器 IP 是 192.168.1.233,浏览器访问 http://192.168.1.233/setup-nextcloud.php 出现 nextcloud 安装界面说明可以开始安装了。
这个脚本会先检查环境是否可以安装,按照前面的方法安装,这一步应该是 OK 的不用做额外的工作。然后会设置一个目录名称,设置为默认的 nextcloud 就可以。
然后不要着急开始安装,因为点击安装后,首先脚本会自动下载最新版本的 nextcloud 安装包,但在国内的服务器下载比较慢。可以先尝试一下点击安装,并在 shell 中监控下载的 nc.zip 包的大小变化,nc.zip 文件一共有 100M 多一些,如果太慢可以考虑在本地用下载工具下载好再传到服务器上。当然,如果很快就下载好可以跳过下面的步骤。
手动下载 nextcloud 安装包
下载 https://download.nextcloud.com/server/releases/latest.zip,并重命名为 nc.zip
,上传到服务器的 /var/www/html/
目录中。
假设服务器 IP 是 192.168.1.233
scp nc.zip root@192.168.1.233:/var/www/html/
然后在网页上点击安装,脚本会解压安装包,然后进入配置界面。
配置参数
- Nextcloud 管理员用户名密码:这个就是以后日常使用的管理账号,如果只是自己用不想折腾,一直用这个号也可以。
- 数据库设置
- 数据库名称:nextcloud
- 数据库用户名:nextcloud
- 该用户名密码:<这里替换成你的密码>
- 数据库地址:localhost:3306,注意需要添加端口号,MariaDB 默认端口号 3306。
其实就是创建 nextcloud 数据库的脚本里的 4 个信息:
CREATE DATABASE nextcloud; # <- 数据库名称
GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost' # 用户名 nextcloud @ 地址 localhost
IDENTIFIED BY '这里替换成你的密码'; # 密码
然后点击最下面的按钮就可以等待了,安装完成后会自动进入 nextcloud 界面,就可以开始用啦。
后续
还可以购买域名,配置 SSL 证书启用 https 访问,这个以后有机会再说啦。