Lion comes with Apache and PHP installed. We just need to enable PHP, install MySql and create a database, then download drupal.
My new laptop which came with Lion has PHP 5.3.15, using the test page we’ll build below you can verify you’ve got a good version of PHP to go with the Drupal you need:
- Drupal 6: PHP 4.4.0 or higher (5.2 recommended).
- Drupal 7: PHP 5.2.5 or higher (5.3 recommended).
- Drupal 8: PHP 5.3.10 or higher.
Commands below use vi (of course, you should use your editor of choice). (thank you stackoverflow)
sudo to edit the Apache config file:
sudo vi /etc/apache2/httpd.conf
uncomment the following line:
LoadModule php5_module libexec/apache2/libphp5.so
On the following line change
_www to the username you log in with:
By default, Apache only loads index.html, so update that line to:
DirectoryIndex index.html index.php index.htm
Restart apache on the command line
sudo apachectl restart
Now, let’s make a test file:
cd ~/Sites mkdir php-test cd php-test/ vi index.php
Then paste in this test file and browse to
I like to install everything with homebrew which is my favorite package manager for osx. It keeps everything in
/usr/local/ by default, and then I don’t have to remember where GUI installers put everything.
brew install mysql
I like to have MySql always start up, so I use a Launch Agent, which homebrew describes how to do after the install:
To have launchd start mysql at login: ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents Then to load mysql now: launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist Or, if you don't want/need launchctl, you can just run: mysql.server start
Now make a database:
mysqladmin -uroot create drupal_dev
The default way this is set up is for a dev environment, so there’s no password and root has full access. You can see this in the mysql console:
mysql -uroot show databases; show grants;
Now we need to fix the PHP configuration to refer to mysql correctly so we don’t get PDO errors (thanks Hiraash):
sudo cp /etc/php.ini.default /etc/php.ini vi /etc/php.ini
replace all instances of
and restart apache
sudo apachectl restart
cd ~/Sites wget http://ftp.drupal.org/files/projects/drupal-7.22.tar.gz tar -xzvf drupal-7.22.tar.gz rm drupal-7.22.tar.gz
Now, I’ll just rename it to be the same name as the database we set up:
mv drupal-7.22 drupal_dev
http://localhost/~yourusername/drupal-dev and proceed with the install wizard
step through the wizard and drupal sets itself up.