买了虚拟主机,除了放Blog,还可以做些什么用?IPowerWeb的空间看起来还不错,用起来有哪些毛病,怎么解决?下面我们来讲这些问题。
一、虚拟主机的其他应用
除了Blog,php空间当然可以有点别的用处,比如:
1、网盘
1500G容量的空间,当然可以用来存放点东西,但是php下的网盘程序或者是文件分享程序(区别在于是否提供提取码,供别人下载),基本上没有特别著名和权威的。
如果要用有提取码的,我推荐使用“拓网文件上传共享系统V1.0”(该公司现在似乎已经遗忘了这个php产品,已经全面转向asp产品了),这个东西的免费版可以从网上随意下到,但是不支持用户管理(也就是谁都可以上传,建议在上传页面用.htaccess文件设一个密码)。它提供了上传、管理文件和提取码的功能。
如果只是要一个自己保存文件的东西,这个更适合:Uploader,搜索“Uploader Samoa汉化版”即可下载到。这个提供了用户管理,但是不提供给别人下载的功能,只是自己使用而已;但是你可以通过直接提供地址、或者使用WordPress的WP-DownloadManager插件来实现类似于提取的下载。
注意,要上传文件,请确保php.ini中的file_uploads为ON,并且以下几项最好达到或者超过我所说的数值:
max_execution_time = 600 max_input_time = 180 memory_limit = 64M post_max_size = 210M upload_max_filesize = 200M
2、WebFTP
顾名思义就是在网页上使用的FTP软件,但是我高估了它的作用,以为”保存到本地“的功能意味着可以”保存到服务器“,结果在服务器上安装之后,发现还是只能下载到我的电脑上,实现”从一台服务器下载另一台服务器的文件“还需要别的方法(下面会说)。
虽然如此,但精致的界面和功能还是让我想要推荐一下这个软件:net2ftp,我觉得其实可以在校园网或者单位内网安装这个东西,可以省去大部分人使用FTP客户端的麻烦。
3、文件转移
我想从英国的主机商那里把我以前上传的一些文件转移过来(好几G,下载到本地再上传到美国估计要几天时间),条件是:
- 两台主机之间对传很快,控制者(我)进行中转则很慢
- 两者的FTP都不支持FXP
- 两者都是php空间,所有的文件都可以通过http或者FTP来下载
- 两者都不提供SSH
这种时候应该怎么让做呢?首先想到的是上面那个网页FTP,但是不如人愿;然后想到的是利用Cron来调用wget,但是IPower控制面板中的Cron似乎在权限上做了一点限制(或者是我不会用吧),未能成功;第三想到的是利用php调用系统命令,或者php自己的下载功能来下载,但我是php代码盲,看懂一半还行,写几乎一句都写不出来,所以决定上网寻找已经做好的工具……还真有
(1)Rapidget(也叫a2b)
这个玩意明确写着唯一的功能就是在一个服务器上,从另一个服务器下载文件……非常小巧,但做得很不错,能自己选择保存路径、能使用代理、还有进度条,唯一的问题是它是基于php的自身函数来下载文件的,所以受php.ini中文件大小、运行时间和内存等的限制。由于网上已经很难下载到,连作者都不提供下载了,所以我放上来给大家。
Rapidget (35.5 KiB, 511 hits)
(2)PhpSpy
这是一个php后门程序,可以管理文件,最重要的是可以执行命令。所以把这个程序上传,并且上传一个URL.dat的要下载文件的文件名列表(用FTPRush在源FTP上列出),用
wget -i URL.dat -B http://Example.com/example/
就好了,其中-i表示从文件读取要下载的文件链接;-B从文件读取的链接需要加上前缀(因为我在URL.dat里只放了文件名)。这个方法比前一个方法更适合于下载大量文件,而且由于调用系统命令,不受php的内存等限制。但过于多的文件还是要考虑超时问题,建议把php.ini中的超时设长一点,并且以此不要下载太多的文件。下载地址http://www.4ngel.net/
我就是用了这第二种方法,一个小时不到就把4G多的文件转移过来了。两者之间对传的速度超过2M/s(Rapidget测的)。
当然,php空间可以装论坛、CMS等各种玩意,这些东西网上广为流传,我这里就不介绍了。
二、IPowerWeb空间的Bug
1、Zend问题
我知道旧版本的Zend和php5不兼容,所以当你选择php版本为php5的时候,默认的php.ini文件中没有Zend一项,而且IPower提供的Zend模块也不够新,加上了Zend的内容估计也不能运行。
但是php4默认不开Zend也太不够厚道了,但是当你选了php5再改回php4的时候,默认的文件就有Zend这一项了,我也不知道怎么搞的……反正无论如何,如果你发现自己的站点没有打开Zend,在php.ini的末尾加入以下内容(路径仅适用于IPowerWeb的虚拟主机,其他空间请自行修改路径)
[Zend] zend_optimizer.optimization_level=15 zend_extension_manager.optimizer=/usr/local/Zend/Zend-2.5.7/lib/Optimizer-2.5.7 zend_extension_manager.optimizer_ts=/usr/local/Zend/Zend-2.5.7/lib/Optimizer_TS-2.5.7 zend_extension=/usr/local/Zend/Zend-2.5.7/lib/ZendExtensionManager.so zend_extension_ts=/usr/local/Zend/Zend-2.5.7/lib/ZendExtensionManager_TS.so
2、phpMyAdmin问题
IPowerWeb空间的瓶颈似乎在Web服务器和MySQL服务器之间的连接,从Web服务器登录数据库实在是缓慢,导致装在Web服务器中的phpMyAdmin(比如WordPress的WP-phpMyAdmin插件)几乎从来不能正常运行。我的建议是:一、用IPower控制面板中的那个phpMyAdmin,反正默认都是UTF8,用起来也没啥问题;二、像我一样喜欢追求新版本的,请自行修改php.ini以提供够大的内存和够长的超时时间……(要修改的条目前面已经说过了)
3、Session问题
这是最致命的问题,当你装上我这里提到的Uploader,”拓网上传系统“和WP-phpMyAdmin之后会发现,前者如果不记录登陆状况就会自动跳出,后两者根本无法登陆,我仔细研究发现是session无法启用的问题。但是上网搜遍了,都说session问题是php.ini中配置的问题,但是这么专业的公司怎么会在默认配置文件中写错呢?
事实证明,不要迷信权威,要自己试验,我把[Session]节中的session.save_path由默认的var/tmp-sessions(好象是这个,忘了)改成了我在虚拟主机的web根目录下建的一个目录,并且把权限改为777,果然能用了!看来,要在IPower空间中使用session,请自行建立一个目录并且把完整地址(控制面板中左栏显示的很长的那个Linux下的完整地址)设为session.save_path。
至此,整个IPowerWeb空间已经搞定,我的Blog也运行自如了,最后一集是感慨和废话……敬请期待。
Related posts:
February 1st, 2008 at 5:17 pm
国外主机都是那么大的空间,但我就一直没想到很好的用途……
February 1st, 2008 at 9:22 pm
很简单啊,做一个巨大的下载站就好了,我就做了另一个Blog,可以赚广告费……
March 23rd, 2008 at 12:49 pm
[...] 还记得我在这篇文章里提到过IPowerWeb的空间不支持php5打开Zend Optimizer么?现在看起来是我搞错了,但是IPowerWeb给的默认值是不打开Zend Optimizer的,就是因为这一点害得我研究了半天。 [...]
April 8th, 2009 at 11:11 am
[...] 还记得我在这篇文章里提到过IPowerWeb的空间不支持php5打开Zend Optimizer么?现在看起来是我搞错了,但是IPowerWeb给的默认值是不打开Zend Optimizer的,就是因为这一点害得我研究了半天。 [...]