QQ登录

只需一步,快速开始

扫描二维码登录本站

切换到宽版
微信扫一扫 分享朋友圈

已有 136 人浏览分享

如何采用LAMP架构安装Nextcloud私有云盘

[复制链接]
发表于 2021-6-15 14:05:50 | 显示全部楼层 | 阅读模式
采用LAMP架构安装Nextcloud私有云盘是一个很简单的过程,但是由于是开源软件,难免会存在一些BUG和小问题,这里罗列了安装过程中可能会出现的一些问题并汇总,仅供参考。

Nextcloud私有云简介:NextCloud开源私有云盘系统介绍
Nextcloud私有云搭建:放弃百度网盘,教你使用Nextcloud开源程序搭建私有云盘
ID        问题描述        状态
#001        升级版本后,网页端无法登陆,但是手机端、os client均可以正常登陆        fixed
#002        内部服务器http 500错误,PHP内存限制低于建议值512MB        fixed
#003        手机端上传文件时提示WebDAV Locked,文件被锁        fixed
#004        已禁用事务性文件锁定,这可能在竞争条件下导致问题。        fixed
#005        内存缓存未配置,为了提升使用体验,请尽量配置内存缓存        fixed
#006        PHP 的 OPcache 模块未载入,推荐开启获得更好的性能。        fixed
#007        该实例缺失了一些推荐的PHP模块。为提高性能和兼容性,我们强烈建议安装它们。imagick        fixed
#008        nextcloud-problem-occ db:convert-filecache-bigint        fixed
#009        nextcloud-problem-add-http-header
extcloud-problem-add-http-header-no-referrer        fixed
#010        HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒. 为了提高安全性,建议参照security tips ↗中的说明启用HSTS.        fixed
#011        挂载外部存储设备时,提示“smbclient” 未安装。无法挂载 “SMB / CIFS”, “SMB / CIFS 使用 OC 登录信息””        fixed
#012        数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。索引修复后会大大提高相应表的查询速度。        fixed
#013        数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。        fixed
#014        您的网页服务器未正确设置以解析“/.well-known/caldav”,尤其是在大版本升级以后会出现。        fixed
#015        Please contact your administrator. If you are an administrator, edit the “trusted_domains” setting in config/config.php like the example in config.sample.php.        fixed
#016        SQLSTATE[HY000] [1045] Access denied for user ‘ clouduser2018’@’localhost’ (using password: YES)        fixed
#017        Nextcloud后台日志提示如下错误:”Module ‘imagick’ already loaded at Unknown#0″        fixed
#018        Nextcloud升级过程中提示”如下文件被发现”        fixed
#019        Nextcloud页面升级过程中提示”Step 4 is currently in process. Please reload this page later.”        fixed
#020        error: php You are using a fallback implementation of the intl extension. Installing the native one is highly recommended instead. at /var/www/nextcloud/3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php        fixed
#021        有些应用程序目录是由与 Web 服务器不同的用户拥有的。如果应用程序是手动安装的,情况可能是这样的。检查以下应用程序目录的权限        fixed
#022        您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web 服务器文档根目录。        fixed
#023        This xcloud instance is currently in maintenance mode, which may take a while. This page will refresh itself when the instance is available again. Contact your system administrator if this message persists or appeared unexpectedly.        fixed
#026        创建用户报错:Operation CREATE USER failed for ‘tempuser'@'localhost';
fixed
#27        有些应用程序目录是由与 Web 服务器不同的用户拥有的。如果应用程序是手动安装的,情况可能是这样的。检查以下应用程序目录的权限:
/var/www/html/apps/xxx        fixed
#28        后台绑定邮件服务器后,测试邮件无法送达或反映缓慢        fixed
#29        后台动态邮件提示未按照设定推送或者无推送        fixed
#30        Internal Server Error

The server encountered an internal error and was unable to complete your request.
Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.
More details can be found in the server log.        fixed
#31        通过Web升级,升级过程中卡死,提示错误信息为:Update in process        fixed
#32        您的安装没有设置默认的电话区域。这对验证配置设定中没有国家代码的电话号码而言是必需的。要允许没有国家代码的电话号码,请添加带区域相应的 ISO 3166-1 code ↗ 的“默认_电话_区域”到你的配置文件中。        fixed
#33        此实例中的 php-imagick 模块不支持 SVG。为了获得更好的兼容性,建议安装它。        fixed
#34        PHP Fatal error: Uncaught Doctrine\\DBAL\\Exception: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/xcloud/lib/private/DB/Connection.php:85\nStack trace:\n#0        fixed
#issues 修复记录
#001. 升级版本后,网页端无法登陆,但是手机端、os client均可以正常登陆
[fixed]通过打补丁可以解决
wget  https://patch-diff.githubusercon ... er/pull/11103.patch
root@localhost:/var/www/html/nextcloud# patch -p1 < 11103.patch




#002. 内部服务器http 500错误,PHP内存限制低于建议值512MB.
[fixed]调整php memory大小,可以参考上文中的配置进行设置,编辑 /etc/php/7.3/apache2/php.ini,这里将memory_limit改为2048M。
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit =2048M
#003. 手机端上传文件时提示WebDAV Locked,文件被锁
[fixed]禁用filelocking功能
在/nextcloud/config/config.php文件中添加
‘filelocking.enabled’ => false,
参考:OCA\DAV\Connector\Sabre\Exception\FileLocked – DB race condition



#004. 已禁用事务性文件锁定,这可能在竞争条件下导致问题。
在Nextcloud根目录/config/config.php 中启用 “filelocking.enabled” 可以避免此问题。

#005. 内存缓存未配置,为了提升使用体验,请尽量配置内存缓存
[fixed] Nextcloud官网给出的推荐是配置APCu本地缓存,如果你的应用场景涉及到了分布式缓存,可以使用APCu+Memcached或者APCu+Redis进行搭配设置。这里Memcached和Redis二选一即可。

1>.安装APCu

apt install php-apcu php-apcu-bc
service apache2 restart
2>.在php中配置APCu模块

sudo vim /etc/php/7.3/mods-available/apcu.ini
添加代码 apc.enable_cli=On,保证功能开启,

3>安装完成后编辑 /home/wwwroot/cloud.yourdomain.com/config/config.php 文件,加上
‘memcache.local’ => ‘\OC\Memcache\APCu’,



#006. PHP 的 OPcache 模块未载入,推荐开启获得更好的性能。
[fixed]
1>.安装OPcahe
cd /root/lnmp1.5
./addons.sh install opcache
2>.配置OPcahe

打开php.ini文件,vim /etc/php/7.3/fpm/php.ini,nextcloud推荐配置如下
[Zend Opcache]
zend_extension=”opcache.so”
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=30
opcache.fast_shutdown=1
opcache.enable_cli=1
opcache.save_comments=1


#007. 该实例缺失了一些推荐的PHP模块。为提高性能和兼容性,我们强烈建议安装它们。imagick
[fixed]
1>.安装ImageMagick
apt install php-imagick
2>.修改 /etc/php/7.3/apache2/php.ini,第一行加上extension模块,并重启apache2:
extension=”imagick.so”

service apache2 restart



#008. nextcloud-problem-occ db:convert-filecache-bigint
[fixed]
cd /home/wwwroot/cloud.yourdomain.com/
sudo -u www php occ db:convert-filecache-bigint
其中www是网站用户名,视情况而定,ls -l 可以查看用户名和用户组



#009.
nextcloud-problem-add-http-header
extcloud-problem-add-http-header-no-referrer
[fixed]这五个header的问题是由重复配置造成的,在 /etc/apache2/cloud.yourdomain.conf 中把这些注释掉即可。



#010. HTTP的请求头 “Strict-Transport-Security” 未设置为至少 “15552000” 秒. 为了提高安全性,建议参照security tips ↗中的说明启用HSTS.
[fixed]
在 /etc/apache2/www.cloud.yourdomain.conf 中添加以下代码
add_header Strict-Transport-Security “max-age=15768000;preload;”;


#011. 挂载外部存储设备时,提示“smbclient” 未安装。无法挂载 “SMB / CIFS”, “SMB / CIFS 使用 OC 登录信息””

[fixed]进入VPS后台安装组件解决

apt install libsmbclient-dev
apt install smbclient


#012.数据库丢失了一些索引。由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复。索引修复后会大大提高相应表的查询速度。
sudo -u www-data php occ db:add-missing-indices


#013.数据库中的一些列由于进行长整型转换而缺失。由于在较大的数据表重改变列类型会耗费一些时间,因此程序没有自动对其更改。
sudo -u www-data php occ db:convert-filecache-bigint


#014. 您的网页服务器未正确设置以解析“/.well-known/caldav”, 您的网页服务器未正确设置以解析“/.well-known/carddav”。

这是由于Apache2未开启rewrite功能,或者虚拟机目录配置文件中未添加“AllowOverride All”参数,使得Nextcloud无法使用网站根目录下.htaccess文件参数所致。尤其是在大版本升级以后会出现
sudo a2enmod rewrite
service apache2 restart
打开/var/www/html/.htaccess

添加如下代码:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^\.well-known/host-meta /public.php?service=host-meta [QSA,L]
RewriteRule ^\.well-known/host-meta\.json /public.php?service=host-meta-json [QSA,L]
RewriteRule ^\.well-known/webfinger /public.php?service=webfinger [QSA,L]
RewriteRule ^\.well-known/carddav /remote.php/dav [R=301,L]
RewriteRule ^\.well-known/caldav /remote.php/dav [R=301,L]
#RewriteEngine On
RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]
RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L]



</IfModule>





#015 .Please contact your administrator. If you are an administrator, edit the “trusted_domains” setting in config/config.php like the example in config.sample.php.
[fixed]需要进入后台config.php文件,在域名配置中添加你的域名进行放行



#016. SQLSTATE[HY000] [1045] Access denied for user ‘ clouduser2018’@’localhost’ (using password: YES)

大意就是你有一个用户名为空的账户,mysql会先匹配它,然后就一直提示你密码错误,删掉这个匿名用户,然后执行 FLUSH PRIVILEGES;

$ mysql -uroot -p
提示输入数据库入口密码: xxxxxx
>use mysql
>Delete FROM user Where User=” and Host=’localhost’;
>FLUSH PRIVILEGES ;


#017. Nextcloud后台日志提示如下错误:”Module ‘imagick’ already loaded at Unknown#0″

原因:名为 “imagick” 的 module 有两个加载的途径,1 是直接把这个模块编译进了 php,2 是在 php 的配置文件 php.ini 中又添加了 extension=imagick.so

[fixed]在/etc/php/7.3/apache2/php.ini 去掉相应的 extension=imagick.so,并 php -m 查看加载的扩展中有没有此项(虽然删去了配置,但是也应该存在),你也可以使用 php -i | grep Configure 来查看编译选项。

然后输入sudo service apache2 restart 命令,在后台可以看到错误消失。



#018. Nextcloud升级过程中提示”如下文件被发现”

原因: Nextcloud的数据文件位置没有设置正确,一般将数据文件放在:/xxxx/netxcloud/data目录下。

[fixed]: 可以尝试将这些文件移动到data目录下,然后在config.php文件中,修改数据文件路径

‘datadirectory’ => ‘/xxxx/nextcloud/data’



#019. Nextcloud页面升级过程中提示”Step 4 is currently in process. Please reload this page later.”

原因: 一般由于网络环境不稳定,导致下载问题

[fixed]: 进入网站后台,找到nextcloud路径/data/updater-xxxxxxx文件夹,删除updater-xxxxxxxx文件夹,就可以重新更新了



#020. error: php You are using a fallback implementation of the intl extension. Installing the native one is highly recommended instead. at /var/www/nextcloud/3rdparty/patchwork/utf8/src/Patchwork/Utf8/Bootup/intl.php#18

[fixed]:

sudo apt-get install php7.3-intl
sudo phpenmod intl
sudo systemctl restart apache2.service



#021. 有些应用程序目录是由与 Web 服务器不同的用户拥有的。如果应用程序是手动安装的,情况可能是这样的。检查以下应用程序目录的权限:
/var/www/html/nextcloud/apps/xxxx

[fixed]:

sudo chown -R www-data /var/www/html/nextcloud/apps/xxxx



#022. 您的数据目录和文件可以从互联网直接访问。.htaccess 文件不起作用。强烈建议您配置 Web 服务器,以便数据目录不再可访问,或者您可以将数据目录移动到 Web 服务器文档根目录。

[fixed]

在网站配置文件中添加如下代码,vim /etc/apache2/sites-available/000-default.conf

<Directory /var/www/html/nextcloud/>
Options +FollowSymlinks
AllowOverride All
Require all granted
<IfModule mod_dav.c>
Dav off
</IfModule>
SetEnv HOME /var/www/html/nextcloud
SetEnv HTTP_HOME /var/www/html/nextcloud
</Directory>
重启apache生效: #sudo service apache2 restart



#023 This xcloud instance is currently in maintenance mode, which may take a while. This page will refresh itself when the instance is available again. Contact your system administrator if this message persists or appeared unexpectedly.

[fixed]

在线更新版本后,网页卡在页面并提示如上错误

解决: sudo -u www-data php /var/www/nextcloud/occ maintenance:mode –off



#024. PHP Startup: Unable to load dynamic library ‘imagic.so’ (tried: /usr/lib/php/20180731/imagic.so (/usr/lib/php/20180731/imagic.so: cannot open shared object file: No such file or directory), /usr/lib/php/20180731/imagic.so.so (/usr/lib/php/20180731/imagic.so.so: cannot open shared object file: No such file or directory)) at Unknown#0

[unfixed]



#025. Sabre\DAV\Exception\BadRequest: Expected filesize of 1024000 bytes but read (from Nextcloud client) and wrote (to Nextcloud storage) 180224 bytes. Could either be a network problem on the sending side or a problem writing to the storage on the server side.

[unfixed]



#026 创建用户报错:Operation CREATE USER failed for ‘tempuser’@’localhost’;

[fixed]

1> 退出,重新进入mysql

2> 删除刚才的用户 drop user ‘tempuser’@’localhost’;

3> 重新进入数据库 use yourdatabasename;

4> 重新创建用户



#027 有些应用程序目录是由与 Web 服务器不同的用户拥有的。如果应用程序是手动安装的,情况可能是这样的。检查以下应用程序目录的权限:
/var/www/html/apps/xxx

[fixed]

原因: 手动安装App应用后导致权限错误,应该改为apache2接管

#sudo chown -R www-data /var/www/html/apps/xxx



#28 后台绑定邮件服务器后,测试邮件无法送达或反映缓慢

[fixed]

解决这个问题,安装sendmail
sudo apt-get install sendmail

确保sendmail已经启动,使用命令:
service sendmail start 启动sendmail进程
/etc/init.d/sendmail start



#029 后台绑定邮件服务器后,测试邮件无法送达或反映缓慢

[fixed]

Nextcloud在配置完邮件服务器后,发现测试发送邮件反映迟钝,邮件无法送达至管理员邮箱账户,可以通过如下途径解决。

安装sendmail

# sudo apt-get install sendmail
确保sendmail已经启动,使用命令:
# service sendmail start 启动sendmail进程
# /etc/init.d/sendmail start


#31 Internal Server Error The server encountered an internal error and was unable to complete your request. Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report. More details can be found in the server log.

[fixed]

原因,如果安装了apcu解决缓存问题,则在重装或者重新部署过程中会出现这个问题。需要安装apcu解决 #sudo apt instlall php7.4-apcu



#32 您的安装没有设置默认的电话区域。这对验证配置设定中没有国家代码的电话号码而言是必需的。要允许没有国家代码的电话号码,请添加带区域相应的 ISO 3166-1 code ↗ 的“默认_电话_区域”到你的配置文件中。

[fixed]

打开config.php 文件,配置中添加代码 ‘default_phone_region’ => ‘CN’,



#33 此实例中的 php-imagick 模块不支持 SVG。为了获得更好的兼容性,建议安装它。

[fixed]

apt install libmagickcore-6.q16-6-extra
service apache2 restart
service php7.4-fpm restart



#34 升级完版本后,前台提示内部服务器错误,调用apache日志,得到如下信息: PHP Fatal error: Uncaught Doctrine\\DBAL\\Exception: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] Connection refused in /var/www/html/xcloud/lib/private/DB/Connection.php:85\nStack trace:\n#0

[fixed]

sudo vim /lib/systemd/system/apache2@.service
sudo vim /lib/systemd/system/apache2.service

After=mysql.service network.target remote-fs.target nss-lookup.targe , 缺失mysql.service,加上

sudo service mysql start
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

关注

6

粉丝

507

主题
精彩推荐
精彩推荐
热门资讯
热门资讯
网友晒图
网友晒图
图文推荐
图文推荐

QQ|小黑屋|Archiver|手机版|中国广告网 ( 鄂ICP备20005464号-17 )|网站地图

GMT+8, 2021-10-18 22:57

Powered by Discuz! X3.4

© 2001-2021 武汉掌媒科技有限公司