• Blog
  • Archives
  • Search
  • Comments
  • Tags
  • Links
  • LianDan
  • RSS

有梦就有快乐[杨恒飞]

Reg | Login

人生旅途慢慢,但有梦就会有快乐!

感谢阅读
PageCookery Microblog v0.6.5无法安装的问题
By coldstar On 2009-11-25, 2:10 PM | Category: WEB开发 | Comments: 2

一客户要安装 pagecookery microblog v0.6.5 上传到空间,提示:

因如下原因,安装无法继续:

Cache 目录无法写入.

music.json 文件无法写入.

photos.json 文件无法写入.

rss.xml 文件无法写入.

Windows服务器上的虚拟主机,还是第一次遇到这事,居然判断说不可写。

翻看其源,发现在lib/functions.php中定义了权限判断的函数:

 

PHP代码
  1. function is_really_writable($file)   
  2. {      
  3.     // If we're on a Unix server with safe_mode off we call is_writable   
  4.     if (DIRECTORY_SEPARATOR == '/' AND @ini_get("safe_mode") == FALSE)  
  5.     {  
  6.         return is_writable($file);  
  7.     }  
  8.  
  9.     // For windows servers and safe_mode "on" installations we'll actually   
  10.     // write a file then read it.  Bah...   
  11.     if (is_dir($file))   
  12.     {   
  13.         $file = rtrim($file, '/').'/'.md5(rand(1,100));   
  14.   
  15.         if (($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE)   
  16.         {   
  17.             return FALSE;   
  18.         }   
  19.   
  20.         fclose($fp);   
  21.         @chmod($file, DIR_WRITE_MODE);   
  22.         @unlink($file);   
  23.         return TRUE;   
  24.     }   
  25.     elseif (($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE)   
  26.     {   
  27.         return FALSE;   
  28.     }   
  29.   
  30.     fclose($fp);   
  31.     return TRUE;   
  32. }  

 

其中fopen部分用到了参数  FOPEN_WRITE_CREATE ,看着奇怪,fopen第二个参数应该是打开模式,似乎没有默认的常量可用。以为我记错了,再翻来PHP手册,依然没这个说明。改下看看,将

$fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE

改为:

$fp = @fopen($file, 'w')) === FALSE

再运行install返回正常,可以继续安装。

那这个 FOPEN_WRITE_CREATE 是一个常量么?搜索整个程序,未发现有定义的地方。

GG一下,发错有的程序中使用了这个东西,但是有定义常量的。并没有发现说是PHP内置常量。

心想,或许是作者不小心引用了别人的这个代码,但忘了定义常量吧。

 

解决办法:

在网上搜索到了这个 FOPEN_WRITE_CREATE 出现的地方,把人家常量定义的代码再引用一下就好了,就不改原作代码了。

打开  lib/functions.php 在头部添加如下代码,保存即可。

 

PHP代码
  1. define('DIR_READ_MODE', 0755);   
  2. define('DIR_WRITE_MODE', 0777);   
  3. define('FILE_READ_MODE', 0644);   
  4. define('FILE_WRITE_MODE', 0666);   
  5. define('FOPEN_READ', 'rb');   
  6. define('FOPEN_READ_WRITE', 'r+b');   
  7. define('FOPEN_READ_WRITE_CREATE', 'a+b');   
  8. define('FOPEN_READ_WRITE_CREATE_DESTRUCTIVE', 'w+b');   
  9. define('FOPEN_READ_WRITE_CREATE_STRICT', 'x+b');   
  10. define('FOPEN_WRITE_CREATE', 'ab');   
  11. define('FOPEN_WRITE_CREATE_DESTRUCTIVE', 'wb');   
  12. define('FOPEN_WRITE_CREATE_STRICT', 'xb');  
Tags: microblog , pagecookery
« linux下检测网关是否连线 bw_mod 与 mod_bw 不仅仅是版本的更新»
Trackbacks
点击获得Trackback地址,Encode: UTF-8 点击获得Trackback地址,Encode: GB2312 or GBK 点击获得Trackback地址,Encode: BIG5
2条记录访客评论
#1 音速
2010, May 27, 11:30 AM.
谢谢!我的微薄终于上线了!
Quote
#2 makun
2010, June 22, 8:25 PM.
谢谢您的帮助。。
Quote
Leave a Comment

text(*):

  • View Model: Nomal | List
  • Category

    win7 (17) RSS 2.0 订阅这个分类

    Windows (39) RSS 2.0 订阅这个分类

    Linux (51) RSS 2.0 订阅这个分类

    WEB服务器 (73) RSS 2.0 订阅这个分类

    网站架构 (11) RSS 2.0 订阅这个分类

    存储与缓存 (2) RSS 2.0 订阅这个分类

    数据库技术 (20) RSS 2.0 订阅这个分类

    WEB开发 (22) RSS 2.0 订阅这个分类

    网站建设 (28) RSS 2.0 订阅这个分类

    安全相关 (24) RSS 2.0 订阅这个分类

    软件开发 (3) RSS 2.0 订阅这个分类

    网络观察 (20) RSS 2.0 订阅这个分类

    精彩瞬间 (20) RSS 2.0 订阅这个分类

    心情管理 (49) RSS 2.0 订阅这个分类

    个人收藏 (26) RSS 2.0 订阅这个分类

  • Calendar

    « 2010年07月 »
    日 一 二 三 四 五 六
    1 2 3
    4 5 6 7 8 9 10
    11 12 13 14 15 16 17
    18 19 20 21 22 23 24
    25 26 27 28 29 30 31
  • Random Aritcle

    java.lang.UnsatisfiedLinkError:/usr/local/jdk/jre/lib/i386/libawt.s libXp.so.6: cannot open shared object

    老公,抱我一分钟,好吗?

    在ATM 我把钱给了她

    403.18 - The specified request cannot be executed from current Application Pool

    linux下配置freeTDS让php支持mssql

    新编大学对联(搞笑版)

    小公司如何留住人

    语言没有好坏之分, 只有应用领域的不同

    Linux环境VNC服务安装、配置与使用

    感谢Google,27xs.com收录过10篇

  • Archives

    2010年07月 (17)

    2010年06月 (68)

    2010年05月 (32)

    2010年04月 (3)

    2010年03月 (8)

    2010年02月 (4)

    2010年01月 (19)

    2009年12月 (45)

    2009年11月 (28)

    2009年10月 (10)

    2009年09月 (15)

    2009年08月 (2)

    更多...

  • Others

    Powered by SaBlog-X.

    Designed by Giki+Kula.

    有梦就有快乐[杨恒飞] All rights reserved.

    陕ICP备07009322号