Posts Tagged ‘ os x ’

Adding a $PATH environment variable in OS X 10.5 (Leopard) Terminal

Sunday, August 24th, 2008

One thing that will inevitably come up when setting up a web server using MAMP on OS X Leopard is the need to add the PHP and PEAR binary paths to the Terminal $PATH variable. Fortunately, this is dead-simple.

Open a Terminal window and type the following (assuming you’ve installed MAMP in /Applications):

export PATH=/Applications/MAMP/bin/php5/bin:$PATH

If you’re using PHP4 instead, you’ll want to specify that path instead.

Now type the following to see your newly edited $PATH environment variable:

echo $PATH

You should see your MAMP PHP binary path tacked onto your $PATH string.

Now type the following:

pear upgrade-all

If everything went according to plan, you should see the output from Pear updating itself.

Sphere: Related Content

Tutorial: Starting Subversion on Startup

Wednesday, November 28th, 2007

Subversion Version Control SystemHonestly, I can’t remember if Subversion came pre-installed on Tiger or not, but I know for a fact that it does come as a standard component on Leopard. This is great news.

One small issue, though, is that there is not a way in the OS X UI to have Subversion start up when your computer boots up. This tutorial will help you set up a launch daemon that will fire up Subversion silently when your computer boots up.

Before we begin, you’ll need to make sure you have enabled root access on your machine. In Tiger, follow these instructions. In Leopard, follow these instructions instead.

Step 1: Create a Start-up Item

Open up your favorite text editor and paste the following into an empty document:

Step 2: Locate your repository

On line 16 of the plist file, you’ll find the string “/usr/local/svn” which points to the default repository location. If you have installed your repository in a different location, change the contents of this line to point to your repository. For instance, mine is on a separate drive, so my line looks like:

/Volumes/Max/SVN_Repository

Step 3: Save the File

Save this file as (or move the file to) /Library/LaunchDaemons/org.tigris.Subversion.plist.

Step 4: Set Permissions

If you try to launch the daemon at the moment, you’ll get a “dubious permissions” error. To correct this problem, you’ll need to change your permissions.

In your terminal, type:

cd /Library/LaunchDaemons/
sudo chown root:wheel org.tigris.Subversion.plist

You’re done! Reboot your computer and test that your SVN server is running as expected.

Sphere: Related Content

Tutorial: Enabling Root Access in OS X (Leopard)

Wednesday, November 28th, 2007

By default, the root account is disabled in OS X. If you are a developer new to the platform, you will be needing to access many things that are available only with root access. This tutorial walks you through the process of enabling the root account in Leopard (OS X 10.5).

NOTE: This guide is specific to enabling root access on Leopard, (10.5). To learn how to enable root access on Snow Leopard (10.6), follow these instructions. To learn how to enable root access on Tiger (10.4), follow these instructions instead.

Enabling Root in Leopard:

  1. Open the Directory Utility: In the Finder, navigate to the Utilities folder (tip: click on the desktop, hit Cmd+Shift+U).
  2. Click on the padlock to allow edits.
  3. Go Edit > Enable Root Password
  4. Enter and re-enter your password.

Now, you are set to access protected areas of the system via the terminal.

Sphere: Related Content

Setting up a Web Server on Leopard (OS X 10.5) or Snow Leopard (10.6) Running PHP, Apache, and MySQL – A Step by Step Guide

Monday, November 5th, 2007

Tips and TricksOne of the great advantages of developing web sites on a Mac is the fact that all of the tools you need to run a web server are pre-installed. Getting them to work and play well together requires a little work—especially in Leopard.

If you are simply wanting a web server to host your personal web site, then you might want to consider stand-alone, point and click apps like XAMPP and MAMP. These turnkey solutions set everything up for you and are great solutions if you are just starting or have simple needs.

However, if you want to set up a development environment running multiple test sites using the free tools already installed on your Mac, and you aren’t afraid of the terminal, then read on.

UPDATE: Based on preliminary testing, these instructions remain up to date for Snow Leopard (10.6).

UPDATE: Since posting this tutorial, I have learned that the stock installation of PHP does not include several critical libraries. After several days of experimenting, I finally landed on MAMP as my production solution. I have published a walk-through for setting MAMP up on your machine [link].

NOTE: This guide is specific to getting a server running on Leopard 10.5. Earlier versions of the OS are not covered here.

This guide will walk you through the steps needed to get a development environment set up and running on your copy of Leopard. In this, we will do the following (click on each to jump to the corresponding section):

  1. Enable your root password
  2. Install the Xcode Tools
  3. Edit your Apache configuration file
  4. Set up your first virtual host
  5. Start/Restart Apache
  6. Test Apache
  7. Test PHP
  8. Load MySQL
  9. Install phpMyAdmin
  10. Install PEAR

Overview

A commonly used web server solution consists of 3 major components: Apache web server, a MySQL database, and the PHP scripting engine. This is the "AMP" in LAMP. (The "L" is "Linux"). This set up is widely used in the development community for two reasons: 1) it’s free and open source, 2) it’s very mature. "AMP" components are included in every copy of OS X, but getting them to work requires a few steps.

Step 1: Enable your root password

  1. Open the Directory Utility: In the Finder, navigate to the Utilities folder (tip: click on the desktop, hit Cmd+Shift+U).
  2. Click on the padlock to allow edits.
  3. Go Edit > Enable Root Password
  4. Enter and re-enter your password.

Now, you are set to access protected areas of the system via the terminal.

Step 2: Install the Xcode Tools

While this isn’t strictly necessary, it’s good practice for developers to install the Xcode tools provided for free on your Leopard disc. You’ll need it at some point, so go on and install it.

  1. Insert your Leopard DVD
  2. Navigate to Optional Installs > Xcode Tools > XcodeTools.mpkg
  3. Run the installer.
  4. Go get a cup of coffee.

Step 3: Edit your Apache configuration file

Note: throughout this guide, you will need to edit configuration files. There are several ways to do this. My preferred method is to use an app called BBEdit that allows you to edit protected files more gracefully than, say, TextEdit or the terminal window. However, BBEdit is not free. For the purposes of this tutorial, I’m going to stick with the terminal method that uses the editor called "nano" just because it’s included on every system.

In the terminal, type:

sudo nano /private/etc/apache2/httpd.conf

Note: "sudo" is a command that lets you perform a specific task with root privileges without having to log in as the root. This is the recommended method of mucking about in the terminal as it is safer than being logged in as root.

  1. Scroll down to about line #114. You’ll see the following:
    #LoadModule php5_module      libexec/apache2/libphp5.so

  2. Remove the hash mark as follows:
    LoadModule php5_module       libexec/apache2/libphp5.so

  3. In order to run multiple sites on this server, you will want to use virtual hosts. Scroll down to the bottom of the document (about line #461) and remove the hash from the Virtual Hosts entry as follows:
    Include /private/etc/apache2/extra/httpd-vhosts.conf

  4. Exit and save httpd.conf.

Step 4: Set up your first virtual host

Virtual hosts are Apache’s way of letting you serve up multiple sites on a single server. Name-based virtual hosting is a convenient way to do this.

For this example, we’re going to set up a test site called "site1". With a name-based virtual host, all we’d type in is "http://site1/ ".

In order to make this work, we’ll need to edit the hosts file on your machine. (Note: In Tiger and previous versions of OS X, you accomplished this through the NetInfo dialog. Since the NetInfo dialog was killed in Leopard, we do this the same way you do this for *nix and Windows by editing the hosts file directly).

To edit your hosts file, type in the terminal:

sudo nano /etc/hosts

Below the default entries, you’ll add the following:

# My sites
127.0.0.1 site1

Save your changes.

Now, we’ll need to add a corresponding virtual host. But first, Apache wants us to add our existing default directory as the very first virtual host. This is critical, so do not skip this step.

To edit your virtual hosts file, type in the terminal:

sudo nano /etc/apache2/extra/httpd-vhosts.conf

Replace the two example virtual hosts with the following:

<VirtualHost *>
  DocumentRoot "/Library/WebServer/Documents"
  ServerName localhost
</VirtualHost>

Next, add your first virtual host similar to the following:

<VirtualHost *>
  ServerName site1
  DocumentRoot /path/to/site1
</VirtualHost>

Who do we have to add our default directory first? According to the Apache Docs on Virtual Hosts, they recommend the following:

If you are adding virtual hosts to an existing web server, you must also create a <VirtualHost> block for the existing host. The ServerName and DocumentRoot included in this virtual host should be the same as the global ServerName and DocumentRoot. List this virtual host first in the configuration file so that it will act as the default host.

Note: Failing to add my default directory as the very first virtual host tripped me up for days. If your virtual hosts are defaulting to an unexpected directory, this is likely to be the culprit.

Step 5: Start/Restart Apache

  1. If you haven’t done so already, go Apple Menu > System Preferences > Sharing
  2. Ensure that “Web Sharing” is checked

Tip: To restart Apache in the future, you can come to the same control panel, uncheck and recheck the Web Sharing item.

Tip: Alternatively, you can type the following into a terminal:

sudo /usr/sbin/apachectl graceful

Tip: Alternatively, you can create an Automator script as follows:

  1. Open a new, blank, custom workflow
  2. Add a “Run AppleScript” action.
  3. Type the following, replacing values as necessary:
    do shell script "sudo /usr/sbin/apachectl graceful" password "[YOUR ROOT PASSWORD]" with administrator privileges
  4. Save the workflow as an Action.

Step 6: Test Apache

In a browser, load your localhost: http://localhost

If you see the default Apache home page (which contains a red and blue feather image), your Apache server is set up correctly. If you do not, then you might try checking your Apache config syntax:

sudo apachectl -t

Step 7: Test PHP

In your favorite code editor, create a new php file and call it "info.php". In this file, enter the following code:

<?php phpinfo(); ?>

Save the file to the root of your local host directory (e.g. "/Library/WebServer/Documents/info.php") directory. In your browser, navigate to the file (e.g. "http://localhost/info.php").

You should see a purple and white table containing all the PHP variables, modules, and settings. If you don’t see this table, backtrack to Step 3 above to ensure you’ve enabled PHP in your Apache config file correctly.

Step 8: Load MySQL

  1. Download and unzip the MySQL Package for Mac OS X.
  2. Install the main MySQL installer.
  3. Install the Start Up Script.

As of this writing, MySQL has not been updated to support Leopard. You will be downloading the package for Tiger (10.4) and making the following modifications:

  1. Do NOT install the MySQL control panel. As of this writing, it does not work with Leopard.
  2. Start MySQL manually by typing the following into a terminal:
    sudo /usr/local/mysql/support-files/mysql.server start

MySQL should now be running silently in the background.

A new issue with Leopard’s installation of PHP is that it expects MySQL to be somewhere other than where it is installed by the package. To fix this, we need to create a new MySQL configuration file. To do this, create a text file and save it as "/etc/my.cnf". Enter the following text:

[client]
socket = /var/mysql/mysql.sock

[mysqld]
socket = /var/mysql/mysql.sock

In a terminal window, type the following in order to create a folder where the MySQL sock file will live:

sudo mkdir /var/mysql
sudo chown _mysql /var/mysql

Note: If you are using any of the MySQL Tools (e.g. MySQL Administrator, etc.), you’ll need to tell them where to find the sock file. To do this, click the Advanced drop-down on the connection dialog, and enter “/var/mysql/mysql.sock“.

At this point, you should have a fully functioning database. Now, let’s get some data in there.

Step 9: Install phpMyAdmin

phpMyAdmin (PMA) is a popular and free tool to manage your MySQL databases. It is an integral part of most LAMP development environments.

  1. Download and unzip the latest stable release of phpMyAdmin.
  2. Copy the files to a directory of your choice. For this example, we’ll install it in "~/Sites/phpmyadmin/".
  3. Per Step #4 above, add this directory as a virtual host called "pma".
  4. Restart Apache to initialize your new virtual host.
  5. Follow the installation instructions provided in the PMA download to set up the config file.
  6. If you can navigate to PMA (e.g. "http://pma", you’ve good to go.

Step 10: Install PEAR

PEAR is a companion to PHP that is typically installed by default along with PHP. PEAR is a set of applications, modules and pre-packaged classes that provide a wealth of functionality to your apps with minimal effort. One example covered on this blog is how to implement an elegant caching mechanism with just a few lines of code. Using PEAR is highly recommended.

In a terminal window, type the following:

curl http://pear.php.net/go-pear > go-pear.php
sudo php -q go-pear.php

This will auto-install and pre-configure PEAR for you.

Now, we need to tell PHP to look for the PEAR files. To do this, we’ll need to modify the php.ini config file. First, copy the default config file and rename it php.ini by typing the following in a terminal window:

sudo cp /etc/php.ini.default /etc/php.ini

Now, edit the php.ini file:

sudo nano /etc/php.ini

Scroll down to line #469 or so and edit the include_path variable by removing the comment hash and adding the PEAR path as follows:

include_path = ".:/php/includes:/usr/lib/php:/usr/share/pear"

Restart Apache and ensure everything loads and runs as expected.

Conclusion

By this point, you should have a fully functional development server that you can extend and expand as you take on new projects.

Please feel free to add comments below if you find errors or problems with the guide above.

Good luck.

Sphere: Related Content

Browser and OS Report: Firefox and Mac Gain Share; Mac Beats Vista

Thursday, October 25th, 2007

I was browsing the Google Analytics reports for my various sites, and I noticed some trends that surprised me. Since the numbers you tend to find aren’t broken out in meaningful ways, I thought I’d share my findings with you.

First, the numbers:

Stringer Sites Browser Report

Surprising Conclusions

  1. Holy cats! Firefox surpassed combined IE6 & IE7 usage for the first time in the Creative/Technical audience with a 47%/43% split.
  2. There is a remarkable disparity between usage patterns between my sites aimed at technical or creative audiences and those aimed at consumers. While I expected there to be some difference, this disparity is much larger than I expected. Only 43% of the Creative/Tech audience use IE6 & IE7, while 81% of the Consumer audience do.
  3. A year after its launch, 39% of the Consumer audience still uses IE6. <rant>This represents a complete failure on Microsoft’s part to manage the upgrade transition well, and is nothing less than a nightmare for developers.</rant>
  4. Vista is a bomb. 9 months out, and it has only 12% of the Creative/Technical market and 9% of the Consumer market.
  5. Mac use on the Creative/Technical sites outnumbers Vista use 2-to-1 (Mac 7,395 visits in the last 30 days vs. 3,521 Vista visits in the same time period).

First, let me disclaim that this is hardly a scientific study. I just found the results interesting, and I thought you might, too.

As I was comparing the numbers between various sites, I noticed a natural grouping in terms of percentage variance between my Creative/Technical-oriented sites and my Consumer-oriented sites. Breaking these out revealed these surprising numbers. The aggregated numbers above are taken from a little over 60,000 visits from 6 sites (3 of each type) in the last 30 days.

I debated whether or not to include the underlying raw data. Since these are client sites, I’d rather not share the actual hard data, so take my findings and conclusions with a grain of salt.

Feel free to comment/react/challenge below.

Sphere: Related Content

Tutorial: Enabling Root Access in OS X (Tiger)

Friday, March 30th, 2007

By default, the root account is disabled in OS X. If you are a developer new to the platform, you will be needing to access many things that are available only with root access. This tutorial walks you through the process of enabling the root account in OS X.

NOTE: This guide is specific to enabling root access on Tiger, (10.4). To learn how to enable root access on Snow Leopard (10.6), follow these instructions. To learn how to enable root access on Leopard (10.5), follow these instructions instead.

Enabling Root in Tiger:

  1. From within an account with administrative privilegs, open NetInfo Manager (found in the Utilities folder)
  2. If it is locked, click the Padlock icon in the lower portion of the window to allow changes
  3. Go to the tools menu and select “Enable Root User”
  4. Enter the password for your administrative account when prompted
  5. Now select Users from the “/” list, and select “root” from the users list
  6. Select the “passwd” row and double-click the password value
  7. Change the password one that is secure
  8. Click the padlock icon again to lock out further changes, and you’re done

Alternatively, you can simply type “sudo passwd root” in a terminal window, and you’re off to the races.

To change the root password once root access has been turned on, simply do the same and type “sudo passwd root” in a terminal window. Enter the new password, and you’re done.

Sphere: Related Content