PHP的设置似乎有问题,无法获取系统环境变量.使用getenv(\"PATH\")测试时仅返回空结果.测试时仅返回空结果.')
PHP模块"fileinfo"缺失.我们强烈建议启用此模块以便在MIME类型检测时获得最准确的结果.
一些文件没有通过完整性检查.了解如何解决该问题请查看我们的文档。(无效文件列表… / 重新扫描…)")
PHP无法访问/dev/urandom
,出于安全原因这是强烈不推荐的。更多信息请参见文档
HTTP请求头"Strict-Transport-Security"没有配置为至少 “15552000” 秒。出于增强安全性考虑,我们推荐按照 安全提示中的说明启用HSTS。
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。
Opcache配置参数
您的网页服务器未正确设置以解析"/.well-known/caldav".更多信息请参见文档
您的网页服务器未正确设置以解析"/.well-known/carddav".更多信息请参见文档
数据库丢失了一些索引.由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复.您可以在Nextcloud运行时通过命令行手动执行"occ db:add-missing-includes"命令修复丢失的索引.索引修复后会大大提高相应表的查询速度
为PHP分配更多内存The current PHP memory limit is below...
无法生成分享链接,分享链接按钮消失
该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。imagick
Chrome等浏览器点击登录等按钮无反应,安装时数据库无法选择等js出错
这篇文章中提及的方法只在ubuntu16.04+lnmp1.5环境下测试有效,不同环境未必奏效.
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-fpm.conf
尾部添加一行
updatedb
locate php-fpm.conf
vi /usr/local/php/etc/php-fpm.conf
#添加如下
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin
PHP模块"fileinfo"缺失.我们强烈建议启用此模块以便在MIME类型检测时获得最准确的结果.
先进入lnmp的php的安装目录
cd /lnmp1.5/src/
然后ls
一下查看是否有php安装完成产生的目录,如php-7.2.6
,如果没有则安装该文件夹下的php-7.2.6.tar.bz2
,如果有则进入
ls
tar -xvf php-7.2.6.tar.bz2
cd php-7.2.6/ext/fileinfo
安装扩展
/usr/local/php/bin/phpize
./configure -with-php-config=/usr/local/php/bin/php-config
make && make install
修改php.ini,添加fileinfo
扩展
vi /usr/local/php/etc/php.ini
vi命令中输入/fileinfo
回车定位,删除extension = fileinfo
前面的注释;
然后保存退出
重启php-fpm
lnmp php-fpm restart
2019.7.15更新
使用了lnmp1.6,php7.3,Ubuntu18.04.2这种环境之后上面的方法对于fileinfo的方法部分失效
解压了lnmp里的php压缩包进入fileinfo文件夹后,开始同上过程编译,然后搜索fileinfo.so
文件的位置,把它的路径加到php.ini
文件里,具体如下
locate fileinfo.so
#输出/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/fileinfo.so
#复制这个路径
vi /usr/local/php/etc/php.ini
#在有一大堆`;extension=...`的地方,或者直接/extension=fileinfo
#加上一句
extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/fileinfo.so
#原有的;/extension=fileinfo不动保持注释状态
lnmp php-fpm restart
如果报如下错误:
Gracefully shutting down php-fpm . done
Starting php-fpm [06-Sep-2018 12:24:13] NOTICE: PHP message: PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) ‘/usr/local/php/lib/php/extensions/no-debug-non-zts-20151012/fileinfo.so’ in Unknown on line 0
done
则需要重新进入扩展包目录,先执行如下命令:
make clean
然后再重新执行前面的编译操作.
一些文件没有通过完整性检查.了解如何解决该问题请查看我们的文档。(无效文件列表… / 重新扫描…)
在搭建之初,解压官方安装zip包latest-13.zip
时产生的/nextcloud
中有两个隐藏文件.htaccess
和.user.ini
没有被mv到wwwroot下,所以要单独转移他们
注意:在解压出来的nextcloud
文件夹和/../storage.j000e.com
文件夹中都有.user.ini
文件,但是必须用nextcloud
中的替换后者即网站文件夹中的,而且两个文件都需要单独赋权才能进行操作.
cd /home/wwwroot/storage.j000e.com/
chattr -i .user.ini
rm .user.ini
cd /nextcloud
chattr -i .user.ini
mv .htaccess /home/wwwroot/storage.j000e.com/
mv .user.ini /home/wwwroot/storage.j000e.com/
回到报错页点解重新扫描即可.
PHP无法访问`/dev/urandom`,出于安全原因这是强烈不推荐的。更多信息请参见文档
这个问题Google上的大多数解决方法都是在php.ini
中去掉open_basedir=
前的分号,然后再后面添加/dev/urandom
或者.:/tmp/:/dev/urandom
,对于多网站目录则添加/www/wwwroot/***/:/tmp/:/proc/:/dev/urandom
,除了这些还有就是对apache的方案,不适用于nginx
但是通过各种解决方案发现,解决问题的根本是关闭"放跨目录"功能,所以在军哥的lnmp网站找到了关于放跨目录的设置https://lnmp.org/faq/lnmp-vhost-add-howto.html#user.ini,关闭即刻,方法如下
vi /usr/local/nginx/conf/fastcgi.conf
在fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
前添加一个#
,保存退出然后lnmp restart
生效,这里我只改了这个配置文件就生效的,并未改.user.ini
.
HTTP请求头"Strict-Transport-Security"没有配置为至少 “15552000” 秒。出于增强安全性考虑,我们推荐按照 安全提示中的说明启用HSTS。
此操错在使用https时出现,目的是让服务器开启HSTS,虽然安全性有点提升,但是经过反复折腾我非常不建议开启HSTS,尤其是套了Cloudflare的域名,因为启用后浏览器会被要求记住该域名的https请求,以后想调试还需要清理浏览器的hsts记录,非常麻烦,至于CF,如果套CF,则在CF的Crypto设置中开启HSTS即可,如果这里不开,即使在服务器中设置HSTS也不会生效,如果没套CF,则在Nginx的配置文件中的443口里的server_name
下面新起一行
add_header Strict-Transport-Security "max-age=63072000;";
保存生效.
注意!!此网站不要套CF的域名,CF的CDN会导致网站js失效,也就是浏览器能打开网页但是无法点击任何按钮,我使用后出现了Firefox和Chrome无法使用网站的情况,只有IE和Edge可以,等于废站.所以应直接使用域名商的解析.
内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。
更多信息请参见文档。https://docs.nextcloud.com/server/13/admin_manual/configuration_server/caching_configuration.html
cd /lnmp1.5
./addons.sh install redis
vi /home/wwwroot/joooe.xyz/config/config.php
#在末尾),前添加如下
'memcache.local' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'localhost',
'port' => 6379,
),
Opcache配置参数
使用lnmp一键包安装opcache
cd /lnmp1.5
./addons.sh install opcache
源码编译安装
cd /lnmp1.5/src
#下面这行如果之前执行过则跳过
tar -zxvf php-7.2.6
cd php-7.2.6
#下面这行如果之前执行过则跳过
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-opcache
make && make install
修改php.ini
#如果找不到位置则执行
locate php.ini
vi /usr/local/php/etc/php.ini
#命令状态下输入/opcache定位到该区块,按照报错修改参数病去掉相应语句前面的;
注意:如果你使用的是lnmp一键包,则上面的修改不会起作用
继续操作,找到opcache.ini
并按照报错要求修改
updatedb
locate opcache.ini
vi /usr/local/php/conf.d/004-opcache.ini
#按照要求修改对应数值并保存即可
#重启lnmp
lnmp restart
刷新报错页,已生效
您的网页服务器未正确设置以解析"/.well-known/caldav"
这个和您的网页服务器未正确设置以解析"/.well-known/carddav".更多信息请参见文档报错同时在13.x升级14.x后出现,报错中的官方参考文档如下:参考文档,文档阐述了Apache服务器的配置方法,大概看来是需要手动添加一些rewrite规则,对于Nginx服务器则直接看这个文档即可:参考文档,这是一个官方的Nginx配置文档,里面有一段注释表明了应该添加进去的义端代码,这段代码的缺失导致了报错,原代码段如下
# The following 2 rules are only needed for the user_webfinger app.
# Uncomment it if you're planning to use this app.
#rewrite ^/.well-known/host-meta /public.php?service=host-meta last;
#rewrite ^/.well-known/host-meta.json /public.php?service=host-meta-json last;
location = /.well-known/carddav {
return 301 $scheme://$host/remote.php/dav;
}
location = /.well-known/caldav {
return 301 $scheme://$host/remote.php/dav;
}
完整代码参考: https://www.j000e.com/linux/nextcloud.html#8.1.1
数据库丢失了一些索引.由于给大的数据表添加索引会耗费一些时间,因此程序没有自动对其进行修复.您可以在Nextcloud运行时通过命令行手动执行"occ db:add-missing-includes"命令修复丢失的索引.索引修复后会大大提高相应表的查询速度
这个报错发生在我手动升级nextcloud后,提示写得很清楚,进入nextcloud所在目录,然后执行sudo -u www php occ db:add-missing-includes
即可自动完成修复
图中黄色提示部分是php分配内存不足512导致,下面单独记录.
为PHP分配更多内存The current PHP memory limit is below...
The current PHP memory limit is below the recommend value of 512MB
这个提示出现在上图中在服务器使用occ命令时出现,为了给PHP分配更大内存
vi /usr/local/php/etc/php.ini
#查询关键字
/memory_limit
#默认128改为比512大的值,我改了600,然后保存退出
:wq
#查看生效
php -i | grep memory_limit
#输出的值为刚才修改的值,再执行occ命令就不会报错了
无法生成分享链接,分享链接按钮消失
屏蔽广告插件导致的,添加nextcloud到白名单或关闭插件即可.
该实例缺失了一些推荐的 PHP 模块。为提高性能和兼容性,我们强烈建议安装它们。imagick
lnmp已经带了安装脚本
cd /root/lnmp1.5
./addons.sh install imageMagick
Chrome等浏览器点击登录等按钮无反应,安装时数据库无法选择等js出错
多半是CDN导致的js错误
我得报错如图
解决方法:
进入cloudflare的speed
选项卡关闭
其中的Rocket Loader™
选项,几乎立即生效
-
版权声明:本文为原创文章,版权归Joe所有,转载请注明出处.
本文链接:https://www.j000e.com/linux/nextcloudcodeserror.html
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。