NextCloud使用AMH面板和BT宝塔面板安装

Nextcloud-logo

本篇有AMH面板安装参考教程和宝塔面板安装参考教程

开头是AMH,AMH安装Nextcloud有个棘手的问题,无法上传中文命名的文件。找不到解决办法就改用宝塔了。

因此还心购买了一台阿里云的突发性能实例。

====AMH面本安装===
阿里云主机
CentOS7.3
安装AMH
注意:安装前:1-设置是否开启InnoDB引擎 2-ampathinfo安装开启支持。
注意:安装Nextcloud过程中有错误的话,尝试用多个浏览器打开页面看错误。最好用谷歌浏览器。
A-基本件:
WEB运行环境应用 LAMP
服务器:Apache-2.4
语言:php7.2
数据库:mysql-5.6
FTP服务器:pure-ftpd-1.0.36
FTP管理工具:amftp-2.5
环境:LAMP-3.0
数据库管理:(2个都要)phpmyadmin-4.8和AMH的madmin-2.0
B-应用件:
WEB应用程序:amfile-1.1(这个是AMH的在线管理文件工具,上传下载解压)
WEB应用程序:amrewrite-1.5 规则配置
WEB应用程序:ampathinfo-1.5 (开启PATHINFO支持)
WEB应用程序:amssl-2.0 HTTPS / SSL访问支持
WEB应用程序:
环境扩展程序:fileinfo-1.0 支持PHP fileinfo函数库。fileinfo提供支持可获取文件的类型信息、字符串缓冲区的信息等
环境扩展程序:opcache-1.0 opcache是从原PHP加密缓存扩展分离出来的独立缓存工具,简称o+,由Zend公司开发支持。
打开AMH面板,如下图,进入软件商店,逐个下载需要的服务程序-下一页、下一页、下一页看到需要的点击下载就OK了。
然后左侧显示已经下载好的模块并且有“安装”提示,点击安装就行。
需要你下载并安装A-基本件和B-应用件

Nextcloud

下图圈住的都安装:
LAMP应用创建和管理环境和站点都需要这个。

Nextcloud

安装完成后新建环境、站点、数据库。
下图创建环境:

Nextcloud

创建完成点击管理,管理环境。
进入环境管理后再点击“管理”进入创建虚拟主机的创建,就是新建站点。
当然,你也可以之间点击你创建好的环境空间名直接跳转到虚拟主机创建这一步。
如下图:

Nextcloud

Nextcloud

接下来创建数据库:
数据库名就是创建的这个数据库的名字
用户名就是创建的这个数据库需要有用户来保养数据,那么这个保养数据的用户的名字就是用户名
输入你定义的密码,别忘了,安装Nextcloud的时候用到这个数据库、数据库用户和用户的密码。

Nextcloud

到这里基本完成了,FTP这里不不说了。
用amfile软件来上传并解压复制等操作。

Nextcloud

上传完成之后解压Nextclou然后把把Nextcloud目录内的文件全部移动到你的网站根目录,注意是站点的web根目录。
这里需要注意:删除AMH创建站点时的默认文件。
打开你的Nextcloud站点地址
开始安装

Nextcloud设置:
PATHINFO:ampathinfo-1.5 开启PATHINFO支持必须安装,安装NC前就安装好。否则安装好NC打开会出现错误,也可能出现登陆无反应或者空白等问题和无法查看页面内容等。mpathinfo安装好后去mpathinfo管理里面开启对主机的支持就行了。
然后就是fileinfo和opcache也是NC需要的,安装好NC后登陆NC后台管理有安全警告提示显示出关于这两项的支持问题。
fileinfo这个最好也提前安装,因为这个需要大内存安装,小内存安装有很大的几率出现安装失败问题。1G以上内存,愚弟腾讯云测试主机1G的内存,安装失败,到腾讯云变配到2G内存,直接安装成功!!!
Opcache最好也提前安装好,这样容易配置。

注意:去madmin数据库管理软件里设置一下(Mysql管理-参数配置)
>>>设置是否开启InnoDB引擎 (InnoDB_Engine)
>>>开启
>>>是否开启MySQL二进制日志 (log_bin)
>>>关闭
安装NC前这里要先设置好,否则安装NC的时候会报错:innoDB报错信息如下
Error while trying to create admin user: An exception occurred while executing ‘CREATE TABLE oc_migrations (app VARCHAR(255) NOT NULL, version VARCHAR(255) NOT NULL, PRIMARY KEY(app, version)) DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB’: SQLSTATE[42000]: Syntax error or access violation: 1286 Unknown storage engine ‘InnoDB’

Nextcloud

安装好opcache后打开NC会发现新的错误就是”PHP 被设置为移除内联块, 这将导致多个核心应用无法访问.这可能由缓存/加速器导致的, 例如 Zend OPcache 或 eAccelerator.”的问题。
注意:安装这个后也可能出现网页引发打开等错误,需要重启一下主机。

如图:

Nextcloud

原因是WEB环境缓存配置参数出现问题,我们需要修改。

Nextcloud

如上图:opcache.save_comments=0 把这里的 0 修改为 1 就可以了。
AMH面板的话php.ini文件的位置在环境目录里的etc目录里。
/home/wwwroot/xxxx/etc/amh-php.ini
xxxx为自己的环境目录
如果是别的面板或者是自己敲命令的话就自己看喽!
到这里打开NC管理后安全设置警告里面会多出Opcache组件的新提示:
PHP 的组件 OPcache 没有正确配置。 为了提供更好的性能,我们建议在 php.ini中使用下列设置:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
那么就接着修改php.ini,按照如上修改,没有参数给加上就行了。
修改后如下:
[opcache.so]
zend_extension=”/home/wwwroot/oanas/ext/opcache.so”
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=1
opcache.fast_shutdown=1 (这一行貌似需要去掉)
opcache.save_comments=1

OK
Access denied.错误
这个错误是由于没有开启ampathinfo这个程序,AMH面板和宝塔都有,去下载开启。

网站根目录权限遵循:
文件644 文件夹755 权限用户和用户组www
如出现文件权限问题时,请执行下面3条命令:

AMH面板:home:
chown -R www.www /home/wwwroot/
find /home/wwwroot/ -type d -exec chmod 755 {} \;
find /home/wwwroot/ -type f -exec chmod 644 {} \;
宝塔面板:www:
chown -R www.www /www/wwwroot/
find /www/wwwroot/ -type d -exec chmod 755 {} \;
find /www/wwwroot/ -type f -exec chmod 644 {} \;

注意修改路径data为自己的目录
修正:修改数据目录出现错误这块儿的确是权限的问题,把自己手动创建的目录的权限修改一下就可以了:
chown -R www.www /www/wwwroot/
注意修改以上路径为自己的目录

修改数据存储目录的位置:
nextcloud安装的时候修改数据目录会出现下图错误,不知道具体什么原因,考虑到大致也跑不开权限的问题。
几番设置和查资料无果就放弃这里的修改方式了。
安装完成后,把Nextcloud根目录下的data目录转移、修改目录名、复制或者什么别的办法都行,总之就是将data里的文件暂时转移到别处,这里的操作是复制data到上级目录。
然后挂载数据盘到Nextcloud根目录的data目录上,接着把复制备份的data里的文件复制回来到挂载的这个data目录里(NC根目录只有一个data)。再接着把这个目录的权限修改一下就行了,权限用户和组都是www 目录755文件644。OK。。。
重复修正:修改数据目录出现错误这块儿的确是权限的问题,把自己手动创建的目录的权限修改一下就可以了:
chown -R www.www /www/wwwroot/
注意修改以上路径为自己的目录

Nextcloud

CSRF错误:
重启服务器。。。

Nextcloud

==========================================
最后:
NC更新:

Nextcloud

NextCloud警告:
开启https后提示:
“Strict-Transport-Security(HSTS)”HTTP头问题

开启HTTPS后,会出现这个提示

The “Strict-Transport-Security” HTTP header is not configured to least “15552000” seconds. For enhanced security we recommend enabling HSTS as described in our security tips.
错误在于虽然开启了HTTPS,却使用传统301方式跳转或没有进行强制跳转。
HSTS(HTTP Strict Transport Security)国际互联网工程组织IETE正在推行一种新的Web安全协议。HSTS的作用是强制客户端(如浏览器)使用HTTPS与服务器创建连接。不同于传统301跳转,HSTS不会在跳转过程遭遇网络渗透。
AMH面板在AMSSL里面强制开启强制HTTPS(HSTS)就行了,如图:

Nextcloud

下图为安全设置及警告的一些问题。不一定都一样,因为一个环境一个主机可能就会有不同的问题出现。

Nextcloud

这里先不说安全设置及警告的排除方法了,因为下面宝塔面板安装后会借Bug侠老师的教程来逐一解决。
因为AMH面板一切配置好后Nextcloud无法上传中文命名的文件
(注意,这里是2018年11月份儿的问题,后续AMH官方可能会解决这个问题)

===AMH面板安装===
AMH面板安装Nextcloud出现无法上传中文命名的文件。
AMH官方提供了绝对的技术支持,感谢AMH提供的技术支持,只怪自己太愚钝,截止了用AMH安装NC的想法。

无奈改用了宝塔面板,系统同样是CentOS 7.2或者7.3改用了宝塔,这个不能上传中文命名文件的问题就不存在了。
新购买阿里云突发性能实例一台,并且用的是按流量计费IP。
测试发现,个人用的话如果上传下载和分享等操作不太多的话,按流量计费IP还是有惊喜的,开启5M带宽。
注意防范攻击。
===宝塔面板安装===
CentOS 7.2安装宝塔面板
这里就不讲了,直接去宝塔官网复制安装代码到ssh
打开宝塔后台
第一:软件管理
—PHP7.2安装
—Apache2.4安装
—MySql5.6安装
—Pure-Ftpd安装
—Memcached安装
这里呢,FTP服务可以先不安装,后续根据个人需要选择。因为宝塔有文件管理,基本够用了。软件管理里面的东西自己随意选择。

Nextcloud

第二:安装完毕后进入扩展安装环节
PHP7.2那一栏
-点击设置
-弹出PHP7.2管理
-点击安装扩展
-PATH_INFO这个默认是开启的,不用管。
-安装fileinfo
-安装opcache
-安装memcached
-安装ACPu
如图:

Nextcloud

第三:设置扩展
同样在PHP7.2管理中
把选项卡切换到“配置文件”选项,如下图。
把上下滑动条拖到最下面,然后往上一点就能看到opcache配置文件,如下图。
按照下面的参数设置就行了。如下图。
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1

Nextcloud

设置好后,基本就完成了。完成?还早,部署这个并不容易!
第四:创建网站
1-添加数据库,如图。

Nextcloud

2-FTP可以不添加,如果想添加可以按照步骤自行添加。
3-添加网站
这里填写域名,备注,根目录,FTP不创建,数据库不创建,因为之前创建好了,当然也可以在这里一起创建。
点击提交就OK了。

Nextcloud

第五:上传Nextcloud程序
这边因为已经上传了,就只示例了。如图。
注意:web根目录里面的文件先删除后在上传,里面好像四个文件,不管几个 ,全部删除。
上传完成后,文件管理里面能看到上传的压缩包,点击解压,把解压出来的文件剪切或者移动到你的web根目录。
删除压缩包和空文件夹。

Nextcloud

第六:设置权限。
打开你的ssh工具,这边用的putty工具。
连接你的服务器并登陆。
chown -R www.www /www/wwwroot/ 设置用户组
find /www/wwwroot/ -type d -exec chmod 755 {} \; 设置文件夹权限
find /www/wwwroot/ -type f -exec chmod 644 {} \; 设置文件权限
如上复制到ssh回车就行了。
第六:安装Nextcloud
打开你绑定的域名首页,开始安装。

Nextcloud

这里按照说明填写设置就行了。
数据库 填写自己创建的数据库名和数据库用户名和密码就OK了。
数据目录那一块你想把数据放在什么地方,就新建立一个目录把权限给一下就行了,
权限:chown -R www.www /xxx(xxx你要存放数据的目录)
安装完成。
第七:会遇到的问题
问题就是Nextcloud里面的安全警告了。
安全警告这里本篇就借鉴了Bug侠的教程来设置,环境不同,主机不同等都会出现不同的安全警告。
经过部署,nextcloud已经可以在web端或者客户端使用了,体验上来说,是没有任何影响的。但是从web端进入管理页面,会有如下错误

Nextcloud

PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(\”PATH\”) 测试时仅返回空结果.
Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm.
PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果.
Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root.
The “Strict-Transport-Security” HTTP header is not set to at least “15552000” seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips.
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。
The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:
opcache.enable=1
opcache.enable_cli=1
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.memory_consumption=128
opcache.save_comments=1
opcache.revalidate_freq=1
请仔细检查安装指南,并检查日志中是否有错误或警告。
作为一个强迫症,不解决这些问题怎么行呢

1.PHP 的设置似乎有问题, 无法获取系统环境变量. 使用 getenv(\”PATH\”) 测试时仅返回空结果.

从宝塔文件管理,打开/www/server/php/72/etc/php-fpm.conf,在其尾部添加一行

env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
保存并重启PHP即可解决该问题

Nextcloud

2.PHP 模块 ‘fileinfo’ 缺失. 我们强烈建议启用此模块以便在 MIME 类型检测时获得最准确的结果

这里上面已经提前安装好了!

这个也很简单,因为php环境默认是没有安装fileinfo这个扩展模块的,所以手动去宝塔PHP管理选项中安装fileinfo扩展即可解决该问题

Nextcloud

3.Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root.

大致意思是用户的数据目录(data)可以通过互联网访问,为了安全起见需要禁止访问。所以解决方法是修改nextcloud绑定的网站配置文件,添加nextcloud常用目录禁止访问即可

location ~ ^/(?:build|tests|config|lib|3rdparty|templates|data)/ {
deny all;
}

Nextcloud

添加完毕保存即可生效

4.The “Strict-Transport-Security” HTTP header is not set to at least “15552000” seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips.

解决方法还是修改nextcloud绑定的网站配置文件,添加一行header信息

注意:这里给出的是Nginx的配置文件,不适用于Apache,下面有Apache的配置说明。

add_header Strict-Transport-Security “max-age=63072000;”;

Nextcloud

保存即可生效

5.内存缓存未配置,为了提升使用体验,请尽量配置内存缓存

配置缓存和config.php设置方法。

这个问题是指php的缓存模块没有安装,nextcloud支持APCu、Memcached、Redis等模块,选择其中一个安装。我之前写过一个宝塔面板PHP 7.x 编译安装APCu

编译安装完毕之后,从宝塔面板打开/www/wwwroot/你的域名/config/config.php,手动给nextcloud的配置文件中添加一行设置,指定使用APCu作为缓存

‘memcache.local’ => ‘\OC\Memcache\APCu’

Nextcloud

如果开启memcached和apcu这两个的话,参考如下:

在站点根目录就是nextcloud文件的根目录里面有个config目录,里面的config.php文件就是。
在 ); 之前添加如下内容:
‘memcache.local’ => ‘\OC\Memcache\APCu’,
‘memcache.distributed’ => ‘\OC\Memcache\Memcached’,
‘memcached_servers’ => array(
array(‘localhost’, 11211),
//array(‘server1.example.com’, 11211),
//array(‘server2.example.com’, 11211),
),
如图:

Nextcloud

如图:

Nextcloud

宝塔面板配置缓存:
面板安装Memcached程序

Nextcloud

然后软件管理-php7.2-设置-安装扩展-安装memcached,不要安装memcache。这个末尾不带d的也可以用,memcached是高级版本。
APCu也一同安装。

Nextcloud

然后去执行本也上面的config.php设置方法。
注意下面:
官方笔记:2018
如果你只启用分布式缓存在 你config.php(memcache.distributed)而不是一个 本地缓存(memcache.local)你仍然会看到缓存的警告。
就是说,如果你只开启了memcached那么你还是会看到内存缓存配置的警告信息。

6.The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:

意思是php的OPcache模块没有安装配置,依然是从宝塔PHP设置面板中添加安装OPcache模块

Nextcloud

安装完成后该提示依然是存在的,因为宝塔在安装OPcache模块后自动加入的配置不符合nextcloud的推荐配置,所以需要修改一下

找到OPcache的配置这一段,替换成nextcloud的推荐配置,保存并重启php即可生效

Nextcloud

补充1:Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation

大意是nextcloud目录下有一些不该出现的文件,点击“List of invalid files…”,会列出异常文件列表,删掉其中的文件即可解决。

Nextcloud

之前用AMH面板安装部署Nextcloud,但是就卡在无法上传中文命名的文件,就放弃了。
宝塔安装和AMH安装大同小异,就是一路创建,咔嚓咔嚓完事儿了。哈哈!!!
重要的是Nextcloud安装完成后出现的安全警告问题的设置。
下面是关于HTTP请求头Apache的设置:
网上一大把都是Nginx的教程,难得找到了Apache的一小段教程,感谢https://www.zkxblog.com/ 博客发布的教程。
ZKXBlog:
#HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒. 为了提高安全性,建议参照security tips ↗中的说明启用HSTS.
#HTTP的请求头 “Referrer-Policy” 未设置为 “no-referrer”, “no-referrer-when-downgrade”, “strict-origin” or “strict-origin-when-cross-origin”. 这会导致信息泄露.
#网站-设置-配置文件 下面添加(如果不开启ssl,添加到80)

Header always set Strict-Transport-Security “max-age=15552000; includeSubDomains”
Header always set Referrer-Policy no-referrer

Nextcloud

最后:
Use of the the built in php mailer is no longer supported. …这里是SMTP邮件服务设置警告
首先要准备一个邮件账户给服务器使用,笔者选择在网易163上注册了一个账户,所以此教程对其它邮件系统仅做参考

登陆你的邮箱,在设置界面里面找到smtp相关的设置

Nextcloud

进入界面后选择开启会提示你设置客户端授权密码,网易服务器要求不是自家客户端登陆邮箱的时候都必须用这个东西。已经设置过的可以通过左侧的选项进入相关界面

Nextcloud

授权码设置完成后界面如下

Nextcloud

下面是如何去使用这个授权码 ,打开你的nextcloud设置,选到其他设置,按下图填写,记得点击存储凭证

Nextcloud

到最末尾还有这个:
安装支持SVG图像的PHP扩展Imagemagick,根据上传的logo和颜色自动生成收藏图标。

到这里基本就算是差不多了,有不懂的可以搜关键字,还是有很多大侠精心分享经验的,感谢所有分享Nextcloud知识的前辈。

未经允许不得转载:印画 » NextCloud使用AMH面板和BT宝塔面板安装

赞 (0) 打赏

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

你可是要准备赏口饭吃?

支付宝扫一扫打赏

微信扫一扫打赏