归档 四月 2011

wordpress提示填写ftp账户连接信息解决方案

笔者的博客一直用wordpress,用起来也很方便。之前由于设置问题,笔者一直手动更新插件、主题。时间一长很多插件都需要更新,手动操作起来相当麻烦。于是试着在后台更新,却出现“执行请求动作,连接信息必需提供”这样的提示信息。要求输入ftp账户。于是google一下,发现出现这种问题的朋友还真不少,下面将笔者的解决方法细数如下,与各位网友共享。 分析:出现要求输入ftp账户连接信息的根本原因是linux的权限问题,由于执行web的账户一般是httpd用户,而用户的web文件可能存放在其他用户目录下。导致httpd用户无法顺利写入。 解决:方法有很多,如将httpd账户与web账户设为一致;或将wp-content目录的属主改为httpd账户。但是这样会出现很多安全隐患,并且会出现web账户无法删除或修改wp-content下的内容。 基于此,笔者考虑了使用ACL来解决,ACL是应用于ext2、3、4系列文件系统的一种权限扩展设置方案。在原有的user、group、other三种权限的基础上针对特定用户或组来扩展权限设置的范围。 setfacl -m -R u:httpd:rwx wp-content/ setfacl -m -R d:u:httpd:rwx wp-content/ 使用setfacl命令设置wp-content文件夹为httpd用户可读写 设置完毕后,使用ll查看文件夹时会发现wp-content/ 的权限列表最后有一个”+”号 如果希望查看详细信息,使用 getfacl wp-content/ ok,设置完成,这回可以在线升级了吧?! 等等,还是提示需要输入ftp账户的信息!这个是怎么一回事?!笔者在设置完上面的步骤后,也很纳闷。只好翻开wordpress的源代码找寻答案。在wp-admin/includes/file.php 文件中有一个request_filesystem_credentials函数, 它控制着wordpress访问文件系统的方式以及认证。如果有兴趣的朋友可以详细研究一下这个函数,不过笔者现在只需要request_filesystem_credentials返回true就可以了。^_^ 在网站根目录的wp-config.php中添加一行define(‘FS_METHOD’, ‘direct’); ok!这样就万事大吉啦^_^

用liveusb-creator把fedora安装到U盘操作系统

手头有一个4G的kingmax超棒,平时用不了那么多空间(装电影直接用移动硬盘)。于是生出安装U盘操作系统的念头。决定安装fedora 14。理由是操作起来比较简单,方便使用。 下面说下步骤: 1、从fedora 官方下载最新的livecd ISO  文件 和liveusb  ( https://fedorahosted.org/liveusb-creator/) 2、liveusb-creator的安装一定要按它默认的路径安装,否则无法执行(笔者的教训) 3、要备好7z压缩软件,liveusb-creator解压iso的时候会用到。传送门 4、如果你想做个只读系统,那么就直接默认生成就可以了;如果希望修改U盘操作系统的配置,那么记住要在“永久存储”这一项上设置256-512M的空间(空间大一下更好,方便你装gcc,wget之类的常用软件)。 5、整个耗时约2分钟,重启机子后选择U盘启动就可以使用啦^_^

linux下使用ssh管理VPS的注意事项

鉴于windows系统下网络效率的低下,笔者最近将所有的操作系统均转为linux。之前一直使用windows下的putty来登录ssh以管理vps。在linux下首要问题是解决vps的管理问题。 笔者采用key文件交互登录的方式连接ssh。因此,第一步要生成ssh的key文件。 1、ssh-keygen 2、接着,将服务器上的密钥、公钥下载下来。保存在当前用户的.ssh文件夹下。 这里需要注意的问题是一定两个都要下载,只下载密钥,会提示需要公钥。putty貌似米有这个问题,直接下载密钥然后转换一下就可以了。 ssh的登录问题解决完毕,紧接着 ,新的问题又来了;由于笔者在公司通过内网HTTP代理方式上网。貌似代理无法直接在ssh上使用。笔者在查阅资料后发现。ssh需要经过tunnel(隧道)来使用HTTP代理(或者还有其他好方法?笔者还不知道=_=!,各位网友不吝赐教)。 1、下载一个tunnel软件,如 corkscrew 下载地址 解压后,编译 tar zxf corkscrew-2.0.tar.gz cd corkscrew-2.0 ./configure make && make install 2、修改ssh配置 vi /etc/ssh/ssh_config 添加 Host * ProxyCommand corkscrew server port %h %p 保存后,可以直接使用ssh登录了^_^