Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I had developed a client server application using WAMP - I used Apache, Perl, PHP. Now I am suppose to deploy it in Unix servers of the organisation. I am a newbie to Unix and Linux environments. I want the porting to be as seamless as possible and so I want to do some homework before that.

Now, can I simulate Unix in Windows, install Apache, perl and PHP there and then try deploying my application there. Any other homework I need to do?

share|improve this question

3 Answers 3

up vote 6 down vote accepted

The most obvious gotchas to look out for that I can think of:

  • case sensitivity when accessing the filesystem (Windows is generally not case sensitive, most filesystems on unix-a-like OSs are case sensitive)
  • PHP and perl modules: depending on which modules you have used you may find that they are not available on the production servers (and might even be platform specific, though this is fairly rare)
  • if you code calls any external utilities (instead of a perl/PHP module that does the same job) then you will run into trouble as those utilities are unlikely to be available when switching base OS

If your application is well coded and doesn't do anything specialist (through reliance on uncommon modules or through hacks like calling OS external utils) then you may be lucky and have very few changes to make, possible none, as the majority of PHP and perl and there common modules are pretty much platform agnostic from the script writers point of view.

I would recommend trying to get a system together that replicates as closely as possible the production environment. If you can find out the versions of Apache, PHP and Perl they have installed and get a list of the modules present in both PHP and Perl, you should be able to create a testing environment in a VM (VMWare or similar) that is closer to the intended production environment than an arbitrary WAMP setup would be. You may even find that the people responsible for your servers already have some staging environments in VMs or physical machines that you could arrange access to for such testing purposes - that will be quicker (bureaucracy permitting) than setting up your own and will mean the environment you are testing on will be very close to production.

share|improve this answer
    
Thanks a lot for the helpful answer! –  Manoj Jul 20 '09 at 14:04

Just get a staging server setup, with the intended production environment, and test your changes there. And yes, if the code hasn't been written with portability in mind from day one, you will have a lot of changes to make.

share|improve this answer
1  
By "staging server" You can use any random bit of computer hardware collecting dust. *nix itself doesn't require much. Neither does Apache, Perl, PHP and Mysql. Whatever application you have might run a tad slow on a 486, but you're not looking to run 10,000 instances as on a live server. You just want to make it work in a way that would be reproducable on your live servers. –  Ernie Jul 20 '09 at 17:24

WAMP seems to be a Windows version of LAMP, for Linux. So I would look at LAMP

http://en.wikipedia.org/wiki/LAMP_(software_bundle)

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.