我有一台安装了 PureFTP 的 Debian Squeeze Machine。
PureFTP 有一个名为 Upload-Script 的子工具。此工具可以配置为在通过 FTP 完成上传后调用。但是,我找不到让这个脚本运行的方法......
我希望 PureFTP 在每次上传后执行 PHP 脚本。
我已将 PureFTP 配置如下:
- 为了启用 UploadScript-Functionality,我在 /etc/pure-ftpd/conf 中有一个名为 CallUploadScript 的文件,内容为“ yes ”。
- 在 /etc/default/pure-ftpd-common 我做了以下设置:
- UPLOADUID和UPLOADGID我尝试将其设置为 root 和 ftpuser 的 UID/GID - 两者都不起作用。
- 设置每次上传后要调用的UPLOADSCRIPT的路径。
当我使用 /etc/init.d/pure-ftpd restart 重新启动 ftp 服务器时 - 输出如下:
Restarting ftp server: Running: /usr/sbin/pure-ftpd -l puredb:/etc/pure-ftpd/pureftpd.pdb -l pam -E -8 UTF-8 -O clf:/var/log/pure-ftpd/transfer.log -P *IP-REMOVED-FOR-PRIVACY* -A -Y 2 -o -u 1000 -p *PORT-RANGE-REMOVED-FOR-PRIVACY* -c 60 -d -X -B
Restarting ftp upload handler: pure-uploadscript.
所以 PureFTP 是用整个上传脚本的东西编译的......
这是我已经尝试过的一些步骤/事情:
我认为可能是因为 PHP 无法正常工作。所以我定义了一个 Shell 脚本来对 /tmp-folder 中的文件进行测试输出。但是上传后什么也没发生——脚本没有执行。
最初,要调用的脚本位于 /opt/uploadscript/script.php
所以我想,也许如果我将脚本放在 ftpuser 上传内容的同一个 web 文件夹中,它可能会起作用(可能是因为某些 chroot 限制) . 所以我把uploadscript-folder放到/var/www/vhost/domain.com/httpdocs/这是ftp用户的主目录。但仍然 - 上传后没有任何事情发生。为了确保它不是我的 php-script 中的错误,我将原始 php-script 替换为 testscript,它只输出使用 touch() 创建的 testfile,并将当前日期作为文件名。执行相同操作的 shell 脚本也不起作用。从命令行调用的两个脚本都可以直接完美运行。
你有什么建议吗,我还能尝试什么,或者我什至错过了一些重要的东西?