≡ Menu

Mac OS x Restart Apache Web Server

How do I restart Apache web server under Mac OS X operating systems?

The apachectl command act as Apache HTTP Server control interface. It can be used to start, stop, and restart the Apache web server from command line.

Open a terminal and type any one of the following command:

sudo apachectl restart


sudo apachectl -k restart
Fig.01: Restarting Apache under Mac OS X

Fig.01: Restarting Apache under Mac OS X

Task: Stop Apache Web server

sudo  apachectl -k stop

Task: Start Apache Web server

sudo  apachectl -k start

{ 12 comments… add one }

  • Robert de Bock November 27, 2009, 11:59 am

    Thanks, but it might be easier this way: Open the “Sharing” preference, (de-)select “Web Sharing”.

  • nixCraft November 27, 2009, 1:54 pm

    I was just wondering if OS X got some sort of service manager. I need to dig it a little more…

    thanks for the comment!

  • Robert de Bock November 27, 2009, 2:10 pm

    The software to start/stop (load/unload) services is called “launchctl”. From the man page:

    launchctl interfaces with launchd to load, unload daemons/agents and generally control launchd. launchctl supports taking subcommands on the command line, interactively or even redirected from standard input.
    These commands can be stored in $HOME/.launchd.conf or /etc/launchd.conf to be read at the time launchd starts.

  • Leaman Crews November 27, 2009, 5:15 pm

    Vivek, what does the -k switch do? I couldn’t find it in the man page for apachectl on a Mac OS X system.

  • nixCraft November 27, 2009, 6:37 pm

    @Robert, I will look into it.

    @Leaman, the apachectl command works in two modes:
    a) Sys v style mode – One line command mode which take args like start, restart, and stop, and translating them into appropriate UNIX signals to httpd.

    apachectl start | stop | restart | graceful|graceful-stop

    b) Traditional UNIX mode with lots of options for testing and debugging. In this mode it can act as a simple front-end to the httpd command that simply sets necessary environment variables and then invokes httpd, passing through any command line arguments.

    apachectl -t
    apachectl -k stat | stop
    apachectl -d /webroot


  • Mashin Abad April 20, 2011, 7:53 am

    it does’mt work for me :(

  • Sumit July 3, 2011, 9:06 am

    SUM-IT:~ sumitgupta$ apachectl -k graceful
    httpd: Syntax error on line 488 of /private/etc/apache2/httpd.conf: Syntax error on line 8 of /private/etc/apache2/other/+entropy-php.conf: Cannot load /usr/local/php5/libphp5.so into server: dlopen(/usr/local/php5/libphp5.so, 10): Symbol not found: _libiconv\n Referenced from: /usr/local/php5/lib/libintl.8.dylib\n Expected in: /usr/lib/libiconv.2.dylib\n
    SUM-IT:~ sumitgupta$

    this is the problem i am facing please help…..

  • javier August 5, 2011, 5:29 pm

    i receive an error when I try to restart apache with: sudo apachectl restart
    the error reads: /urs/sbin/apachectL: line 73: unlimit: open files: cannot modify limit: invalid argument

    can anyone help! please.

  • leamanc August 5, 2011, 5:36 pm

    @Javier, I’d say there is an error in your httpd.conf file. Open it up in the plain-text editor of your choice–one that shows line numbers–and look at line 73. There is either a syntax error or an invalid argument for the option contained on that line.

    Good luck!

    • javier August 5, 2011, 9:08 pm

      i went to httpd.conf file and line 73 is ‘LoadModule include_module libexec/apache2/mod_include.so ‘ do you know anything about this kind of issue?
      thanks in advanced!

    • Mike Ritter October 7, 2012, 12:32 am

      This is not the correct solution. Please see my other reply for the solution.

Leave a Comment

   Tagged with: , , , , , , , , , , , , , ,