我的学校作业有问题。 我们已经在apache上创建了一个Web服务器,其中gui用于注册“域”。服务器是VPN,即域名将不是domain.com,而是domain.ourserver.com。
工作原理:
PHP运行shell脚本,如下所示:(这是测试版本)
#!/bin/bash
touch /var/www/log.txt
function createDirectory() {
mkdir "/var/www/$1"
chmod -R g+rw "/var/www/$1"
}
function createFtpUser() {
echo "writing password" >> /var/www/log.txt
echo $2 > /var/www/passfile
echo "writing password 2" >> /var/www/log.txt
echo $2 >> /var/www/passfile
echo "creating ftp user $1" >> /var/www/log.txt
pure-pw useradd "$1" -u ftpuser -d "/var/www/$1" -m < /var/www/passfile
echo "updating database" >> /var/www/log.txt
pure-pw mkdb
echo "deleting temp passwd file" >> /var/www/log.txt
rm -f /var/www/fei-ispwe-5/passfile
echo "-------------------------------------" >> /var/www/log.txt
}
function createIndexFile() {
echo "<html><body><h1>It works!</h1></body></html>" > /var/www/$1/index.html
createDirectory $1
createFtpUser $1 $2
createIndexFile $1
exit
1,1
如果我使用以下命令运行此脚本:#bash webscript.sh admin“ 123456”,则一切正常。但是,如果我从php运行此shell:
exec("bash '/var/www/webscript.sh' 'mydomain' '123456'", $output);
脚本不会返回错误,一切看起来都很好,芽用户也不会 创建。
我们的目录结构:
/var/www/
- webscript.sh
- passfile (two same rows with password for pure-pw useradd in out of script is deleted)
- fei-ispwe-5 (domain directory)
- sourcecode of main page
- other directory, created by webscript.sh for Dyn. vhost
- index.html (generated from webscript.sh)
密码文件已创建,并且包含密码相同的两行。该文件夹也是成功创建的,如果我输入URL mydomain.outserver.cz,我将看到“它有效!”
只有纯ftpd用户没有创建。
怎么了?非常感谢。