在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的Web界面。 恭喜! 现在,您可以开始将其用作私有云存储。
使用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。
按下“确定”按钮后,将获得免费的TLS / SSL证书并将其安装在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
从上面的屏幕截图中,我们可以看到它正在运行并且已启用自动启动。 如果由于某种原因它没有运行,请执行以下命令:
sudo systemctl start redis-server
如果未启用引导时自动启动功能,则可以使用以下命令启用它:
sudo systemctl enable redis-server
现在,让我们将Redis配置为nextCloud的缓存。 安装用于与Redis接口的PHP扩展。
sudo apt install php-redis
检查扩展名是否启用。
php --ri 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, ),
保存并关闭文件。 现在再次进入nextCloud管理页面,有关内存缓存的警告应该消失了。
恭喜! 您已使用Apache,MariaDB和PHP7在Ubuntu 16.04 VPS上成功设置NextCloud个人云存储。
总是欢迎提出意见,问题或建议。 与往常一样,如果您发现此帖子有用,请订阅我们的免费新闻通讯。 您也可以在Google +,Twitter或喜欢我们的Facebook页面上关注我们。