Mobile app version of vmapp.org
Login or Join
Bryan171

: Setting up a LAMP VM server for Development and Testing? Info: I would like to set up a VM server on my local computer which will serve pages in the exact same way as my current hosting

@Bryan171

Posted in: #Apache #Mysql #Php #Server #WebDevelopment

Info: I would like to set up a VM server on my local computer which will serve pages in the exact same way as my current hosting (but only to me on my local computer). I currently pay a big web hosting company to host my website & web store and they are doing a great job, but I would like to be able to work on my Web site and its corresponding MySQL DB, HTML, and PHP code without being at risk of messing something completely up on the live servers.

My current plan of action:


Set up a VM webserver with Debian, MySQL, PHP, Apache.
Copy web store (PHP/HTML) code to VM server.
Copy my current MySQL databases from my hosting provider and install
on VM server.
Modify and test new features on VM server.
Upload MySQL DB and HTML/PHP code back to web host's server where it
should work as before but with new modifications.


Questions: Now I'm pretty sure I have steps one and two down correctly but I can't for the life of me figure out how to proceed next, so here are my questions.

I have my /etc/host file set up so MySite.test redirects to the IP address of the local VM webserver. Once I import my PHP/HTML files and MySQL file whats the best way to navigate around the fact that all of my files and DBs will reference MySite.com.
I can export my MySQL dbs but do I also have to export my MySQL users and passwords to access those db or are those coded into my html/php code?

10.04% popularity Vote Up Vote Down


Login to follow query

More posts by @Bryan171

4 Comments

Sorted by latest first Latest Oldest Best

 

@Megan663

The thing with projects like this is it never really works the way its suppose to I've imported my database and my HTML/PHP/JS code but something is never right. To those reading about doing this its more then just code and a database, its permissions, users, etc, etc. Below are somethings I've learned, some advice, and tools I've used.


I'm using Virtual Box it has a great snapshot feature, great support for my Host OS of choice(Debian) and my Guest OS of choice(Debian), and its free.
I'm only using free software/webware the online support is better and I'm broke.
Take a ton of snapshots and backups.
Keep everything with documented.
If you get stuck ask for help.
Setup host only networking so that you can get to YourSite.test Remove as much unneeded software as you can to increase performance and limit potential bugs.


This was a good idea but its a lot more work then just setting up some software. The info on this page is a good place to start but do your own research because there is a lot of stuff to learn even if you consider yourself a pro.

10% popularity Vote Up Vote Down


 

@Nickens628

Although it looks like Stephen answered your question I figured I would respond to the title of the question, "Setting up a LAMP VM server for Development and Testing?"


Get Virtual Box, it's free and easy to use.
Get the ISO for Ubuntu, Debian or the operating system that best mimics your production environment. You might have to spend money. Microsoft offers an evaluation version of Windows Server. I don't have experience with these but heard that the evaluation versions of Windows expire after some date.
Get Xampp for your OS because it installs and configures PHP and MySQL for you. It also includes phpMyAdmin and an email server that have come in handy.
Install Virtual Box.
Run Virtual Box and then install the OS on it using the ISO you downloaded.
Install Xampp on your mint virtual boxed OS. Write down those usernames and passwords, or make them easy to guess. This is a local development and testing environment after all.
Use Virtual Box to create a backup of your virtual machine image. This will make starting over and setting up a new environment a breeze.
Dance, you deserve it.


Also, I second the suggestion to use source control. It doesn't matter to me what you use, just use it. I'd also recommend that you backup your hard work, and your client's investment. Embracing source control will change how you work for the better.

10% popularity Vote Up Vote Down


 

@Eichhorn148

MySql


Use mysqldump to get the data out of your live database
Transfer the dump file to your VM
Use mysql command to import the data


Here is a website that can walk you through the process: www.mydigitallife.info/how-to-backup-and-restore-export-and-import-mysql-databases-tutorial/
If your PHP code has the db user and password hard coded, then you will have to use the same user name and password in both places. If they are configuration options, then you can use different ones and set the configuration differently.

Different host names

To deal with the fact that they are running on different host names you can do one of the following:


Use only relative linking within the site. So instead of linking to mysite.example.com/foo/bar.html link to /foo/bar.html
Create a configuration file that has the base of the site in it and use that value every time you need the base url of the site.


Use source control

I highly recommend putting your code under source control using git. Git is a free open source source control management tool. Using git you can see your edit history, and roll back to any previous version. It also makes the transfer of code back to your live site easy because you can check it in on your local VM and then check it out on your live server using your VM as a master. Subsequent transfers of code are then just git pull.

10% popularity Vote Up Vote Down


 

@Merenda212

not really: if you know where your code stores db access details you can create a single user on you VM mysql instance and usa those credentials to access all dbs, and configure with such details all your code

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme