腾讯云服务器搭建NextCloud云盘[通俗易懂]

腾讯云服务器搭建NextCloud云盘[通俗易懂]初衷我相信每个人都想要创造一点个人的小空间,存放某种东西(你懂的)。为了达到这个目的,顺便学习一下服务器的搭建,折腾了几天,终于算是搞定了,便记录如下。一准备思路:使用腾讯云服务器,部署LAMP。其实使用本地的电脑也是可以的,只是为了方便跨局域网访问,因为还没有学会如何绑定域名,如何用Nginx穿透局域网,所以只能借助别人的方便了。购买云服务器,略;给云服务器…

大家好,又见面了,我是你们的朋友全栈君。

初衷
我相信每个人都想要创造一点个人的小空间,存放某种东西(你懂的)。
为了达到这个目的,顺便学习一下服务器的搭建,折腾了几天,终于算是搞定了,便记录如下。

一 准备

思路:使用腾讯云服务器,部署LAMP。其实使用本地的电脑也是可以的,只是为了方便跨局域网访问,因为还没有学会如何绑定域名,如何用Nginx穿透局域网,所以只能借助别人的方便了。

购买云服务器,略;

给云服务器安装Ubuntu16的操作系统;

更新一下软件源,一路往下即可;

sudo apt-get update
sudo apt-get upgrade

这时候你可能会发现腾讯云的网页终端会在一定的时候后掉线,很是烦躁。更新一半掉线,就更麻烦了,会出现很多线程报错。为根除这个问题,我尝试了N种修改SSH配置的方法,都不尽人意。最终找到了最简单粗暴的方法,用putty软件远程终端,利用软件上的配置,定时发送心跳维持终端不掉线。这个方法彻底解决掉线的问题。

配置putty软件;
在这里插入图片描述
1 填写腾讯云服务器的公网IP跟端口。IP是腾讯分配的,端口是安装系统时自己设定的。
2 选择SSH连接方式。系统默认安装并开启SSH服务端,不用我们自己安装。
3 (切换左边的配置内容选项)填写心跳间隔时间,单位秒。
4 (切换回最初配置内容)填写该配置的名称,方便下次不用重新配置。
5 保存该配置。下次进入putty直接双击框中的名称,自动连接。

如果你先选择putty连接,那么更新软件源的时候,就不用担心会掉线了。

二 部署LAMP服务器

安装Apache2

sudo apt install -y apache2 apache2-utils

安装php

sudo apt-get install php

安装php插件

sudo apt install -y php7.0-gd php7.0-json php7.0-mysql php7.0-curl php7.0-mbstring php7.0-intl php7.0-mcrypt php-imagick php7.0-xml php7.0-zip

安装Mysql
装完会提示输入管理员密码(数据库的管理员帐号为root,不是ubuntu的root),用于登入数据库。

sudo apt-get install mysql-server

三 部署NextCloud

为NextCloud创建帐号数据库

以管理员权限打开数据库

mysql -u root -p (运行后需要输入管理员密码)

#创建NextCloud数据库
mysql> create database nextcloud;

#创建NextCloud账户,帐号名跟密码可自己定义,如帐号名:cloudmanager,密码:admin123
mysql> create user '帐号名'@'localhost' identified by '密码';

#给刚创建的账户赋予管理权限
mysql> grant all privileges on nextcloud.* to '帐号名'@'localhost' identified by '密码';

#刷新数据库
mysql> flush privileges;

#退出数据库
mysql> exit

为NextCloud创建Apache配置文件

新建一个文件

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

粘贴下列内容

Alias /nextcloud "/var/www/html/nextcloud/"
<Directory /var/www/html/nextcloud/>
	Options +FollowSymlinks
	AllowOverride All
	
	<IfModule mod_dav.c>
		Dav off
	</IfModule>
	
	SetEnv HOME /var/www/nextcloud
	SetEnv HTTP_HOME /var/www/nextcloud
</Directory>

更改Apache2端口(加密)

sudo vim /etc/apache2/ports.conf

# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 81

<IfModule ssl_module>
        Listen 5005
</IfModule>

<IfModule mod_gnutls.c>
        Listen 5005
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

sudo vim /etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:81>
        # The ServerName directive sets the request scheme, hostname and port that
        # the server uses to identify itself. This is used when creating
        # redirection URLs. In the context of virtual hosts, the ServerName
        # specifies what hostname must appear in the request's Host: header to
        # match this virtual host. For the default virtual host (this file) this
        # value is not decisive as it is used as a last resort host regardless.
        # However, you must set it for any further virtual host explicitly.
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

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

        # For most configuration files from conf-available/, which are
        # enabled or disabled at a global level, it is possible to
        # include a line for only one particular virtual host. For example the
        # following line enables the CGI configuration for this host only
        # after it has been globally disabled with "a2disconf".
        #Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

启用必要的Apache模块

sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod env
sudo a2enmod dir
sudo a2enmod mime

重启Apache2服务器

sudo systemctl restart apache2

安装NextCloud软件

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

这里下载会很慢,推荐下载到本地电脑,然后上传到服务器上。前提是本地的系统是Windows系统,已经安装putty软件以及插件pscp。方法如下。
在这里插入图片描述
解压并部署

unzip nextcloud-13.0.5.zip
sudo mv nextcloud /var/www/html //移动到所在目录(安装)
sudo chown -R www-data:www-data /var/www/html/nextcloud //授权

安装完成后,在地址栏中输入如下IP,浏览内容

IP 显示
http://服务器公网IP:81 访问Apache2页面
http://服务器公网IP:81/nextcloud 访问NextCloud页面

第一次访问NextCloud需要设置相关内容
在这里插入图片描述

四 制作SSL证书

到上面已经是可以正常访问NextCloud了。但是为了让其支持HTTPS,需要给它制作证书。

创建证书存放路径

sudo mkdir /etc/apache2/cert

生成证书到指定路径

sudo openssl req -new -x509 -days 3650 -nodes -out /etc/apache2/cert/cert.pem -keyout /etc/apache2/cert/cert.key

修改配置读取证书

sudo vim /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>
	#修改端口
	<VirtualHost _default_:5005>
		ServerAdmin webmaster@localhost
		DocumentRoot /var/www/html
                
		ErrorLog ${ 
   APACHE_LOG_DIR}/error.log
		CustomLog ${ 
   APACHE_LOG_DIR}/access.log combined
		
		SSLEngine on

		# 将原来的证书注释
		# SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
		# SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
		
		# 添加新的证书
		SSLCertificateFile  /etc/apache2/cert/cert.pem
		SSLCertificateKeyFile /etc/apache2/cert/cert.key
		
		<FilesMatch "\.(cgi|shtml|phtml|php)$">
			SSLOptions +StdEnvVars
		</FilesMatch>
		<Directory /usr/lib/cgi-bin>
			SSLOptions +StdEnvVars
		</Directory>
		
	</VirtualHost>
</IfModule>

启动证书

sudo a2enmod ssl
sudo a2ensite default-ssl

添加可信域

sudo vim /var/www/html/nextcloud/config/config.php

<?php
$CONFIG = array (
  'instanceid' => 'ocwqy1xqnefk',
  'passwordsalt' => 'olzxzZpxYsRY3vFtdhUXo+m/gpoxHx',
  'secret' => 'vIPva4n9JKM5iuyZj0hX05c8+axlvkDk089hWKU8ddal0vzf',
  'trusted_domains' =>
  array (
  	#添加两个内容
    0 => '服务器公网IP',1 =>'IP:5005',2=>'IP',
  ),
  'datadirectory' => '/var/www/html/nextcloud/data',
  'overwrite.cli.url' => 'http://服务器公网IP/nextcloud',
  'dbtype' => 'mysql',
  'version' => '13.0.5.2',
  'dbname' => 'nextcloud',
  'dbhost' => 'localhost',
  'dbport' => '',
  'dbtableprefix' => 'oc_',
  'mysql.utf8mb4' => true,
  'dbuser' => 'oc_cloudmanager',
  'dbpassword' => 'ZBF6HI1xK2ZAdxlJLyxE50gga0RniD',
  'installed' => true,
);

重启apache2

sudo /etc/init.d/apache2 restart

完成后,在地址栏中输入如下IP,浏览内容

IP 显示
https://服务器公网IP:5005 访问Apache2页面
https://服务器公网IP:5005/nextcloud 访问NextCloud页面

五 优化

你应该发现了,每次要进入NextCloud页面总是要打一大串的内容。有没有办法少打一点,就像输入www.baidu.com一样,直接跳转到百度的页面。由于我学术不精,还在摸索。

1 少打/nextcloud
修改配置读取证书

sudo vim /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>
	<VirtualHost _default_:5005>
		ServerAdmin webmaster@localhost

		#修改访问路径
		DocumentRoot /var/www/html/nextcloud
                
		ErrorLog ${ 
   APACHE_LOG_DIR}/error.log
		CustomLog ${ 
   APACHE_LOG_DIR}/access.log combined
		
		SSLEngine on

		# 将原来的证书注释
		# SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
		# SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
		
		# 添加新的证书
		SSLCertificateFile  /etc/apache2/cert/cert.pem
		SSLCertificateKeyFile /etc/apache2/cert/cert.key
		
		<FilesMatch "\.(cgi|shtml|phtml|php)$">
			SSLOptions +StdEnvVars
		</FilesMatch>
		<Directory /usr/lib/cgi-bin>
			SSLOptions +StdEnvVars
		</Directory>
		
	</VirtualHost>
</IfModule>

效果

IP 显示
https://服务器公网IP:5005 访问NextCloud页面
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/142595.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python聊天机器人(python用于机器人)

    通过定时触发器,可以简单快速地定制一个企业微信机器人。我们可以用它来实现喝水、吃饭提醒等小功能,还能实现定时推送新闻、天气,甚至是监控告警的小功能。使用企业微信机器人在企业微信中,选择添加机器人:之后,我们可以根据文档进行企业微信机器人的基础功能定制:以下是用curl工具往群组推送文本消息的示例(注意要将url替换成机器人的webhook地址,content必须是utf8编码):…

    2022年4月10日
    77
  • 通过主机名得到对应ip地址_如何查看电脑主机名或Ip地址

    通过主机名得到对应ip地址_如何查看电脑主机名或Ip地址
         由于SILVERLIGHT是基于纯客户端的机制实现的,想在SL中获取客户端计算机信息暂时还没有效的解决方案。
    一般都是基于WCF、WebService等在服务端获取发送请求机器的信息,然后再返回客户端,该方法可以实现;
    同时可以在

    2022年10月9日
    0
  • circos 可视化手册- text 篇

    circos 可视化手册- text 篇欢迎关注微信公众号 生信修炼手册 不论是 heatmap 还是 scatter histogram 反应的都是基因组上某段区域对应的 value 值的分布 这里的 value 都是数值 对于 value 是字符串的情况 专门定义了 text 这种图表类型 用于展示 看一个 text 的实例 text 在图上就是一圈的字符串标记 字符串可以添加连线 表明对应的染色体位置 配置文件的写法如下 首先看下 fil

    2025年6月15日
    0
  • Idea激活码最新教程2024.2.0.2版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2024.2.0.2版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2024 2 0 2 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2024 2 0 2 成功激活

    2025年5月28日
    0
  • python:最大公约数和最小公倍数

    python:最大公约数和最小公倍数任务目标:1.输入两个数2.打印这两个数的最大公约数3.打印这两个数的最小公倍数实验环境:pycharm的python3.6实现代码:#最大公约数和最小公倍数a=int(input(‘请输入第一个数:’))b=int(input(‘请输入第二个数:’))Min=min(a,b)Gys=1foriinrange(1,int(Min+1)):…

    2022年5月13日
    39
  • 各种加解密算法比較

    各种加解密算法比較

    2021年12月5日
    44

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号