使用php和文件静默安装Apache 我正在编写一个C++安装程序,希望它在没有用户交互的情况下执行以下任务: 静默安装Apache的一个实例 默默地将PHP添加到所述apache实例中 确定apache实例的DocumentRoot并将一组php文件复制到该位置

使用php和文件静默安装Apache 我正在编写一个C++安装程序,希望它在没有用户交互的情况下执行以下任务: 静默安装Apache的一个实例 默默地将PHP添加到所述apache实例中 确定apache实例的DocumentRoot并将一组php文件复制到该位置,php,c++,apache,silent-installer,Php,C++,Apache,Silent Installer,目前我让它使用以下命令安装apache:apache_2.2.6-win32-x86-no_ssl.msi/passive alluser=1 SERVERADMIN=admin@localhostSERVERNAME=localhost SERVERDOMAIN=localhost SERVERPORT=80。这将使用指定的设置以静默方式安装apache,并使服务自动启动。太好了 问题是,在此之后,我不知道如何获取Apache使用的DocumentRoot(默认情况下,它是测试计算机上的C:\

目前我让它使用以下命令安装apache:
apache_2.2.6-win32-x86-no_ssl.msi/passive alluser=1 SERVERADMIN=admin@localhostSERVERNAME=localhost SERVERDOMAIN=localhost SERVERPORT=80
。这将使用指定的设置以静默方式安装apache,并使服务自动启动。太好了

问题是,在此之后,我不知道如何获取Apache使用的DocumentRoot(默认情况下,它是测试计算机上的C:\Program Files(x86)\Apache Software Foundation\Apache\htdocs),因此我不知道将文件发送到何处。因此,我需要:

  • 控制htdocs的位置(最好)
  • 找到一种动态获取DocumentRoot的方法

谢谢

您需要解析
Apache/conf/httpd.conf
文件,然后将
DocumentRoot
值更改为您希望他指向的位置

找到这个

DocumentRoot ".*"
换成

DocumentRoot "Your Location"
要查找httpd.conf的位置,知道apache的默认安装文件夹是Program Files

使用win32api

TCHAR pf[MAX_PATH];
SHGetSpecialFolderPath(
    0,
    pf, 
    CSIDL_PROGRAM_FILES, 
    FALSE ); 


然后将
\Apache Software Foundation\Apache\conf\httpd.conf
添加到program files文件夹中,找到httpd.conf文件

,好的,谢谢。问题是,如何找到Apache/conf/httpd.conf的路径?抱歉,我遗漏了一些明显的东西:S@user1014679我编辑了我的答案,找到ProgramFiles文件夹,然后您将找到apache安装文件夹和httpd.conf.ok。。这是否适用于64位和32位系统(即“程序文件”/“程序文件(x86)”)?@user1014679这正是使用win32 api检索程序文件目录的目的,它适用于任何系统;)太棒了。谢谢你的帮助,我会试一试,让你知道我的进展如何!