手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表Tag:gogs

wordpress 升级遇到问题

升级wordpress的时候遇到:Briefly unavailable for scheduled maintenance. Check back in a minute.

其实解决方法很简单,到wordpress的根目录下。删除 .maintenance 文件即可。
 

转:一些升級 El Capitan 之後要注意的事項

 以下内容纯COPY

 
原文来自:http://hiraku.tw/2015/09/3969/
  1. 前兩天 OS X El Capitan 出了 GM Candidate,所以就升級上去了,雖然外觀上 El Capitan 跟 Yosemite 看起來差不多,但是我裝的不少東西馬上就不能用了,這邊列一下目前遇到的問題跟解決方法,如果後面陸續遇到更多會持續補充。    
  2.   
  3. 首先最重要的是,El Capitan 增加了一個叫做  System Integrity Protection (簡稱 SIP ,或稱 rootless, 在 iOS 9 裡面也有) 的保護機制,SIP 最主要功能就是防止對系統程式的 code injection,還有使用未被 Apple 認可的 kext。  
  4.   
  5. 但是要關閉 SIP 也不難,只要進去 Recovery Mode (開機按著 Command + R 直接進入,千萬不要用按著 option 的方式選擇,否則會找不到 csrutil 的指令),用終端機輸入  
  6.     
  7. csrutil disable  
  8. 之後重新開機,就可以關閉 SIP 了。若有使用到以下說明要關閉 SIP 的軟體,就必須按照上述方法操作,才能正常使用該軟體之功能。而開啟 SIP 也很簡單,輸入  
  9.   
  10. csrutil enable  
  11. 特別要注意的是,csrutil 的設定實際上是在 NVRAM 中設定參數,所以當你重置 NVRAM (開機按住 command + option + P + R) 之後,SIP 會變回開啟狀態,所以要再重新關閉一次,切記切記!  
  12.   
  13.    
  14.   
  15. 而以下就是我目前遇到在 El Capitan 必須特別留意的軟體:  
  16.   
  17. TotalFinder:必須在 1.7.1 以上,並且關閉 SIP。 (1.7.1 beta 載點)  
  18. XtraFinder:官網下載最新版,並且關閉 SIP。  
  19. Bartender:必須在 1.3.2 版以上(如果你無法升級,試著開啟 beta 版檢查),暫時關閉 SIP (成功安裝後可以再次開啟)  
  20. Homebrew:如果出現無法編譯的問題,就去下載 Xcode 7,開啟並安裝 command line tools 之後就能解決  
  21. iStat Menus:必須在 5.11 版以上 (5.11 beta 載點),但因為在 5.11 之後,iStat Menus 的每個元件並不是分開的,而是整個合併為一大塊元件,所以目前不能把其他項目放置在 iStat Menus 元件的中間(例如:以前可以 RAM → Spotlight → CPU 這樣穿插放,但現在不行,iStat Menus 的項目必須連續。)如果要改各個項目的順序,要在 iStat Menus 裡面的設定改,不能直接在 menubar 拖曳。  
  22. Sequel Pro:如果用 SSH 連接的話會出錯,去抓 Nightly Builds 就可以了  
  23. theos:iOS 9 SDK 跟 theos 裡面的 header 似乎有些問題,如果有問題的話去用 iOS 8.4 的 SDK 或者抓 Xcode 6.4 回來編譯。(目前測試如果用到 Springboard 跟 UIKit2.h 的 header 好像會出錯)  
  24. Parallels Desktop:必須在 PD 10 (含) 以上  
  25. Fantastical 2:如果不能用下載 beta 看看(載點)(感謝 @katerjacob 補充)  
  26. CleanMyMac 3:必須在 3.1 beta 以上  
  27. 以上就是目前遇到的問題,但我覺得除了 iStat Menus 不能照以前的方法用之外(其實原因是因為 menucracker 失效了),其他不是太大問題。而 GM 版本雖然不是最終版本(這次是 GM Candidate,跟去年一樣,有可能會有 GM2、GM3),但是穩定性還算 OK(大家都知道,OS X 要真正穩定必須等到 10.x.2 之後…),所以如果有開發者帳號的,也可以考慮趕緊備份資料,準備上來 El Capitan 了!  
所幸,上述程序我几乎都不用。除了homebrew/parallels desktop。。。这两个的问题我已经解决了。黑黑
如果你们有遇到或者要用上述程序的,先做好心里准备

curl上传注意事项【新】

 众所周知,用curl上传只要设置4个变量即可(非HTTPS网站),那就是curlopt_url,curlopt_post,curlopt_returntransfer,curlopt_postfields,当然这4个都是大写。

curlopt_post,curlopt_returntransfer 都是 true,curlopt_url则是你要提交的网址,那么剩下的,curlopt_postfields就是你要上传的内容了。

上传文件在这里也变得非常简单,只需对应的值前面加个“@”即可,如curl_setopt($ch,CURLOPT_POSTFIELDS,array('file'=>'@/var/www/images/abc.jpg')); 文件通过realpath判断后存在的即可。

但是,这一切在php5.6里就发生了改成。php5.6不再支持@这样的上传方式,只能使用curl_file_create的方式来,所以上面的代码要改成

PHP代码
  1. curl_setopt($ch,CURLOPT_POSTFIELDS,array('file'=>curl_file_create('/var/www/images/abc.jpg','image/jpg','abc')));   

 

看看文档里怎么说:

XML/HTML代码
  1. CURLFile should be used to upload a file with CURLOPT_POSTFIELDS.  

然后官网的手册中的最后一条评论,仿佛是看不下去,写了个处理上传的程序

PHP代码
  1. There are "@" issue on multipart POST requests.  
  2.   
  3. Solution for PHP 5.5 or later:  
  4. - Enable CURLOPT_SAFE_UPLOAD.  
  5. - Use CURLFile instead of "@".  
  6.   
  7. Solution for PHP 5.4 or earlier:  
  8. - Build up multipart content body by youself.  
  9. - Change "Content-Type" header by yourself.  
  10.   
  11. The following snippet will help you :D  
  12.   
  13. <?php  
  14.   
  15. /** 
  16. * For safe multipart POST request for PHP5.3 ~ PHP 5.4. 
  17.  
  18. * @param resource $ch cURL resource 
  19. * @param array $assoc "name => value" 
  20. * @param array $files "name => path" 
  21. * @return bool 
  22. */  
  23. function curl_custom_postfields($charray $assoc = array(), array $files = array()) {  
  24.       
  25.     // invalid characters for "name" and "filename"  
  26.     static $disallow = array("\0""\"""\r""\n");  
  27.       
  28.     // build normal parameters  
  29.     foreach ($assoc as $k => $v) {  
  30.         $k = str_replace($disallow"_"$k);  
  31.         $body[] = implode("\r\n"array(  
  32.             "Content-Disposition: form-data; name=\"{$k}\"",  
  33.             "",  
  34.             filter_var($v),   
  35.         ));  
  36.     }  
  37.       
  38.     // build file parameters  
  39.     foreach ($files as $k => $v) {  
  40.         switch (true) {  
  41.             case false === $v = realpath(filter_var($v)):  
  42.             case !is_file($v):  
  43.             case !is_readable($v):  
  44.                 continue// or return false, throw new InvalidArgumentException  
  45.         }  
  46.         $data = file_get_contents($v);  
  47.         $v = call_user_func("end"explode(DIRECTORY_SEPARATOR, $v));  
  48.         $k = str_replace($disallow"_"$k);  
  49.         $v = str_replace($disallow"_"$v);  
  50.         $body[] = implode("\r\n"array(  
  51.             "Content-Disposition: form-data; name=\"{$k}\"; filename=\"{$v}\"",  
  52.             "Content-Type: application/octet-stream",  
  53.             "",  
  54.             $data,   
  55.         ));  
  56.     }  
  57.       
  58.     // generate safe boundary   
  59.     do {  
  60.         $boundary = "---------------------" . md5(mt_rand() . microtime());  
  61.     } while (preg_grep("/{$boundary}/"$body));  
  62.       
  63.     // add boundary for each parameters  
  64.     array_walk($bodyfunction (&$partuse ($boundary) {  
  65.         $part = "--{$boundary}\r\n{$part}";  
  66.     });  
  67.       
  68.     // add final boundary  
  69.     $body[] = "--{$boundary}--";  
  70.     $body[] = "";  
  71.       
  72.     // set options  
  73.     return @curl_setopt_array($charray(  
  74.         CURLOPT_POST       => true,  
  75.         CURLOPT_POSTFIELDS => implode("\r\n"$body),  
  76.         CURLOPT_HTTPHEADER => array(  
  77.             "Expect: 100-continue",  
  78.             "Content-Type: multipart/form-data; boundary={$boundary}"// change Content-Type  
  79.         ),  
  80.     ));  
  81. }  

好吧,其实多文件上传用这样的方式就挺好。

几个常见的 Composer 国内镜像

现在写PHP好象不用Composer总感觉有点Low了吧?好吧,即使这样,你在使用composer update的时候是不是也发现网速、进度low的不行。一个composer update要等半天。不说这个吧,你就是一个composer init也要等半天,这只是个空项目,你都要等这么久?composer 如果不加-vvv参数,你就感觉整个世界都停在那里了。所以,如果连接原始的composer还是加个-vvv参数吧

国内常见镜像有三个:

XML/HTML代码
  1. http://pkg.phpcomposer.com/  
  2. https://toran.reimu.io/  
  3. http://packagist.cn/  

 

使用方法很简单一种是在~/.composer/config.json中加入相应的信息,一种是在当前项目的composer.json中加入:

JavaScript代码
  1. "repositories": [  
  2.     {"type""composer""url""http://pkg.phpcomposer.com/repo/packagist/"},  
  3.     {"packagist"false}  
  4. ]  

 

加入的时候注意语法,如果是json的最后一个元素,记得不要加","即可,否则 会报错

OK这样就可以了,尽情的尝试吧(packagist.cn更新的有点慢,toran.reimu.io 是https的,如果你本机openssl版本低可能会更新失败)。好象话这么一说,只能用pkg.phpcomposer.com的源了(嗯,忍忍吧,如果他不能用,你再换)

更新:composer 源 

 

 

Tags: composer

【备份】MacOS WIN7 双系统,多分区 安装手记

鉴于我每次安装win7都是在用bootcamp的情况下,随之而来带来的问题就是,只有一个分区,这让我很苦恼。所以到最后我往往都是直接用虚拟机算了。

本文来自CU,本人目前没有测试过,先备着,万一哪天我又心血来潮了,我就用它来试一下(原文来自:http://bbs.chinaunix.net/thread-4166135-1-1.html)

本帖最后由 xinyv 于 2015-01-12 12:15 编辑

 

 

2015年元旦macbook air 安装记录

目的:

    1、air 安装双系统 Yosemite + win7

    2、win7 多分区

    3、单U盘安装

准备:

    16G U盘一个usb3.0

制作安装U盘:

1、下载最新的 MacOS Yosemite 10.10.1, win7sp1

    下载yosemite必须用 mac app store 下载,我下载的版本

    yosemite 10.10.1 md5:e37ac9e9c79de428529c6933419ee5ff

    win7sp1_x64.iso  md5:480b62c3acd6c8a36b18d9e906cd90d2

2、制作 win7 安装盘

    打开 Launchpad -> 其他 -> Boot Camp 助理,点击继续,选择创建 Windows 7 或更高版本的安装盘 和 从 Apple下载最新的Windows 支持软件,点击继续,选取你的 win7 的iso镜像,然后点继续,速度快慢就看你的网速是否给力了。

    制作完之后,找另一个 windows 系统,插上 U盘,在硬盘上新建一个文件夹,把U盘里面所有的文件都拷贝进去,这时候,你可以用U盘引导一下air 试试,(插入U盘,启动的时候按 option,选择WININSTALL)你会发现键盘鼠标都不能用,查资料是因为新款air使用了usb3.0  win7默认没有驱动

    安装驱动,参考链接 http://bbs.feng.com/read-htm-tid-8541291.html

安装驱动其实就是编辑 boot.win 和 install.win 这两个文件

创建二个文件夹m1、m2 用来 mount上面的两个文件 (cmd  命令)

XML/HTML代码
  1. mkdir m1 m2  

然后从刚才的备份中挂载 boot.win 和 install.win 我备份的目录是 D:\uu

XML/HTML代码
  1. dism /mount-wim /wimfile:d:\uu\source\boot.wim /index:2 /mountdir:m1  
  2. dism /mount-wim /wimfile:d:\uu\sources\install.wim /index:4 /mountdir:m2  

添加usb3.0驱动

XML/HTML代码
  1. dism /image:m1 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64\iusb3hub.inf  
  2.   
  3. dism /image:m2 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64\iusb3hub.inf  
  4.   
  5. dism /image:m1 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64\iusb3xhc.inf  
  6.   
  7. dism /image:m2 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\xHCI\Win7\x64\iusb3xhc.inf  
  8.   
  9. dism /image:m1 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\HCSwitch\Win7\x64\iusb3hcs.inf  
  10.   
  11. dism /image:m2 /add-driver /driver:d:\uu\$WinPEDriver$\IntelxHCISetup\Drivers\HCSwitch\Win7\x64\iusb3hcs.inf  

提交修改,umount 文件

XML/HTML代码
  1. dism /unmount-wim /mountdir:m1 /commit  
  2. dism /unmount-wim /mountdir:m2 /commit  
  3. rmdir m1 m2  

把 U 盘卸载,重新插到 air 上面

3、制作 air 安装U盘

    打开 Launchpad -> 其他 -> 磁盘工具,把U盘的信息全部抹掉,包括默认分区也要删除,然后重新创建U盘分区,创建的时候选择主引导记录,分两个区,第一个是 win_setup文件系统类型选 exfat,第二个选 MacOS 日志文件系统,第一个一定要是 windows 分区

参考链接:http://bbs.feng.com/read-htm-tid-2628649.html

 

    以前直接用下载的 dmg 制作就可以,新版系统的制作方式已经变化了

    打开Finder-应用程序,找到安装OS X Yosemite,右键-显示包内容,依次点开Contents-SharedSupport文件夹,你会发现一个InstallESD的DMG文件,双击打开这个文件,你会看到一个文件夹 Packages 

    下面打开终端输入

XML/HTML代码
  1. defaults write com.apple.finder AppleShowAllFile -bool true  
  2. killall Finder  

如果这条命令提示错误,你可以把后面的 -bool true 改成 YES,实在不行就 man 一下

    执行成功以后在看看刚才那个文件夹,多出了几个隐藏文件 BaseSystem.dmg

    打开 Launchpad -> 其他 -> 磁盘工具,选择 u 盘,选恢复

    把左侧的 u 盘拖到目标盘那里,把刚才我们看到的隐藏文件 BaseSystem.dmg 拖到源磁盘那里,然后点恢复。恢复完成以后,把 BaseSystem.dmg 和 BaseSystem.chunklist 拷贝到 u 盘苹果系统分区的根目录里面,然后进入 System\Installation 删除 Packages 这个链接,把 InstallESD 下面的 Packages 文件夹拷贝到这里来。拷贝 BaseSystem 哪两个文件不能省略,省略之后引导系统的时候会提示  undefined error 0 

    把系统文件在恢复隐藏

XML/HTML代码
  1. defaults write com.apple.finder AppleShowAllFile -bool false  
  2. killall Finder  

到此 Yosemite 的安装盘制作完成,我发现在 air 上按照上面的方法制作都可以成功,但在 pro 上制作安装盘失败。原因还没有找到

    参考链接:http://mac-how-to.wonderhowto.co ... 0-yosemite-0155306/

 

4、多系统安装盘制作

    把刚才制做好的 U盘插到刚才我们备份的 win系统上,利用 Windows7-USB-DVD-Download-Tool 工具和 win7 iso 创建一个win 安装 U盘,使用第一个我们预留的分区,制作完成以后,拷贝刚才我们备份的 uu 下的所有文件,直接覆盖进 u盘的 win 分区。拷贝完数据,安装盘就制作完成了。下面就是安装系统了。

 

5、安装系统

    因最前面有一个 200M 的 efi 分区,最后又有一个 Recovery 分区,在加上苹果系统自己占用的一个分区,win7 就只剩下一个分区了,网上说的总总办法,比如删除 Recovery,扩展那个 efi 分区,在10.10.1 上测试均有问题,不是 mac 系统找不到就是 win7 起不来,经多多次测试,发现一个折中的方案

    在重装系统的时候,直接提前分区,我分了 三个区,

        第一区 WinOS

        第二区 data

        第三区 MacOS

    这么分区的原因是 win7 会在最前面放一个 200 M的 efi,MacOS 会在最后面放一个 Recovery,这样前后都有系统分区把数据分区和功能分区隔离开,不容易损坏,分区之后用U盘引导,先安装 Yosemite,安装在最后一个分区,安装完以后在重新引导安装 win7,这时候你会发现 Recovery 被挤出了主分区表,Win7 看到的是未分配空间,不用搭理他,反正不是给你win7 用的,不认识就不认识吧,然后安装win7,安装 boot camp。安装好以后你会发现虽然 win7不认识,然这并不影响mac系统,启动的时候按 option ,你就会发现Recovery 仍旧是可以使用的,而且因为他被挤出去的原因,我们现在又多了一个分区名额,你可以增加一个扩展分区,然后在分若干个盘了。

 

至此,air就安装完了,我们保留了所有默认分区,而且 win7 支持多分区,单U盘安装双系统,多分区目的完成