I have a windows pc, can I develop with LAMP? - hosting

I have a pc running windows but I want to use a linux server. Is there a way for me to develop my website on my computer before I rent space on a server? Also its probably important to note that I have no linux experience. Should I just stick with wamp?

Unless you specifically and purposely use .NET features in your PHP Application, then an application developed in WAMP will work fine on a LAMP Server as long as you have included all the same PHP plugins.
PHP is independent from Linux or Windows. 99.9% of the time you have to knowingly use features from the host OS.

You should try ubuntu in a virtualbox, there are lots of well written guides that'll get you up and running.

For best performance, use coLinux. Install a linux distro like ubuntu (easier for beginners) and you should be ok.

Yes. I have developed and maintained a website like this before. My development environment was WAMP and the server was a LAMP shared server. Shouldn't be a problem till your site is using fairly basic libraries and they are available both for windows/linux.
However as others mentioned, its wiser to have the development environment as close possible to the production environment. You don't hit any surprises that way. And hey its not difficult and involves no cost:
You can use dual boot to have linux as other operating system.
Depending on your machine, you can just install VirtualBox and install a Linux VM.

Related

Deploy ruby on rails application built on windows

I'm looking on ways to deploy a ruby on rails 4 app built on windows 7 box. I'm looking to use Heroku at the moment.
Can you please provide any pointers regarding heroku or any other easier and cheaper deployment options available out there..
Any issues That I may face due to the difference in OS in the dev environment (windows) and the deployment environment (linux on heroku)?
This is my first professional app, so any pointers will be helpful for now and also for future applications that I may work on.
Also what is the more preferred OS for ruby on rails development ?
Thanks in Advance!
You probably won't face any issues with deployment on Heroku. Heroku is the easiest option out there (albeit one of the priciest once you're off the free tier)
What's more likely to happen on Windows is that you'll find it hard to build certain gems for development, and cutting edge releases will probably not work well.
Much better to pick up a Linux distro for this.
You can also check out bluemix , which is also free for small projects. I know Heroku is not particularly windows friendly, not sure if bluemix is any better in that reguard, but it is extremely easy to deploy to.
Heroku has set of tools called heroku toolbelt, that makes easy to deploy apps to heroku. you can download heroku tool belt for windows from here
Generally you should be able to port any rails app you develop in windows to Linux/Mac, how ever since the ruby/rails community is largely built around Linux/Mac, responses/options to your issues regarding the rails apps will be low. and there are some gems which doesn't work on windows at all. So its best to move to either Mac/Linux if you are planing to continue on rails.
Once you come to Linux/mac world there are lots of providers much cheaper than heroku like DigitelOcean, however heroku would be the easiest for a beginner I believe.
HTH
One strategy you could try is to do the following:
Set up a VirtualBox or VMWare VM running Linux (Ubuntu would be a good candidate if you are not used to Linux).
Get your project into the VM and get the bundle install and everything working in Linux, you will probably find you need to make some changes in your Gemfile if you have anything windows specific there.
Install the Heroku tool-belt on the Linux VM and install to Heroku from there.
Taking the Windows / Linux transition pain on your local machine will make it much easier than Windows direct to Heroku.

WAMP or XAMPP for Windows XP Professional

I have Windows XP Professional as my OS.
Which of the following solutions is best?
WAMP
XAMPP
Separate installation
I'd recommend WAMP, as it's very easy to set up.
XAMPP is more feature rich though, as it includes Tomcat, and a slightly newer version of PHP.
Here's a simple breakdown of what's included in each:
http://www.wampserver.com/en/
http://www.apachefriends.org/en/xampp-windows.html
I would actually suggest that users go for XAMPP server.
Reason for choosing XAMPP over WAMP
XAMPP has a beginner friendly interface with simple on/off buttons to start Apache and MySQL services. Whereas the latter has more options but it's interface is jam-packed which proves confusing for beginners.
XAMPP supports FileZilla so you can easily upload your local work onto your online server. It also comes with TOMCAT and newer version of PHP ( recommended for PHP Programmers )
XAMPP has more extensions to it compared to wamp.
You can check out my article on xampp and wamp comparison to get a more detailed understanding:
Wamp, faster and more noob friendly. Easy to configure and easy to install.
WAMP is easier to use in my opinion, but XAMPP may be more feature-rich.
Seeing as you're asking the question, though, I'd recommend WAMP.
You may also want to consider using BitNami WampStack. It is a free all-in-one installer that includes Apache, PHP, phpMyAdmin, MySQL and a GUI management tool for the servers.
It is similar to XAMPP, WAMPServer, etc. in that regard but with some differences: We keep it up to date (XAMPP is also kept fairly up to date, WAMPServer has not been updated since 2010 at the time of writing this posting). Also, any of the all-in-one Apache bundles are
Windows specific. We are multiplatform, meaning that you can use the same environment across multiple operating systems (Mac, Linux, Windows). We find this very useful internally, since our designer works on Windows and the rest of us run on Linux or OS X.
Also, we have found that a lot users want to setup XAMPP for local development on top of Joomla!, Drupal or Wordpress for developing plugins, themes, etc. and that is why we created all-in-one packages that include Apache, MySQL, PHP and those applications pre-installed. We also have Rails and Django versions of the stacks if that's what you are developing on.
Give it a try (it is free!) and let us know what you think :)
I use Visual-AMP & Visual-NMP, It is like the IIS,
Green portable, requires no installation. Stop related services that are running the program, you can move the directory.

Developing Linux software on Windows

I want to write software for the Linux platform, but I would like to do this on a Windows OS. I'm only developing Linux software for a remote server of mine, so it wouldn't be worth it to switch to Linux just for that. I don't think it's as simple as using a cross-compiler, because I will be writing code that uses headers specifically for Linux, and I would like to test the programs on Windows. I don't want to use VirtalBox etc.
If possible, install the entire development environment on the linux server. Then install an Xserver (e.g XMing) and an ssh client (e.g putty) on your Windows box. Then run the dev. environment remotely.
The big pro of doing this is that the linux windows integrate seamlessly in the Windows enviornment. I used to work with dual platform development and had a virtual linux box on my PC. Still, I used ssh+X-forwarding to access it. This way I got full copy-paste support etc. between the environments.
Now WSL (also known as "Bash on Windows") exists, you can run native Linux binaries directly on Windows. With snapcraft you can package Linux applications entirely under Windows, without using a VM. Might be a better option. I made a super quick video to explain it.
CoLinux allows you to run linux side-by-side with Windows.
You could try VirtualBox and virtualize a Linux environment from within Windows. I do the reverse of what you are trying to do and run Windows from Linux, and it works quite well.
If you are familiar with .NET and C# you can use Mono for your client.
You can use Visual Studio to develop and the Mono runtime one Linux to run the application.
You do need to keep away from windows specific code.
Maybe Cygwin could help. You don't need an entire virtual machine and only the api is emulated.
You could use g++ in cygwin to target a linux binary. It's a pain to setup as you noted you'll need the entire toolchain (not just the compiler). I've used crosstool (domain name makes me giggle every time) in the past with success. It looks like someone did the work already http://metamod-p.sourceforge.net/cross-compiling.on.windows.for.linux.html
However I've never targeted linux from windows. I'd install a virtual linux box, way easier and you're likely going to want to do your testing on a real linux box before going live.
Cygwin isn't linux so you can't test your linux binaries there.
Out of curiosity what's keeping you from doing the development on linux? If the server the app runs on isn't mission critical you could even develop there.

Can I run a native OS installation as a virtual machine OS?

I am using win7. I wish to use Fedora on my machine, but don't know just how much I will be needing either of my OS. I wish to install Ferdora and configure it as a dual boot system.
At the same time, when time calls for it, I want to run the same Fedora installation as a virtual machine on top of win7. Is there a way to do it?
VMWare Workstation supports this, but I've never tried in Windows.
Here's an article on their site (it discusses VMWare 5 and they're now on 7.1, so a newer one can probably be unearthed):
http://www.vmware.com/support/ws5/doc/ws_disk_dualboot.html

Is there an online application simulator somewhere?

I've developed some Java applications and wrapped them in exe files, some of them require JDIC files, the apps run on Windows systems, since my PC is all setup for development, it has all the necessary parts, but if a user downloads and runs my apps, they may not work as I thought. So I wonder if there is any place online that I can upload my apps and try to run them in a Windows environment and see if they work in the simulation ?
Frank
Consider using VirtualPC. You can get licensing for free.
Also you can get images from MS site for various versions of Windows to test with - supposedly for browser compatibility but you can use them for other things (which may or may not violate the EULA).
Consider using VMWare Workstation. You can get licensing for free.
You could use Amazon's EC2 instances to get easy access to virtual Windows machines. There is a bit of set up involved, but once you've done that you can spin up new machines easily enough. There are a number of tutorials online.
However, doing it locally with virtual windows instances is going to be even easier. I'd second VMware workstation or player.
You can download trial Windows server images directly from Microsoft for free.

Resources