Mac OS x Restart Apache Web Server

by on November 27, 2009 · 12 comments· LAST UPDATED December 24, 2009


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
Tweet itFacebook itG+ itDownload PDF versionFound an error/typo on this page?

{ 12 comments… read them below or add one }

1 Robert de Bock November 27, 2009 at 11:59 am

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


2 nixCraft November 27, 2009 at 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!


3 Robert de Bock November 27, 2009 at 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.


4 Leaman Crews November 27, 2009 at 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.


5 nixCraft November 27, 2009 at 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



6 Mashin Abad April 20, 2011 at 7:53 am

it does’mt work for me :(


7 Sumit July 3, 2011 at 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/ into server: dlopen(/usr/local/php5/, 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…..


8 javier August 5, 2011 at 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.


9 Mike Ritter October 7, 2012 at 12:30 am

Solution is here

changes are to be made in “/usr/sbin/apachectl”

comment out the these lines.

i did this through the command line using ‘vi’ commands


10 leamanc August 5, 2011 at 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!


11 javier August 5, 2011 at 9:08 pm

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


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

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


Leave a Comment

Tagged as: , , , , , , , , , , , , , ,

Previous Faq:

Next Faq: