PHP调用系统函数
时间:2010-02-03 来源:flreey
最近由于搞垃圾站的原因,网上的采集器要么要钱,要么不好用,而且大部分好的要有客户端,而自已是没有服务器的,而且租的服务器不支持ssh。考虑用perl写一个脚本。
花了几天,算是勉强凑出了采集器代码,但通过php运行perl脚本时一直没反应。
一直在考虑脚本问题,或者是路径问题以及php的函数问题,反复调试,修改代码,依然没反应,就是空白一片。后来通过在perl脚本中插入
输出,发现perl脚本被运行了,只是perl脚本中运行的外部程序,没法运行。无意中在perl中使用了命令'whoami',并且是通过php运行的,结果显示www-data.(通过php运行后,perl将继承php的权限),而自已的机子好像并没有这个帐户(应该是安装php后自动建的)。于是自已切换到该用户:www-data.
su www-data .要求密码。我可不知道,于是先切换到root帐户,再切换到www-data,这样就不需要知道密码了。
切换成功后,使用命令,ls -l。正常显示。再使用wget -nc http://xxx.xxx.xxx 。准备下载,也显示传输中,在最后却显示权限不够,无法下载index.html到磁盘中。于是切换回root用户,将脚本目录的属主改为www-data。chown www-data\:www-data xxx/(xxx 是我脚本执行的目录)再次运行wget命令,下载成功。返回php,运行php脚本,hoho,脚本执行成功。
总结:php调用系统函数时,权限要注意哦!(这是操作系统的常识,不是吗?)
花了几天,算是勉强凑出了采集器代码,但通过php运行perl脚本时一直没反应。
一直在考虑脚本问题,或者是路径问题以及php的函数问题,反复调试,修改代码,依然没反应,就是空白一片。后来通过在perl脚本中插入
输出,发现perl脚本被运行了,只是perl脚本中运行的外部程序,没法运行。无意中在perl中使用了命令'whoami',并且是通过php运行的,结果显示www-data.(通过php运行后,perl将继承php的权限),而自已的机子好像并没有这个帐户(应该是安装php后自动建的)。于是自已切换到该用户:www-data.
su www-data .要求密码。我可不知道,于是先切换到root帐户,再切换到www-data,这样就不需要知道密码了。
切换成功后,使用命令,ls -l。正常显示。再使用wget -nc http://xxx.xxx.xxx 。准备下载,也显示传输中,在最后却显示权限不够,无法下载index.html到磁盘中。于是切换回root用户,将脚本目录的属主改为www-data。chown www-data\:www-data xxx/(xxx 是我脚本执行的目录)再次运行wget命令,下载成功。返回php,运行php脚本,hoho,脚本执行成功。
总结:php调用系统函数时,权限要注意哦!(这是操作系统的常识,不是吗?)
相关阅读 更多 +