Monday, November 9, 2009

Setting up a local server for wordpress development on a mac

and... i want it portable....

on a mac, download mamp:

follow these instructions
or these (includes CODA app setup)

and then to localhost multiple sites here is the neatest description for editing apache file and other tricky things...

Adding a Virtual Host is a 2-step process:

  1. Add a new entry to your computer's hosts file.
    • A hosts file can be used to point requests for a domain to a particular IP address--in other words, it lets you re-direct communications to a particular domain. In the case of a virtual host, it can tell the computer to NOT go out on the internet when you type a particular URL like http://clientA/, but instead look for that particular domain on your own computer.
  2. Edit the Apache configuration file to accept Virtual Hosts and define the particular Virtual Hosts you want to setup on your computer. The first step above, merely redirects requests from a particular domain to your computer, but this step prepares the Web server on your computer for handling those requests. In this step, you not only provide the name of the Virtual Host, but also tell Apache where the files for the site are located on your computer.
cross check the instructions with this, it includes a method for backing up the hosts file so if you muck it up it can be recovered. i think ill follow this...
and this...
this guy says to open hidden files with textwragler rather than terminal... i think...
another one
more about virtual hosting
some advanced way of setting up virtual hosting, including an install script...

This is a cheap app that does the apache config and hosts file scaryness for you... and works with MAMP. others say just buy MAMP Pro, but this is cheaper. actually, its free to test, if you want to host more than 3, you buy it.
i just installed it following these instructions. http://bitbob.com/mac-web-development-made-easy at first it didnt work, either appache or mysql wasnt giving the green light in mamp. i tried quitting, opening mamp again, and resetting the ports to the defaults or something. i noticed the mamp window opened saying you have successfully installed mamp, so maybe it wasnt finished being installed before. i reran the virtualhostx setup wizard, made a test site folder etc, still wasnt working (no apache light i think). i think i had opened and started it the first time from the dock application. this time i opened it from the actual MAMP app, went into MAMP prefs again, and it had changed the ports i was sure i set, from the default 80, 3306, to 8888, 3306. which is weird, it seems the setup script of VHX was changing the ports? anyway, i changed them to 80, 3306, and OK, and restart things, and finally green lights for both.
so summary, if it don't work, check mamp is actually finished installing, and that the ports are still set at 80, 3306.
considering portability of my setup between machines, ive considered using the "export server settings" feature, and import on new machine... i hoping this saved all the site setups... (they prob need same OSX version...) doing this, and drag replacing the mamp apps folders, should give me a portable setup (actually, a backup and write over files process)... eg: on the new machine....
1/ drag and write over old MAMP app folder which contains your dbs (MAMP is meant to be self contained)
2/ import the old computers VHX server settings file into new computers VHX to get your virtual hosts setup as in the other computer. (not sure if this is wrong to do or not... have to try it...)
3/ dev your sites on your portable external HD (pointed to in VHX)
4/ for the FTP stage, use a text editor (not dreamweaver) that easily allows for site info (eg FTP info) to be stored with site files... migrating DWs 'manage sites' info is a major multi step pain. I have read somewhere textmate does this...

OR... (and its looking better by the second...)
install a bootable copy of OSX on the external HD itself...for ultimate portability, use this copy for your web dev work, eg when working with small files... dont install all your crazy apps on there, just web dev associated... it might slow you down like this botting up for it, but it seriously seems like the closest to the holy grail of keeping all your web site dev data (virtual hosts, dbs, apps, prefs, FTP infos, and of course the files, in one PORTABLE place. (other than developing online like through the wordpress admin panel! load reload = SLOW though. )

how to view MAMP sites on your mac from your testing pc... (insecure) i think ill just test PC from live server for now...

if you dont use Coda here is articles about dreamweaver settings and MAMP setup

and if your making emailing / notification forms, setup a local mail server too so that it quicker to test emails aswell

This is all well and good except I work between 3 different computers depending on where I am, I have all my work in progress files from an external HD.
I have been searching for a solution to NOT have the sites db in the Applications/MAMP folder, but all portable on my external HD... or just an easy way to move the files between computers, what needs to be backed up and saved in the MAMP folder I don't know.
A solution I just thought is to partition my external portable HD and boot OSX from it, if that is possible... then I can have my Apps/MAMP folder on the external HD, and all my dbs etc. Its a bit drastic but it might be the actual best solution...

Install MAMP as a disc image alias for portability, looks promising, i don't know how it would work with the hosts file terminal thing for multiple sites, guess can only try it and see...


CODA / MAMP workflow with interesting tip on using WP starter fresh install to speed things up. also like the .dev naming coonventions, gets around a problem I imagine that might happen when you go live to .com

Since you'll be working with fresh copies of WP (and whatever
additional WP plugins or themes that you find yourself adding in by
default), grab a copy of the CreateProject plugin for Coda, and set it
up with whatever your default install of WP is. Speeds up initial
setup like you wouldn't believe.

So far, here's your initial workflow:

1) Create a new Site within Coda

2) Run Coda's CreateProject plugin to generate a default site within
your MAMP Pro's httpdocs directory. I actually have MAMP Pro pointed
at the Sites directory in my user's home directory (i.e., /Users/bob/
Sites/ ), but to each his/her own...

3) Set up a new virtual site in MAMP Pro and point it at the new site.

You're done with initial setup!

Also, with MAMP Pro, you can set up actual domains for your sites. I
use ".dev" as my TLD, so I don't have to go to http://localhost:80/~sitename
or whatever... I can type http://mydomain.dev and access the local
site.

Anyway.... that's a start. Hope this helps you and anyone else looking
for a Coda/MAMP (Pro) workflow.


and then tips for uploading to the webserver
video tutorial
more uploading (key is to not use one click install or wps install script but to import the db and connect manually.
and
moving wordpress generally, and changing its location
personally i think its easier to dev the theme offline, using dummy text and images, then install wp on server fresh, upload just the theme, add your real text and images online rather than export/import db mess, do final testing online. populating the sites content is often not my job anyway...

CONCLUSION:
stop searching, just follow this tutorial...

install MAMP and virtualhostx (on all computers??) for the virtual domains thing (proper domain names in their root folder for future setup usefulness for more complex sites), and then, drag / drop MAMP app folder to and fro on different machines to keep the DBs up to date... once I've got that setup working proper, try this for making an alias to the apps folder...
but its less important.
I will need to review this setup and test it properly - for something bigger where the DBs are going to be populated offline, or already existant on a site... but for now this should be adequate just for WP theme development across multiple separate sites.


---heads up for mamp settings...

I created a subdomain on the live server for local testing, that way it matches my host setup, much better this way.

If on local only, I would recommend using Mamp Pro, and use the mac default ports so you don't have :8888 issues on the live server.

[ [
contemplating the meaning of existance, what else would I be doing
] ]

and

Well, to answer the OP, or to help another fellow Mac user without getting into "is mamp good or bad", I can tell you, instead of accessing http://localhost:8888/second_site, you should attempt t access http://second_site:8888

Before you can pull this off though, you should place second_site in your /etc/hosts file.

First, enable show hidden files in finder (google it) or use PathFinder.

Second, go to the alias /etc/, find the file called hosts and copy it to your desktop (You can't edit it in place). Also, make a backup in case something goes wrong (it shouldn't, but it's always smart to back up when you're about to change stuff). In your desktop, open the hosts file and go to the last line. Hit enter to create a new one and type 127.0.0.1 second_site. Save the file, exit, and then copy it back to its original location (/etc).

It might ask you for an administrator account password. Authenticate.

Close all the windows of your browser and restart. Then, attempt to access second_site:8888 or second_site:8888/drupal .

Hope this helps anyone.


more about using certain ports and MAMP info setup

http://www.sitepen.com/blog/2008/05/16/supercharge-mamp/



percaution of mamp pro if you use time machine to backup

other stuff:
server on a stick (USB drive)

interesting workflow for wp theme dev

JSP app in similar category, catslapper...