我正在尝试使用exec()函数(php)创建一个添加用户并在linux中创建public_html目录的php文件。
我可以将以下代码添加到php文件
exec(“useradd -d / home / username -m username”); exec(“mkdir / home / username / public_html”);
now ..我必须将public_html添加到smb.conf以在windows上运行public_html。
是否可以在命令行上编辑smb.conf?
当然,我将使用SSH作为root来执行php文件。
答案 0 :(得分:3)
编辑:在阅读了Roy Rico的回答后,我相信我误解了这个问题。
您可以使用nano或vi。如果你是初学者,那么nano会更直接。只需像这样使用它:
nano /etc/samba/smb.conf
我相信ctrl + o将保存文件,ctrl + x将退出。
答案 1 :(得分:2)
您是否希望使用在命令行上执行的php脚本编辑文件,或者您是否打算自己使用命令行编辑命令行(使用交互式shell)?
如果您尝试使用php脚本编辑文件,则必须使用fopen,fwrite命令,并将文件访问权限提供给脚本,然后您可能会遇到很多安全问题关注等等。最重要的是,这不仅仅是一个快速的答案,可以在这里给你。
如果您使用的是交互式shell,那么vi和emacs是很棒的编辑器,但如果您以前从未使用它们,那将非常令人生畏。 pico和nano对那些不熟悉CL编辑的人更友好。
答案 2 :(得分:1)
大多数人使用Vim或Emacs作为命令行编辑器。就个人而言,我更喜欢emacs,但尝试两种方式,看看你喜欢哪种。
答案 3 :(得分:1)
查看parse_ini_file()功能。
然后,如果你想在ini文件里写,试试这个:
function writeini($file,$title,$item,$data) {
$source = file($file);
$t_match = "/^\[".$title."\]/i";
$s_title = "";
$c = "0";
$o = "";
foreach ($source as $temp) {
$c++;
if (preg_match("/^\[.+\]/i",$temp)) {
if (preg_match($t_match,$l_title)) {
$done = "yes";
$f_write .= $item."=".$data."\n";
}
$l_title = $temp;
$f_write .= $temp;
} elseif (preg_match("/^".$item."=/i",$temp) && preg_match($t_match,$l_title)) {
$done = "yes";
$f_write .= $item."=".$data."\n";
$l_title = "";
} elseif ($c == count($source) && $done != "yes") {
if (preg_match($t_match,$l_title)) {
$f_write .= $temp.$item."=".$data."\n";
} else {
$f_write .= $temp."[".$title."]\n".$item."=".$data."\n";
}
} else {
$f_write .= $temp;
}
}
$ini_write = fopen($file,'w');
fwrite($ini_write,$f_write);
fclose($ini_write);
}