This is the first in a series of articles that will step through setting up a Windows Virtual Server hosted by Rackspace, and configuring that server to be a Hyper File C/S sever to be use with SCM (Source Code Manager), PostgreSQL Server, Apache, and Webdev WAS (Web Application Server)
Note: I ran into some performance issues with WebDev and Windows 2012. Be sure to read the summary article at http://www.thenextage.com/wordpress/linux-and-windows-2012-webdev-cloud-servers-the-summary/ and especially the comments at the end, before deciding if you want to build a 2008 or 2012 Windows server.
This series of articles will follow the same basic format at the Linux version of the articles I have already done. If your interested in setting up a Linux server be sure to check those out instead.
The purpose of this article isn’t to endorse Rackspace, although I can do so without reservation. With a few changes I am sure you could duplicate all of this configuration on Amazon or any of the other host out there. I just happen to use and prefer Rackspace.
Obviously you will need an account with Rackspace. I will assume that you have completed that step and have made it to the Cloud Control Panel. Below is a screen shot of my control panel with my already existing server shown.
Creating the Server
You am going to create a completely new server for this purpose, so press the Create Server button. This brings you to a Create Server screen where you provide some basic information to configure the server.
First the Identity and Region of the Server. I am naming this Server “WebDevWin” (you’ll find I am creative that way) and placing it in the Dallas Region (which is where my other server is located)
Next is the image, which is cloud speak for what operating system. I am using Windows Server 2012 (with updates), which means that it will be patched with windows updates. Notice the Saved Tab, this allows you to duplicate a server quickly, by taking a snap shot of your existing server and creating a new server with all the same settings and software setup. If you got a money just burning a hole in your pocket you could chose an image that includes SQL Server as well. I am going to setup HyperFileSQL Client Server and PostgreSQL instead as both are free.
Next is the Size of the server. Unless I have a specific need, I always start with the smallest size and then adjust up as needed. Cloud servers are billed based on their size, hours of use, and bandwidth. So the larger your server the larger your bill. It is a simple change of a setting in the control panel to increase the size of your server later, so it just makes sense to start small and increase the size as needed to achieve the level of performance and number of users you require.
That’s all the settings needed to get started, at the bottom of the screen you will see a create server button, press that to create the server and a screen will popup with the Root Admin Password assigned to your server. Be Sure to copy that somewhere as you will need it to initially log into the server (Don’t worry I’ve already changed it for this my server!)
Once you have copied the password, press the Dismiss Password button and you will see a Server Status screen, the status will update as the Magic Cloud Elf builds and configures your server. Don’t worry he is really fast and it will probably only take him a couple of minutes. Included on this screen is the IP address assigned to your new server as well as a few links to Rackspace Knowlege Center Articles (which are very good) and some links for performing task on the sever.
Once the server status turns green and says Active, congratulations you are now the proud owner of a brand new cloud server. The first step you should take is to reset the password of the Root Admin account for the server, so press the action button and you will see a drop down with several options including “change password”. Click that and follow the instructions.
The server is now up and running but it not terribly useful. So the next step is to add the Apache web server to it. You are going to use Remote Desktop Connection to manage the server, which should already be installed on your development machine. So run Remote Desktop Connection, enter the IP address assigned to the server and press connect.
The username is “administrator” and the password is the password that you set in the step above. Enter them when prompted, and if you don’t want to have to enter them every time, you can click Remember my Credentials.
You should now be at the Server Manager Dashboard.
Its now time to do some initial setup of the server. First you will notice the time likely doesn’t match your local time, the server is setup for UTC time, Right click in the clock area at the bottom right of the screen and select Adjust data/time from the popup menu.
Then click Change Time Zone
And select the appropriate time zone and then click OK to save the changes.
Next you are going to turn off the Internet Explorer Enhanced Security, this setting makes sense on a consumer machine, but is likely to get in the way of an administrator trying to do his job. From the Server Manager Dashboard, click Configure this local server, which brings up the Properties for the Server.
To the right you will see IE Enhanced Security Configuration, click on the “On” like next to it and turn it off for Administrators, then press OK.
Setting up Apache
I am sure you have noticed that Server 2012 has the new Interface that Windows 8 has. There are two distinct areas, the desktop (old windows) and the start screen (new windows). The windows key switches between this two. Because you are accessing the server via RDP (Remote Desktop Protocol) the windows key, will actually react to your machine, not the remote machine. Instead you will need to press the Alt and Home keys at the same time to simulate a Window key press.
So press Alt-Home to switch to the start view.
The install for apache says you need to make sure you have the Viscual C++ 2010 SP1 Redistrubtion Package installed for 64 bit. So run Internet Explorer and naviate to
When the site comes up click download. When completed a popup comes up. Click Run and follow the prompts.
Next navigate to
and download the latest windows 64bit version of Apache 2.4.3.
Once completed you will get a popup menu, click open folder.
Double clicking on the Zip file will allow you to browse its contents. Right click on the Apahce24 directory and chose copy.
Then navigate to the root of the C: drive right click and chose paste.
Now navigate to C:Apahce24conf and double click on httpd.conf, which is the configuration file for Apache.
Windows doesn’t recognize .conf files, so the first time you click on one, you will get a message like this
Chose Try an app on this PC, then in the next window, click Use this app for all .conf files and chose notepad.
Change a few lines in the file. If they are currently commented out with a # remove it. Using your email and domains.
ServerAdmin email@example.com ServerName webdevwin.thenextage.com
You will be making more changes later, but that’s it for now so save the file. Now you need to run powershell (the new cool name for command prompt) and configure Apache to run as a service. Power Shell is the second Icon at the bottom of the screen when in desktop mode.
Which will bring you to a command prompt window. Enter the command
C:apache24binhttpd.exe -k install
Which will setup Apache as a service.
And then start the service with the command
Apache is now installed and running. You can verify that by opening Internet Explorer and navigating to http://localhost/
Not the most original page ever, but I guess it says all it needs to.
Setting up the Firewall
Although you are able to get to the It works! page, from Internet Explorer on the server, if you attempt to to browse it from your development machine by typing in the server IP (http://126.96.36.199/) it will not work. That is because the Windows firewall is blocking the port on the server. So its time to make a few changes to the firewall.
From the Server Manager Dashboard, click on Configure this local server. Click on the link to the Right of Windows Firewall.
Then on the next Window click on Advanced Settings
Then Click on Inbound Rules on the next screen.
And then from the right side of the screen click New Rule
This launches a wizard. The first screen ask for the type of rule. This Rule will be a Port type.
Click Next and chose TCP and enter 80 for the port number 80 and click next.
On the next screen select Allow the connection and press next.
Apply the rule to all connection types and click next.
Name the Rule and click Finish.
Go ahead and add an inbound rule for the FTP server while you are here. It will be a Port rule using TCP and put this in the Ports field – 20,21,10090-10100
It seems that a reboot is required for the Firewall to recognize the new settings. On the Server Manager Local Sever Properties screen, drop down the Task Menu and chose Shut Down Local Server.
From the next screen, chose restart from the drop down. Enter a comment and click OK to reboot the server.
Once the server reboots you should be able to get the the It Works! page from your development machine by navigating to the IP Address (http://188.8.131.52)
Setting up the FTP service
Next setup the FTP service. Since I use and like their FTP client, I am going to use FileZilla Server. So open up the browser, navigate to http://filezilla-project.org/ and download the FileZilla Server.
Click Run on the Popup Window, which launches a wizard.
Agree to the License Agreement.
Take the Default Componet Selections
And the default install location.
And the defaults for the Startup Settings
The next screen is asking how the administration interface should start. I don’t like it starting everytime I log in, so choose Start manually from the dropdown and click install.
When the installation is completed, click Close
The administration interface will now run. It defaults to connecting to the local server and default port and there is no administration password at this point so just click OK to launch the administrator.
Now chose Settings from the Edit menu.
There are setting for welcome messages, etc. but I am just going over the import setting here. Click Passive mode from the left hand pane, to get to the Passive mode settings.
Turn on the Use custom port range and set the beginning port to 10090 and the ending port to 10100. You may notice these are the same ports you opened on the firewall earlier. Now click on the admin Interface settings to bring up that configuration window and set an admin password. If you are not going to open the admin interface port to the fire wall then you may chose to not require a password, since the only connection allowed will be via the interface program on the server. Since I will be using the interface from a remote computer, I am setting a secure password.
Click OK to save the settings.
Next add a user that will be used to upload websites via FTP by choosing Users from the Edit menu.
And click Add on the next screen and name the user ftpadmin and click ok.
Click the checkbox to enable the password and enter a password. Then click on the Shared Folder selection and then click Add under shared folders.
Select the c:apache24htdocs directory which is the root document directory for the web server. Turn on all the permissions, and click set as home dir, so that the user will start there when they log in. Then click OK to save the changes.
You should now be able to login via FTP, be in the web root document directory and upload and download files from that directory.
To test that, you can create a simple HTML file named index.html with the following content
<html> <h1>Uncle Pete is a cool cat!!!</h1> </html>
Upload that via FTP, and now when you open a browser and go to the IP address of the server, you should see the new file instead of the It works! page.
If you want to be able to administor the FTP settings remotely, you can setup the FileZilla Administrator interface on your development machine. First back on the server add another inbound rule to allow port 14147. Then download the same FileZilla Server install and run it. Except this time only select the Administrator Interface and when asked set it to be started manually.
Now when you run the interface on your development machine, just provide the address, port and administrator login for the FileZilla
If you use Rackspace to manage your DNS, then you can configure your DNS settings in the same control panel. Below is the control panel displaying my existing domain.
Clicking on the domain will display a detail screen with all the information concerning the domain.
I am going to setup an of additional A record (also known as a Host Record) to point to the new server. “webdev.thenextage.com” by clicking on the Add Record button
Make an Image File
At this point you have a cloud hosted virtual server, with Apache and FTP setup and running, and if you wanted to publish static website you would be done. This is a good time to create an image file. That way you could quickly create additional servers configured identically to this one. It also might come in handy if I really mess something up in the next article!!
From the server action button click on “Create Image” and give it a name.
In the next installment you will be setting up Hyperfile Client/Server and SCM on your new cloud server and then in the final installment you will install the Windows version of the WebDev WAS server and upload and test a couple of sites. Don’t forget there is also a complete set of identical articles for Linux servers as well.