2014-09-25 94 views
0

我寫一個C++安裝程序,並想擁有它執行以下任務而無需用戶交互:默默的PHP和文件安裝Apache

  • 靜默安裝Apache
  • 的實例默默地添加PHP來表示阿帕奇例如
  • 確定Apache實例的DocumentRoot的和一堆PHP文件複製到該位置

目前我有它使用此命令安裝Apache:apache_2.2.6-win32-x86-no_ssl.msi /passive ALLUSERS=1 [email protected] SERVERNAME=localhost SERVERDOMAIN=localhost SERVERPORT=80。這會悄悄地安裝apache並且指定的設置並且自動啓動服務。完善。

問題是,在這之後我不知道如何獲得Apache使用的DocumentRoot(它在我的測試計算機上是默認的C:\Program Files (x86)\Apache Software Foundation\Apache\htdocs),所以我不知道在哪裏發送文件。所以,我要麼需要:

  • 控制htdocs目錄(最好)的位置
  • 找到一個方法來動態地抓取的DocumentRoot

謝謝!

回答

0

您需要解析Apache/conf/httpd.conf文件,然後將DocumentRoot值更改爲您希望他指向的位置。

找到這個

DocumentRoot ".*" 

將其更改爲

DocumentRoot "Your Location" 

要查找的httpd.conf知道的apache默認安裝文件夾是PROGRAME文件的位置...

使用贏32 API

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

http://msdn.microsoft.com/en-us/library/bb762204(VS.85).aspx

然後加入\Apache Software Foundation\Apache\conf\httpd.conf到Program Files文件夾,找到httpd.conf文件

+0

好是有道理的,謝謝。問題是,我如何找到'Apache/conf/httpd.conf'的路徑?對不起我錯過了一些顯而易見的東西:S – Raiden616 2014-09-25 16:45:09

+0

@ user1014679我編輯了我的答案找到程序文件文件夾,然後你會發現apache安裝文件夾和httpd.conf。 – Isaac 2014-09-25 16:55:00

+0

好的,太棒了..會在64位和32位系統(即「Program Files」/「Program Files(x86)」)上工作嗎? – Raiden616 2014-09-25 17:17:16