在Ubuntu 16.04上使用Apache,MariaDB和PHP7设置NextCloud Server

NextCloud 11已经发布! 它是ownCloud的替代产品。 在本教程中,我们将研究如何在具有Apache,MariaDB和PHP7的Ubuntu 16.04 VPS上设置NextCloud个人云存储。

NextCloud和ownCloud之间的区别

NextCloud是开源ownCloud的分支。 主要区别在于:

  • 它是100%开源的。 包括企业部分在内的所有功能都是开源的。 NextCloud收取支持费用,而不是销售企业产品。
  • 它比ownCloud更重视社区。

先决条件

要遵循本教程,您将需要:

  • Ubuntu 16.04服务器。 通过此注册链接,您可以在Digital Ocean VPS上获得10美元的免费信用。
  • 域名
  • 在Ubuntu 16.04上安装的LAMP堆栈。 您可以查看此易于遵循的指南。 在Ubuntu 16.04 LTS上安装Apache,MariaDB和PHP7(LAMP堆栈)

完成上述先决条件后,请回到此处继续阅读。

步骤1:在Ubuntu 16.04上安装NextCloud 11 Server

将NextCloud服务器zip存档下载到您的服务器上。 在撰写本文时,最新的稳定版本是11.0.1。 您可能需要更改版本号。 去 https://nextcloud.com/install 然后单击下载按钮以签出最新版本。

wget https://download.nextcloud.com/server/releases/nextcloud-11.0.1.zip

提取它。

sudo apt install unzip

unzip nextcloud-11.0.1.zip

新目录名为 nextcloud 将在当前工作目录中创建。 将新目录及其所有内容复制到Apache服务器的文档根目录。

sudo cp -r nextcloud /var/www/

然后,您还需要授予Apache用户(www-data)的写许可权。

sudo chown www-data:www-data /var/www/nextcloud/ -R

步骤2:在MariaDB中创建数据库和用户

使用以下命令登录MariaDB数据库服务器:

mysql -u root -p

然后为Nextcloud创建数据库。 本教程将数据库命名为nextcloud。 您可以使用任何喜欢的名称。

create database nextcloud;

创建数据库用户。 同样,您可以为该用户使用您的首选名称。 用您的首选密码替换您的密码。

create user [email protected] identified by 'your-password';

授予该用户所有的权限 nextcloud 数据库。

grant all privileges on nextcloud.* to [email protected] identified by 'your-password';

刷新特权并退出。

flush privileges;

exit;

步骤3:在MariaDB中启用二进制日志记录

编辑mysqld配置文件。

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

在下面添加以下三行 [mysqld] 部分。

log-bin        = /var/log/mysql/mariadb-bin
log-bin-index  = /var/log/mysql/mariadb-bin.index
binlog_format  = mixed

二进制日志的格式必须混合。 保存并关闭文件。 然后重新启动MariaDB服务。

sudo systemctl restart mysql

现在,在MariaDB中启用了二进制日志。

步骤4:为Nextcloud创建Apache虚拟主机文件

我们将创建一个 nextcloud.conf/etc/apache2/sites-available 目录。

sudo nano /etc/apache2/sites-available/nextcloud.conf

将以下行复制并粘贴到文件中。 将红色文本替换为您的实际域名。 您还需要将域名指向DNS中Ubuntu服务器的IP地址。

<VirtualHost *:80>
 DocumentRoot "/var/www/nextcloud"
 ServerName nextcloud.your-domain.com

 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined

<Directory /var/www/nextcloud/>
 Options +FollowSymlinks
 AllowOverride All

 <IfModule mod_dav.c>
 Dav off
 </IfModule>

 SetEnv HOME /var/www/nextcloud
 SetEnv HTTP_HOME /var/www/nextcloud
 Satisfy Any

</Directory>

</VirtualHost>

保存并关闭文件。 然后创建一个指向/ etc / apache2 / sites-enabled /的符号链接

sudo ln -s /etc/apache2/sites-available/nextcloud.conf /etc/apache2/sites-enabled/nextcloud.conf

启用以下Apache模块。

sudo a2enmod rewrite headers env dir mime setenvif ssl

安装所需的PHP模块

sudo apt install php7.0-common php7.0-gd php7.0-json php7.0-curl  php7.0-zip php7.0-xml php7.0-mbstring

重新启动Apache,以便加载上述Apache和PHP模块。

sudo systemctl restart apache2

步骤5:在Web浏览器中完成安装

现在,在您的Web浏览器中,输入您的域名。 例如

nextcloud.your-domain.com

系统将要求您创建一个管理员帐户。 数据文件夹是存储用户文件的位置。 为了安全起见,最好将数据目录放置在Nextcloud Web根目录之外,例如 / var / www / nextcloud-data。 可以使用以下命令创建:

sudo mkdir /var/www/nextcloud-data/

然后确保Apache用户(www-data)具有对数据目录的写入权限。

sudo chown www-data:www-data /var/www/nextcloud-data -R

如果您担心用户名和密码嗅探,则可以首先启用HTTPS(请参阅以下步骤),然后输入用户名,密码和数据库详细信息。

然后输入您先前创建的数据库用户名,数据库名称和密码,以将Nextcloud连接到MariaDB数据库。

nextcloud Ubuntu 16.04

完成后,您将看到Nextcloud的Web界面。 恭喜! 现在,您可以开始将其用作私有云存储。

Nextcloud灯泡

使用HTTPS保护它

如果您在本地计算机上安装了nextCloud,请跳过此步骤。

HTTPS帮助我们防止中间人攻击和密码嗅探。 我们可以从Let’s Encrypt CA获得免费的TLS / SSL证书。 首先,让我们安装certbot客户端。 客户端仍被命名 letsnecrypt 在Ubuntu存储库中。 以下命令将安装客户端和apache插件。

sudo apt install letsencrypt python-letsencrypt-apache

现在发出以下命令以获得免费的TLS / SSL证书。 将红色文本替换为您的实际数据。

sudo letsencrypt --apache --agree-tos --email your-email-address -d nextcloud.your-domain.com

系统会要求您选择简单或安全。 建议选择安全,以便将所有http请求都重定向到https。

让我们加密apache

按下“确定”按钮后,将获得免费的TLS / SSL证书并将其安装在Apache服务器上。

让我们自动加密apache

现在再次访问您的Nextcloud网站。 您会看到它已自动重定向到https。

默认情况下,Apache SSL配置未添加HSTS安全标头。 要添加HSTS标头,请编辑SSL配置文件。

sudo nano /etc/apache2/sites-available/nextcloud-le-ssl.conf

将以下行粘贴到文件中 SSLCertificateKeyFile 线。

<IfModule mod_headers.c>
     Header always set Strict-Transport-Security "max-age=15768000; preload"
 </IfModule>

保存并关闭文件。 然后重新加载Apache。

sudo systemctl reload apache2

Linux桌面客户端

您可以使用以下命令从官方PPA在Ubuntu 16.04 / Ubuntu 17.10上安装NextCloud桌面客户端。

sudo add-apt-repository ppa:nextcloud-devs/client

sudo apt update

sudo apt install nextcloud-client

如果您使用的是Gnome桌面环境,则只需转到 设定值 > 网上账户 > NextCloud(ownCloud) 进行设置。 您还可以通过WebDAV轻松访问Nextcloud文件。

为nextCloud配置Redis缓存

注意:Redis缓存是可选的。 您可以安全地跳过此部分。

如果转到nextCloud管理页面,则可能会看到以下警告:

No memory cache has been configured. To enhance your performance please configure a memcache if available.

我们将通过使用Redis为nextCloud启用内存缓存。 从Ubuntu 16.04存储库安装Redis服务器。

sudo apt install redis-server

您可以使用以下方法检查版本:

redis-server -v

样本输出:

Redis server v=3.0.6 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=687a2a319020fa42

现在我们可以检查redis服务器是否正在运行。

systemctl status redis

ubuntu-16.04-redis-server-nextcloud缓存

从上面的屏幕截图中,我们可以看到它正在运行并且已启用自动启动。 如果由于某种原因它没有运行,请执行以下命令:

sudo systemctl start redis-server

如果未启用引导时自动启动功能,则可以使用以下命令启用它:

sudo systemctl enable redis-server

现在,让我们将Redis配置为nextCloud的缓存。 安装用于与Redis接口的PHP扩展。

sudo apt install php-redis

检查扩展名是否启用。

php --ri redis

ubuntu 16.04 php7 redis扩展

我们可以看到Redis扩展已启用,版本为2.2.8,高于nextCloud要求的2.2.5+。 您可能需要通过重新启动Apache来手动启用Redis扩展

sudo systemctl restart apache2

或通过运行以下命令:

sudo phpenmod redis

接下来,编辑nextCloud配置文件。

sudo nano /var/www/nextcloud/config/config.php

将以下行添加到 ); 线。

'memcache.distributed' => 'OCMemcacheRedis',
'memcache.local' => 'OCMemcacheRedis',
'memcache.locking' => 'OCMemcacheRedis',
'redis' => array(
     'host' => 'localhost',
     'port' => 6379,
     ),

Ubuntu 16.04 Redis缓存nextcloud

保存并关闭文件。 现在再次进入nextCloud管理页面,有关内存缓存的警告应该消失了。

恭喜! 您已使用Apache,MariaDB和PHP7在Ubuntu 16.04 VPS上成功设置NextCloud个人云存储。

总是欢迎提出意见,问题或建议。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 您也可以在Google +,Twitter或喜欢我们的Facebook页面上关注我们。

Sidebar