步骤 1 - 在 CentOS 7 中安装 Nginx 和 PHP7-FPM
在开始安装 Nginx 和 php7-fpm 之前,我们还学要先添加 EPEL 包的仓库源。使用如下命令:
然后我们还需要为 php7-fpm 添加另外一个仓库。互联网中有很个远程仓库提供了 PHP 7 系列包,我在这里使用的是 webtatic。
然后就是安装 PHP7-FPM 以及 Nextcloud 需要的一些包。
最后,从服务器终端里查看 PHP 的版本号,以便验证 PHP 是否正确安装。
步骤 2 - 配置 PHP7-FPM
在这一个步骤中,我们将配置 php-fpm 与 Nginx 协同运行。Php7-fpm 将使用 nginx
用户来运行,并监听9000
端口。
在第 8 行和第 10行,user
和 group
赋值为 nginx
。
取消第 366-370 行的注释,启用 php-fpm 的系统环境变量。
-
env[HOSTNAME] = $HOSTNAME
-
env[PATH] = /usr/local/bin:/usr/bin:/bin
-
env[TMP] = /tmp
-
env[TMPDIR] = /tmp
-
env[TEMP] = /tmp
下一步,就是在 /var/lib/
目录下创建一个新的文件夹 session
,并将其拥有者变更为 nginx
用户。
然后启动 php-fpm 和 Nginx,并且将它们设置为随开机启动的服务。
-
sudo systemctl start php-fpm
-
sudo systemctl start nginx
-
-
sudo systemctl enable php-fpm
-
sudo systemctl enable nginx
步骤 3 - 安装和配置 MariaDB
我这里使用 MariaDB 作为 Nextcloud 的数据库。可以直接使用 yum
命令从 CentOS 默认远程仓库中安装mariadb-server
包。
-
Set root password? [Y/n] Y
-
New password:
-
Re-enter new password:
-
-
Remove anonymous users? [Y/n] Y
-
Disallow root login remotely? [Y/n] Y
-
Remove test database and access to it? [Y/n] Y
-
Reload privilege tables now? [Y/n] Y
输入 MariaDB 的 root 密码,即可登录 mysql shell。
-
create database nextcloud_db;
-
create user nextclouduser@localhost identified by 'nextclouduser@';
-
grant all privileges on nextcloud_db.* to nextclouduser@localhost identified by 'nextclouduser@';
-
flush privileges;
nextcloud_db
数据库和 nextclouduser
数据库用户创建完成
步骤 4 - 为 Nextcloud 生成一个自签名 SSL 证书
最后使用 chmod
命令将所有证书文件的权限设置为 600
。
步骤 5 - 下载和安装 Nextcloud
我直接使用 wget
命令下载 Nextcloud 到服务器上,因此需要先行安装 wget
。此外,还需要安装 unzip
来进行解压。使用 yum
命令来安装这两个程序。
先进入 /tmp
目录,然后使用 wget
从官网下载最新的 Nextcloud 10。
解压 Nextcloud,并将其移动到 /usr/share/nginx/html/
目录。
下一步,转到 Nginx 的 web 根目录为 Nextcloud 创建一个 data
文件夹。
变更 nextcloud
目录的拥有者为 nginx
用户和组。