Posts in Category: Development

Setting up a WordPress development environment with WAMP

Making changes to live environments without testing them out first is risky and sooner or later will take out your (or even worse, someone else’s) website, until you fix what you broke! Therefore it’s important to setup a development environment locally. In this post I will explain how to do this easily using WAMP.

What you will need:

  • WAMP running versions similar to what your live site is running
  • A backup of the files
  • A backup of your database

Let’s begin, shall we?

First let’s install WAMP. This will allow us to locally host everything that’s necessary for WordPress to run. This is really as simple as opening the installer and clicking next.

Now that WAMP is installed we will have to configure some settings to make it work.

Open .\WAMP\bin\apache\apache *.*.*\conf\httpd.conf
Look for Listen 0.0.0.0:80 and change it to Listen *:80
Look for #Include conf/extra/httpd-vhosts.conf and uncomment it (remove the #)

Open .\WAMP\bin\apache\apache *.*.*\conf\extra\httpd-vhosts.conf
Remove everything below the example and add the following instead:

<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 DocumentRoot "##YOUR WAMP ROOT DIR##\www"
 ServerName localhost
 ErrorLog "logs/localhost-error.log"
 CustomLog "logs/localhost-access.log" common
 <Directory "##YOUR WAMP ROOT DIR##\www">
 Options Indexes FollowSymLinks
 AllowOverride All
 Order Deny,Allow
 Deny from All
 Allow from 127.0.0.1
 Allow from ::1
 </Directory>
 </VirtualHost>
<VirtualHost *:80>
 DocumentRoot "##DIRECTORY OF YOUR WEBSITE BACKUP## (example: D:\Work\Web Development\Websites\AldertVaandering.com)"
 ServerName dev.aldertvaandering.com
 ServerAlias dev.aldertvaandering
 ErrorLog "logs/dev.aldertvaandering-error.log"
 CustomLog "logs/dev.aldertvaandering-access.log" common
 <Directory "D:\WORK\Web Development\Websites\AldertVaandering.com">
 Options Indexes FollowSymLinks
 AllowOverride All
 Order Deny,Allow
 Deny from All
 Allow from 127.0.0.1
 Allow from ::1
 </Directory>
 </VirtualHost>

Open your windows Hosts file in notepad (located at “.\Windows\System32\Drivers\etc”) and add the following:

127.0.0.1            dev.yoursitename

Note: You will have to repeat this for any other site you add, eg:

127.0.0.1            dev.yoursitename
127.0.0.1            dev.mysecondsite

Right click on WAMP and active Apache -> Services -> Mod-rewrite
This will allow WordPress to create those beautiful links we’re used to.

 

FAQ:

I already set up everything but I get “Permission denied!”
If you look at the way we set up the virtual hosts you can see that I’ve added “Allow from ::1”. If you are running Windows Vista or higher chances are you have IPv6 enabled. Apache doesn’t allow access from IPv6 addresses by default and will give you permission denied.

To make apps like phpMyAdmin work you have to open .\WAMP\alias\phpmyadmin.conf and also add Allow from ::1 to the configuration file. Repeat this for every file in .\WAMP\alias\

AwesomeTTS Google MP3 Generation fix

I recently started learning Chinese characters using Anki and used AwesomeTTS to generate text-to-speech MP3 files for pronunciation. I found that many characters wouldn’t get generated because of a bug however, so I took it upon myself to fix this.

I also added hash generation for the filenames based on the input sentence. This is in order to be able to mass generate files for large decks in which you’ve already generated some sentences. Because the hash generation is completely client-side you also don’t unnecessarily hammer Google’s servers (thus quickly causing a temporary ban).

You can find it at Github
or directly download ->here<-

Changes:

* Fixed: bug causing some notes not to generate
* Changed: Filename generation (now switched to a MD5 hash generated from the input sentence). No more ridiculously long filenames!
* Added: Randomized delay between each request to Google’s servers, causing a longer generation time, but preventing being blacklisted for 24 hours
* Added: Use of Cookielib, allowing you continue generation of MP3s if you get blacklisted by going to http://translate.google.com/translate_tts?tl=zh&q=translate and correctly answering the captcha.

GrooveControl – A GrooveShark music player

Do you use GrooveShark to listen to music? If so you might like GrooveControl, a “standalone” version of the website with additional features that make it that much more usable as a music player.

After trying several alternatives, such as WinGrooves, I’ve developed GrooveControl quite a long time and I’ve been using it ever since. Now I’m releasing it to the public.

Using Google Chrome as the engine it’s fast and incredibly stable. It also allowed me to directly interface with GrooveShark using the Google Chrome plugin system. As such you can enjoy listening without interruptions or having to open the page to switch songs every time. Using the global customizable hot-keys you can pause/play, switch and favorite tracks without having to leave your current application, whether you’re simply browsing the Internet or doing something in a full-screen application.

Features:

* Listen to music with no interruptions!
* Minimize to tray
* Stable playback, no crashing
* Music popup with album art (Unicode Support)
GrooveControl Popup

* Hotkey control
GrooveControl Settings Dialog

-> Download the installer here!

Nextgen NivoSlider wordpress plugin

I’ve recently released the first version of the Nextgen Nivoslider wordpress plugin.

It’s built upon the work of JJ coder, updating the version of Nivo to 3.2 and adding new features/fixing bugs. You can find it at http://wordpress.org/extend/plugins/nextgen-nivoslider/.

Please let me know of any issues! I will be updating the plugin as I have the time to spend.

What is the Nextgen NivoSlider plugin?
It’s a plugin that allows you to use a NivoSlider in WordPress by using a shortcode. It allows you to populate the NivoSlider images pulled from your NextGen Gallery by gallery ID, image tags or both.

New features:
* NivoSlider 3.2 which is responsive
* Resize options for the images using TimThumb(v2)
* Conditional loading
* Additional Nivo options such as prevText, nextText, randomStart