在CentOS 7上安装带有 Lets Encrypt SSL的Nextcloud 18
如何在CentOS 7 Linux上安装Nextcloud 18?本指南将引导我们完成在CentOS 7上使用PHP 7.3,Apache和MariaDB 10.4安装Nextcloud 18的过程。我们可以选择使用Lets Encrypt配置SSL加密,以确保通过安全隧道传输访问和数据。
对于Ubuntu/Debian,请检查:如何在Ubuntu/Debian上安装Nextcloud
Nextcloud是一个开源的由seft托管的同步和文件共享服务器,由ownCloud分叉。它用PHP和JavaScript编写,并支持MySQL,PostgreSQL,SQLite和Oracle数据库。
使用Lets Encrypt SSL在CentOS 7上安装NextCloud
Nextcloud提供了适用于Windows,Linux,macOS,Android和iOS的客户端应用程序,用于在桌面和Nextcloud文件服务器之间同步文件。它还具有一个现代且易于使用的Web界面,使我们可以从Web浏览器访问文件。
请按照本文提供的步骤在CentOS 7服务器上安装和配置Nextcloud。它可以是全新安装的服务器,也可以是具有正在运行的应用程序的服务器,前提是我们可以满足前提条件和必需的依赖性。
禁用SELinux或者进入许可模式
考虑禁用SELinux以获得流畅的操作:
sudo setenforce 0 sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
安装PHP和httpd
我们要求PHP和Apache在CentOS 7上运行Nextcloud。对于PHP,我们将使用PHP 7.3,因为它是可用于CentOS 7的最新稳定PHP版本。在Remi存储库中可用,需要在安装之前添加。
sudo yum -y install epel-release yum-utils sudo yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
禁用默认启用PHP 5.x的存储库,并为PHP 7.3启用一个:
sudo yum-config-manager --disable remi-php54 sudo yum-config-manager --enable remi-php73
然后安装Apache和PHP软件包:
sudo yum -y install vim httpd php php-cli php-mysqlnd php-zip php-devel php-gd php-mcrypt php-mbstring php-curl php-xml php-pear php-bcmath php-json php-pdo php-pecl-apcu php-pecl-apcu-devel
确认PHP版本
$php -v PHP 7.3.1 (cli) (built: Jan 8 2019 13:55:51) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.3.1, Copyright (c) 1998-2016 Zend Technologies
安装和配置MariaDB/MySQL
使用我们之前的指南在CentOS 7上安装MariaDB/MySQL数据库服务器。选择一个,推荐的是MariaDB。
在Ubuntu 18.04和CentOS 7上安装MariaDB 10.x
安装后,以root用户身份登录MySQL控制台并为Nextcloud创建一个新数据库。
$mysql -u root -p CREATE USER 'nextcloud'@'localhost' IDENTIFIED BY "StrongPassword"; CREATE DATABASE nextcloud; GRANT ALL PRIVILEGES ON nextcloud.* TO 'nextcloud'@'localhost'; FLUSH PRIVILEGES; QUIT
在CentOS 7上下载并安装Nextcloud
下载最新版本的Nextcloud:
sudo yum -y install wget unzip wget https://download.nextcloud.com/server/releases/latest-18.zip
解压缩下载的文件:
unzip latest-18.zip rm -f latest-18.zip
将生成的" nextcloud"文件夹移至"/var/www/html"目录。
sudo mv nextcloud//var/www/html/
创建数据目录以存储Nextcloud上传的文件。这可以是任何路径,例如NFS挂载点,SAN挂载点等。
sudo mkdir /var/www/html/nextcloud/data sudo chown apache:apache -R /var/www/html/nextcloud/data
给apache用户并分组nextcloud文件夹的所有权。
sudo chown apache:apache -R /var/www/html/nextcloud
在没有SSL的情况下配置Apache VirtualHost
现在为Nextcloud创建一个Apache配置文件。
sudo vim /etc/httpd/conf.d/nextcloud.conf
将以下内容粘贴到文件中。
<VirtualHost *:80> ServerName files.example.com ServerAdmin theitroad@localhost DocumentRoot /var/www/html/nextcloud <directory /var/www/html/nextcloud> Require all granted AllowOverride All Options FollowSymLinks MultiViews SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud </directory> </VirtualHost>
设置正确的ServerName
并更改其他设置以适合使用。完成后,保存文件并启动httpd服务。
sudo systemctl enable --now httpd sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?" sudo sudo restorecon -Rv /var/www/html
配置防火墙:
如果我们有活动的firewalld服务,请允许使用http和https端口。
sudo firewall-cmd --add-service={http,https} --permanent sudo firewall-cmd --reload
使用Lets Encrypt SSL配置Apache
要使用Lets Encrypt SSL证书,请先安装certbot
wget https://dl.eff.org/certbot-auto chmod a+x certbot-auto sudo mv certbot-auto /usr/local/bin
然后请求SSL证书。
export DOMAIN="files.example.com" export EMAIL="theitroad@localhost" certbot-auto certonly --standalone -d $DOMAIN --preferred-challenges http --agree-tos -n -m $EMAIL --keep-until-expiring
修改VirtualHost配置文件,如下所示。
<VirtualHost *:80> ServerName files.example.com ServerAdmin theitroad@localhost RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$https://%{HTTP_HOST} [R=301,L] </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerName files.example.com ServerAdmin theitroad@localhost DocumentRoot /var/www/html/nextcloud <directory /var/www/html/nextcloud> Require all granted AllowOverride All Options FollowSymLinks MultiViews SetEnv HOME /var/www/html/nextcloud SetEnv HTTP_HOME /var/www/html/nextcloud </directory> SSLEngine on SSLCertificateFile /etc/letsencrypt/live/files.example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/files.example.com/privkey.pem </VirtualHost> </IfModule>
访问Nextcloud UI并完成安装
打开在Apache上配置的nextcloud服务器URL:http://files.example.com。
在首页上创建管理员帐户。
提供管理员用户名和密码。还配置MySQL/MariaDB数据库。
完成后,单击完成设置按钮。我们应该获得Nextcloud的"文件"仪表板。现在,在终端设备上安装Nextcloud Agent,以开始同步文件。