PHP域映射脚本
我不知道这个词的确切含义,所以我的标题可能不正确 基本上,我要做的是编写一个包含输入字段的PHP脚本:PHP域映射脚本,php,mapping,dns,Php,Mapping,Dns,我不知道这个词的确切含义,所以我的标题可能不正确 基本上,我要做的是编写一个包含输入字段的PHP脚本: Domain Name: <input type='text' name='dname' id='dname' value='http://example.com' /> <input type='submit' name='addname' value='Add A Domain' /> 域名: 当用户在文本字段中键入自己的域并按submit时,脚本将自动创建一个
Domain Name: <input type='text' name='dname' id='dname' value='http://example.com' />
<input type='submit' name='addname' value='Add A Domain' />
域名:
当用户在文本字段中键入自己的域并按submit时,脚本将自动创建一个目录,在那里复制一些PHP脚本并将域名映射到那里。(当然,域名指向我们的服务器。)
我已经了解了mkdir()和copy()部分,但无法了解映射部分。如何使用PHP自动添加映射到/home/user/public\u html/copy1/的条目?虽然您可以直接从PHP页面进行映射,但我建议不要这样做,原因有很多,从高故障风险(例如,页面执行突然中断)到安全风险(您的httpd用户将拥有对其自身配置的写访问权,以及文件系统中不应该具有的某些内容) 几天前,我编写了一个类似的控件“网站创建控制面板”,其工作方式大致如下:
- php脚本接收网站创建请求并将其存储在某个位置(例如数据库中).dot
- 另一个脚本,以root身份通过cron运行,比方说,五分钟检查网站创建请求队列。如果有:
- 将站点创建任务标记为“已锁定”
- 在适当的位置创建目录,用脚本等填充
- 根据需要更改所有权限
- 创建新的virtualhost配置并启用它
- 使Web服务器重新加载其自己的配置
- 将站点创建任务标记为“完成”
www.example.com
):
当然,还要向将用于运行脚本的用户授予对网站基本目录的写入权限。我认为您需要将虚拟主机添加到apache配置中(例如httpd.conf) 像这样: ServerName example.com DocumentRoot/home/user/public\u html/copy1/ 虚拟主机配置的Apache文档:
现在已经超过10个月了,所以我只建议一下我的发现 虽然直接写入httpd.conf似乎是唯一的方法,但最近我们的网站更改了服务器。这给我们的文件/文件夹权限带来了很多麻烦,托管公司出于安全考虑拒绝帮助我们 所以我再看一眼,发现我正在使用CPanel来托管,我当然可以使用Addon域特性来创建和添加新的域 但它也有它的局限性。因为它是一个附加域,我们不能再限制每个域的带宽和磁盘使用率。所有东西都是共享的。但这对我们来说并不重要 到目前为止,它是有效的。您可以使用CPanel官方网站上提供的CPanel API库,也可以使用直接URL请求方式来创建域。因为我们正在进行新的wordpress安装,所以我们也创建了一个新的数据库
http://{username}:{password}@{mysite.com}:2082/frontend/x3/sql/addb.html?db={dbname}
http://{username}:{password}@{mysite.com}:2082/frontend/x3/sql/adduser.html?user={dbuser}&pass={dbpass}
http://{username}:{password}@{mysite.com}:2082/frontend/x3/sql/addusertodb.html?db={dbname}&user={dbuser}&ALL=ALL
http://{username}:{password}@{mysite.com}:2082/frontend/x3/addon/doadddomain.html?domain={newsite.com}&user={ftp_user}&dir={ftp_dir}&pass={ftp_pass}&pass2={ftp_pass}
你可以用它来安装joomla、drupal、phpbb甚至你的自定义脚本
希望它能帮助阅读本文的任何人。谢谢。我很确定您需要Apache VirtualHosts…您是否具有根级别的服务器访问权限?(注意:假设此处使用Apache,但这适用于所有类型的服务器)如果您未在此处使用任何url编码或任何框架…则可以解析url..就像“”是值表单输入字段,然后您可以将其设置为/home/user/public_html/new/rajat…您需要做的只是将.com之后的部分附加到..../public_html/@rajat nope。目录名无论如何都不重要。映射后,用户不会看到/home/user/public_html/copy1/当使用FTP时,他们只会看到该目录上的文件只允许使用ectory。正如redShadow所说,我们可以将域名替换为slugify,然后使用它。如果我保护脚本,只允许少数选定的人访问表单,会怎么样?这样更好吗?当然,你必须确保“可见”的安全带有某种登录/访问控制的脚本;在任何情况下,您都应该按照我所述创建一些东西来执行这些管理任务,否则很可能会出现错误/安全问题。@redShadow您能帮我回答这个问题吗?您能帮我回答这个问题吗
Cmnd_Alias A2RELOAD = /usr/sbin/apache2ctl graceful
youruser ALL=NOPASSWD: A2RELOAD
%yourgroup ALL = NOPASSWD: A2RELOAD
http://{username}:{password}@{mysite.com}:2082/frontend/x3/sql/addb.html?db={dbname}
http://{username}:{password}@{mysite.com}:2082/frontend/x3/sql/adduser.html?user={dbuser}&pass={dbpass}
http://{username}:{password}@{mysite.com}:2082/frontend/x3/sql/addusertodb.html?db={dbname}&user={dbuser}&ALL=ALL
http://{username}:{password}@{mysite.com}:2082/frontend/x3/addon/doadddomain.html?domain={newsite.com}&user={ftp_user}&dir={ftp_dir}&pass={ftp_pass}&pass2={ftp_pass}