[升级成功]如何手动升级ownCloud到8.2.11,再升最新版本是9.0.9失败:由于 WebDAV 接口似乎被破坏,因此你的网页服务器没有正确地设置来允许文件同步,垃圾,回退了。

jackxiang 2014-8-10 12:12 | |
FreeSbSD安装Nextcloud:
http://rasyid.net/2015/12/12/how-to-install-php-7-from-source-tar-gz-with-apache-on-freebsd-10-2/
https://project.altservice.com/issues/847

FreeBSD下用Port安装NextCloud:
https://www.freshports.org/www/nextcloud

========================================================================================
tail -f /data/htdocs/xdxp.cn/data/owncloud.log
Automatically populating $HTTP_RAW_POST_DATA is deprecated and will be removed in a future version. To avoid this warning set ‘always_populate_raw_post_data’ to ‘-1’ in php.ini and use the php://input stream instead. in Unknown on line 0

vi php.ini
将下面注释去掉,重启fpm

;always_populate_raw_post_data = -1

service php-fpm restart


=========================================================================================
文件目录 (/data/www/xdxp.cn/data) 可以被其他用户读取
请更改权限为 0770 以避免其他用户查看目录。
chmod -R 0770 /data/www/xdxp.cn/data


update-notification.js 里面是更新的JS文件,提示更新用的。

=========================================

最后从:8.2.11--V:wncloud-9.0.10,只留下config和data文件夹后,

安全及设置警告
#sudo -u www /usr/local/php/bin/php ./occ upgrade

升级出现:
由于 WebDAV 接口似乎被破坏,因此你的网页服务器没有正确地设置来允许文件同步。
Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our documentation. (List of invalid files… / Rescan…)
The "Strict-Transport-Security" HTTP header is not configured to at least "15768000" seconds. For enhanced security we recommend enabling HSTS as described in our security tips.

回退:8.2.11!!!

============================================================================================

Q:PHP 似乎没有设置好查询的系统环境变量。 用 getenv(\"PATH\") 测试只返回一个空值。
请检查PHP配置说明和服务器的 PHP 配置的 安装文档 ↗,使用 PHP-FPM 时尤其如此。
PHP模块'文件信息'丢失. 我们强烈建议启用此模块以便mime类型检测取得最佳结果.
[这个老外真是,搞不明白:]Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our documentation. (List of invalid files… / Rescan…)
A:etenv问题:在php-fpm.conf 中加上 env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin重启一下php-fpm就可以了
From:https://bbs.vpser.net/thread-13442-1-1.html

PHP模块'文件信息'丢失:自己参考:https://www.vpser.net/manage/lnmp-php-install-ext.html 安装上phpinfo模块
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP模块'文件信息'丢失. 我们强烈建议启用此模块以便mime类型检测取得最佳结果."

Some files have not passed the integrity check. :估计可能是与禁用函数有关,按置顶帖去掉scandir函数试试

#grep -r "由于 WebDAV 接口似乎被破坏" ./
./core/l10n/zh_CN.json:    "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "由于 WebDAV 接口似乎被破坏,因此你的网页服务器没有正确地设置来允许文件同步。",
./core/l10n/zh_CN.js:    "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "由于 WebDAV 接口似乎被破坏,因此你的网页服务器没有正确地设置来允许文件同步。",

Your Web server is not yet set up properly to allow file synchronization
“Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken.”
有关这个问题,在ownCloud官方论坛有详细说明:How to fix CalDAV|CardDAV|WebDAV problems
From:https://www.orgleaf.com/2158.html


为进行避免较大的安装时超时,你可以在你的安装目录下运行下面的命令:
./occ upgrade#sudo -u www /usr/local/php/bin/php ./occ upgrade
SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes
Update failed
Maintenance mode is kept active
Reset log level
max_allowed_packet = 256K  ==》max_allowed_packet = 8M
Resolve: http://blog.csdn.net/petter7226/article/details/51239901

步骤一,手动升级ownCloud到8.2.11:

rsync -a /data/htdocs/xdxp.cn/ /data/htdocs/xdxp.cn_bak`date +"%Y%m%d"`/  
wget  -P /data/htdocs "https://download.owncloud.org/community/owncloud-8.2.11.tar.bz2"  
mkdir -p /data/htdocs/owncloud_latest  
rm -rf /data/htdocs/owncloud_latest/*  
tar -C /data/htdocs/owncloud_latest -xjf /data/htdocs/owncloud-8.2.11.tar.bz2  
rsync --inplace -rtv /data/htdocs/owncloud_latest/owncloud/. /data/htdocs/xdxp.cn/.  
chown -R www:www /data/htdocs/xdxp.cn
chmod -R 755 /data/htdocs/xdxp.cn
rm -rf /data/htdocs/owncloud-8.2.11.tar.bz2  
rm -rf /data/htdocs/owncloud_latest/owncloud



步骤二,再再升最新版本是9.0.9,精简成脚本和浏览器访问,脚本收集如下:

rsync -a /data/htdocs/xdxp.cn/ /data/htdocs/xdxp.cn_bak`date +"%Y%m%d"`/  
wget  -P /data/htdocs "https://download.owncloud.org/community/owncloud-9.0.9.tar.bz2"  
mkdir -p /data/htdocs/owncloud_latest  
rm -rf /data/htdocs/owncloud_latest/*  
tar -C /data/htdocs/owncloud_latest -xjf /data/htdocs/owncloud-9.0.9.tar.bz2  
rsync --inplace -rtv /data/htdocs/owncloud_latest/owncloud/. /data/htdocs/xdxp.cn/.  
chown -R www:www /data/htdocs/xdxp.cn
chmod -R 755 /data/htdocs/xdxp.cn
rm -rf /data/htdocs/owncloud-9.0.9.tar.bz2  
rm -rf /data/htdocs/owncloud_latest/owncloud



=============================================

不用删除啥文件,一步一步按下面操作就是了:
第一大步:
rsync -a xdxp.cn/ xdxp.cn_bak`date +"%Y%m%d"`/
wget https://download.owncloud.org/community/owncloud-8.2.5.tar.bz2
mkdir owncloud_latest
文件夹存在后,则:
rm -Rf owncloud_latest/*
tar -C owncloud_latest -xjf owncloud-8.2.5.tar.bz2

[root@jackxiang htdocs]# rsync --inplace -rtv owncloud_latest/owncloud/. xdxp.cn/.
sent 99396465 bytes  received 203530 bytes  4632557.91 bytes/sec
total size is 98794138  speedup is 0.99

chown -R www:www xdxp.cn

第二大步:
访问xdxp.cn 后会提示wait 一会儿,作下升级,后重新刷新即可。

刷新时会提示:
ownCloud 将会更新到版本 8.0.2。
在继续之前,请确认数据库、配置文件夹和数据文件夹已经备份。
为避免更大的安装演示,你能在你的安装目录下面运行这些命令:
./occ upgrade
———————————————————————————————
root@119.10.6.**:/data/htdocs/xdxp.cn# ./occ upgrade
PHP is configured to populate raw post data. Since PHP 5.6 this will lead to PHP throwing notices for perfectly valid code.
To fix this issue set <code>always_populate_raw_post_data</code> to <code>-1</code> in your php.ini

vi /usr/local/php/etc/php.ini
; Always populate the $HTTP_RAW_POST_DATA variable. PHP's default behavior is
; to disable this feature. If post reading is disabled through
; enable_post_data_reading, $HTTP_RAW_POST_DATA is *NOT* populated.
; http://php.net/always-populate-raw-post-data
;always_populate_raw_post_data = On    //打开这个
==========================================================================
打这个有啥用呢,查了一这个always_populate_raw_post_data和这个WebDAV有关:
允许在 PHP 脚本中处理 WebDAV 的 HTTP 请求(例如 PROPFIND,PROPPATCH,MOVE,COPY 等)。此选项在 PHP 4.3.2 以后便不存在了。如果要取得这些请求的 POST 数据,也要设定 always_populate_raw_post_data。
WebDAV (Web-based Distributed Authoring and Versioning) 一种基于 HTTP 1.1协议的通信协议。它扩展了HTTP 1.1,在GET、POST、HEAD等几个HTTP标准方法以外添加了一些新的方法,使应用程序可直接对Web Server直接读写,并支持写文件锁定(Locking)及解锁(Unlock),还可以支持文件的版本控制。


附录,升级后代码有兼容性的问题:
==> php-error.log <==
[10-Apr-2015 02:42:49 UTC] PHP Fatal error:  Class OCA\Contacts\Share\Addressbook contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (OCP\Share_Backend::isShareTypeAllowed) in /data/htdocs/xdxp.cn/apps/contacts/lib/share/addressbook.php on line 1

成功解决办法来源链接:
https://datenfahrt.org/wiki/blog/2015/03/owncloud-update-notizen-7.0.4-to-8.0.2
操作步骤如下:
实践如下后,显示正常,升级成功(这一块owncloud感觉好像在兼容性上不是太好):
mysql> desc oc_appconfig;
+-------------+-------------+------+-----+---------+-------+
| Field       | Type        | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| appid       | varchar(32) | NO   | PRI |         |       |
| configkey   | varchar(64) | NO   | PRI |         |       |
| configvalue | longtext    | YES  |     | NULL    |       |
+-------------+-------------+------+-----+---------+-------+


$ mysql owncloud-db-name -u username -p
mysql> update oc_appconfig set configvalue="no" WHERE appid="contacts" AND configkey="enabled";
mysql> update oc_appconfig set configvalue="no" WHERE appid="calendar" AND configkey="enabled";
mysql> update oc_appconfig set configvalue="no" WHERE appid="contacts" AND configkey="enabled";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> update oc_appconfig set configvalue="no" WHERE appid="calendar" AND configkey="enabled";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0



ownCloud是一款保持更新的开源私有云系统,基于PHP5开发的。支持SQLite、MySQL、Oracle以及PostgreSQL等数据库。本文介绍的是如何手动升级的步骤。
请务必遵循以下原则升级:
1、备份原文件夹;
2、停用所有第三方apps;
3、解压最新版的安装包,覆盖到原文件夹中;
4、确认所有的文件和文件夹权限是正确的;
5、打开ownCloud首页,升级自动进行。
假设将ownCloud安装在web根目录下的./ownCloud/文件夹中,SSH登录,进入web根目录后按照如下步骤进行升级:
1、使用rsync命令的存档模式备份./ownCloud/文件夹(该模式可以保留文件权限、拥有者、时间戳等信息),执行命令如下:
rsync -a owncloud/ owncloud_bkp`date +"%Y%m%d"`/
2、官网下载最新版ownCloud,执行命令如下:
wget http://download.owncloud.org/community/owncloud-latest.tar.bz2
3、将最新版的压缩包解压到./owncloud_latest/文件夹,执行命令如下:
mkdir owncloud_latest
tar -C owncloud_latest -xjf owncloud-latest.tar.bz2
4、使用rsync命令覆盖./ownCloud/文件夹,执行命令如下:
rsync --inplace -rtv owncloud_latest/owncloud/ owncloud/
5、删除安装包(安全起见),执行命令如下:
rm -rf owncloud-latest.tar.bz2 owncloud_latest/
注意事项:
1、如果你已经上传了大量的数据,请在升级时确认硬盘空间是否足够;
2、在后台点击升级,只会下载最新版安装包到backup文件夹,并不会自动安装,同时会将config.php中的maintenance mode修改为true。
这就会导致一个错误提示“OwnCloud is in maintenance mode”,因此在手动升级后,需要将./owncloud/config/config.php中的maintenance mode从true改为false,再打开首页才能顺利升级;
3、升级到最新版的ownCloud后,经过我的测试(测试环境:CentOS6.4_x86, LAMP一键安装包),是可以很好的支持中文的(目录名和文件名皆可)。
参考原文:http://doc.owncloud.org/server/5.0/admin_manual/maintenance/update.html

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:https://jackxiang.com/post/7377/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2017-11-10 22:46
评论列表
2014-10-12 13:14 | justwinit Email Homepage
不可能吧,会不会是你mysql编码及PHP编码造成的,我的最新版本都能建中文的文件目录的,你好好查下。
2014-9-11 18:05 | 小马 Email
我安装了 7.0.2 的 不能建中文的文件目录 上传中文的标题的文件 也是显示不了
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]