I am developing php applications at my work.
The development server runs in a ubuntu vm, but on the host machine runs windows 7 os.
I keep running into problems with windows as a development environment and i am missing
some linux features. Unfortunately, I can not install another operating system on the host.
Now I wonder if I should install all my dev tools (like phpstorm) in another virtual machine
and do my work there. Does it make sense or will i get performance issues?
This is the perfect use-case for Vagrant.
Create and configure lightweight, reproducible, and portable development environments.
From the official website.
It can be controlled with PhpStorm and it is perfectly lightwight.
I am using PhpStorm, Vagrant & Puppet with nginx, php and mysql, XDebug and I am quite happy with it, quite powerful and very easy to deploy.
EDIT
And this is awesome blog post by James McFadden on Using Vagrant and Puppet to build a PHP, Nginx and MySQL environment and you can find numerous others with apache or any other tool you might need.
DECLAIMER: The step with replacing my.cnf didn't work for me so I could advice you to just skip it.
Related
I need to create a local development environment and struggling a little with the setup. I want to replicate my live server as close as I possibly can.
I want to install Magento ver 2.1.8, running MySQL 5.6, PHP 7.0 with NginX and Debian.
Now, it would be more than one person which will be working on the development sites, therefore, it will have to stored on our local server.
We are working on Windows 10 Pro machines.
I had a look at tools such as VirtualBox, Vagrant and Docker but reading about them got me even more confused.
I had a brief look at the LAMP stack too. Could you recommend the best way to go for my situation?
Do I have to use these tools in combination with each other?
Do I have to install the software on each computer or on local server?
I recommend to use this docker container: https://github.com/yvoronoy/magento2docker
It uses apache but you can change it via editing Dockerfile. Main advantage in this container is configured sshfs mounting in MacOS which works a little bit faster that default mounting, and you can work with source code as you work on local instance.
On my OSX machine I have two VM's running:
Development Environment (aka DE) (Linux)
Testing Environment (aka TE) (Win7 IE9)
In my TE, I would like to be able to access a server running on my DE. Pretty straight forward sounding but I'm sort of new.
I'm using Virtualbox as my client on both machines. My dev environment is a vagrant box setup with puppet. I can modify it with virtualbox as well for now. SIMPLEST solution wins. I have tried nested-boxing, it doesn't work :P
I was able to achieve the desired results much more easily than I had anticipated. I had to add the same lines I added to my local machine to my VM.
I'd like to get started with Pylons, to be used on a Windows machine as a local web server. Is there any equivalent of e.g. XAMPP for Pylons that would set up everything with one installer?
Edit: I've just discovered the Pylons web server. Could I use this to serve pages to computers on a LAN?
One thing that you could do is use mod_wsgi with XAMPP. Unfortunately I am not aware of any installers for that combination.
You almost never want to use the web server built into the framework, but Pylons uses Paste, which is quite a bit more capable than most stock web servers so that could be an acceptable alternative if you don't need httpd.
pylons can be installed using easy_install or unzipping the tarball and running "python setup.py install" (like any python package).
the great google god machine says it's possible to run a wsgi app under IIS(shudder),
other than that, once you have your pylons application written, consider running it as a windows service
I am currently using XAMPP to test and Run my website on my Laptop.
Is there any (Good,Production Grade,Free,AMP based) server software?
Or Can I manually fix the security holes in XAMPP (like no password for 'root') to bring it up to production level?
Platform : Windows
Technologies: Apache, MySQL, PHP
Requirements: Hosting on Own server
Priveleges: Easy installation and configuration
You're best off just setting things up yourself. It's not that difficult, especially since there are scores and scores of guides around the web. Trying to bring XAMPP up to production quality would be just as much work. Here are some links:
Ubuntu LAMP
Debian LAMP
Fedora LAMP
Arch Linux LAMP
WAMP (Windows)
You can easily find more by doing a Google search.
Why not simply use official Apache? It's the most-used Production http server in the world.
Can you expand your question with details on your platform and requirements?
You would be better off configuring the full stack yourself. This ensures that you know what's running, and how it's configured. Even if you use a bundle (I highly recommend Zend Server if you do), you would need to run through the service configurations anyway. Never rely on anything out-of-box in a production environment.
If you do configure the stack yourself, Google is your friend, and there are plenty of resources here to help as well.
What is your preferred development environment ?
Native
WAMP/MAMP/LAMP (Apache, MySQL, PHP) on Windows/MacOS/Linux
Working copy local, SVN/CVS on server
IDE/Editor on the same system (Eclipse, Aptana, Zend...)
Virtual/Native (Server on VM)
LAMP on VirtualBox/VMware
working copy in the VM
IDE/Editor on host, access to the VM with Samba, FTP, SFTP (eventually mapping with tools like WebDrive)
Virtual (VM)
Complete development environment running in a VM (server, tools, IDE)
Host is only used for special tools not available on the OS running in the VM
All have pros and cons.
With BitNami stacks you can run the exact same XAMP environment locally or remotely (and make sure everybody on your team is running the exact same stack). It is free and works on Windows, Linux, Mac.
I like having the SVN repository somewhere on a web server.
It's reasonably secure (using Apache WebDAV), and it gives me a good chance of recovering quickly from any disasters that may befall my main development machine. I have the luxury of control over my own web server, but there are lots of cheap hosts that will do the job at low cost.
As regards VM or no VM:
Advantages of VM - very fast recovery from screwing up your development environment
Ability to try out different versions or upgrades quickly
If you have many systems running the VM host, ability to quickly move the whole environment
Can choose any Host
Disadvantages of VM - performance impact; extra setup complexity.
On balance, I go for "no VM" if all the tools are available on my host system, but I do use VM when I need to run a different OS (the host system is a Mac Pro, so if I need Visual Studio, I do it with Parallels).