如何以编程方式重启WAMP或Apache?

时间:2011-10-05 18:11:25

标签: wamp

作为一些自动部署+测试脚本的一部分,我用它来验证为站点完成的编程,我有一些脚本可以更新Apache的配置文件。我想以编程方式重新启动WAMP,以使更改生效。有没有办法做到这一点?

脚本是powershell。

这是我的apache bin文件夹中的内容:

iconv
ab.exe
abs.exe
ApacheMonitor.exe
apr_dbd_odbc-1.dll
apr_ldap-1.dll
dbmmanage.pl
htcacheclean.exe
htdbm.exe
htdigest.exe
htpasswd.exe
httpd.exe
httxt2dbm.exe
libapr-1.dll
libapriconv-1.dll
libaprutil-1.dll
libeay32.dll
libhttpd.dll
logresolve.exe
openssl.exe
php.ini
php5isapi.dll
php5ts.dll
rotatelogs.exe
ssleay32.dll
wintty.exe
zlib1.dll

4 个答案:

答案 0 :(得分:6)

您可以使用此命令重新启动Wamp,Apache,MySQL服务:

启动服务

NET START wampapache
NET START wampmysqld

停止服务

NET STOP wampapache
NET STOP wampmysqld

对于 mariaDB ,请将wampmysqld替换为wampmariadb

对于 64位:将64附加到服务名称。

答案 1 :(得分:4)

简单执行命令:

httpd.exe -k restart

<强> PS。这是我的windows wathdog

@echo off
:loop

timeout /t 30 /nobreak 
REM . 
tasklist /FI "IMAGENAME eq php-cgi.exe" 2>NUL | find /I /N "php-cgi.exe">NUL
if "%ERRORLEVEL%"=="1" goto Process_NotFound


tasklist /FI "IMAGENAME eq httpd.exe" 2>NUL | find /I /N "httpd.exe">NUL
if "%ERRORLEVEL%"=="1" goto Process_NotFound


goto loop



:Process_NotFound

TASKKILL /F /IM php-cgi.exe
TASKKILL /F /IM httpd.exe

ping 127.0.0.1 -n 2
Apache -k start
ping 127.0.0.1 -n 3
cls
php.exe -r "$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://server.name/'); curl_setopt($ch, CURLOPT_VERBOSE, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);   curl_exec($ch);"
ping 127.0.0.1 -n 3
ab.exe -n 10 -c 3 http://server.name/

goto loop

答案 2 :(得分:2)

我最后编写了一些代码来查找“wampapache”服务并重新启动它。

public static void ResetApache()
{
    ServiceUtil.RestartService("wampapache", 10000);
}

...

public class ServiceUtil
{
    public static void RestartService(string serviceName, int msTimeout)
    {
        ServiceController service = new ServiceController(serviceName);

        int startTicks = Environment.TickCount;
        TimeSpan timeout = TimeSpan.FromMilliseconds(msTimeout);

        if (service.Status != ServiceControllerStatus.Stopped
            && service.Status != ServiceControllerStatus.StopPending)
        {
            service.Stop();
        }

        service.WaitForStatus(ServiceControllerStatus.Stopped, timeout);

        int midTicks = Environment.TickCount;
        timeout = TimeSpan.FromMilliseconds(msTimeout - (midTicks - startTicks));

        service.Start();
        service.WaitForStatus(ServiceControllerStatus.Running, timeout);

        //int finalTicks = Environment.TickCount;
        //var totalTime = TimeSpan.FromTicks(finalTicks - startTicks);

        //Console.WriteLine("Reseting process took " + (totalTime.TotalMilliseconds/1000.0) + " seconds.");
    }
}

答案 3 :(得分:2)

  
      
  1. CTRL + R - &gt;类型(命令) - &gt;右鼠标 - &gt;运行管理员
  2.   
  3. 转到您的wamp aptech bin文件夹,例如:D:\ wamp \ bin \ apache \ apache2.4.9 \ bin&gt;
  4.   
  5. 键入httpd.exe -d(显示所有apache参数命令)
  6.   
  7. httpd.exe -k start -n wampapache64
  8.   
  9. httpd.exe -k stop -n wampapache64
  10.   
  11. httpd.exe -k restart -n wampapache64
  12.   

图形说明:

  

第一步:

enter image description here

  

第二步:

enter image description here