fivestringsurf Posted February 7, 2015 Share Posted February 7, 2015 (edited) I've spent the last year building a web application on my local machines using the typical LAMP stack. I've been a developer for 10+ years and am fairly good when it comes to scripting but the server/hosting/system admin thing scares me. I've taken tons of sites live but they always exist on shared hosting and require minimal maintenence...simply ftp changes...no big deal. With my latest personal projects I've used revision control (git or mercurial) simply as a way to let me work from different machines. It's awesome. I push code from home, work, and my laptop and everything is in sync with one another. It really has changed the game for me. ( I use bitbucket) My latest project will involve paying customers and has a huge code base. FTPing files is not going to cut it. I've heard of having a "staging" environment so that you can push code to the staging environment, test it, and then push to production. That sound perfect! Every time I google git/staging I get pages and pages of command line stuff. I'm used to using version control GUI's like tower and sourcetree. Are there server environments that would allow me to use a GUI to manage version control? Or are linux server environments command line only? Are there any hosting companies you know of that would be a good fit for these needs? I'm looking to keep the hosting <= $20/month Thanks Edited February 7, 2015 by fivestringsurf Quote Link to comment Share on other sites More sharing options...
kicken Posted February 7, 2015 Share Posted February 7, 2015 Are there server environments that would allow me to use a GUI to manage version control? Or are linux server environments command line only? You could install X Windows and a desktop of your choosing on any linux server. It's just not typical as having a GUI is entirely unnecessary and those resources would be better spent doing what the server is supposed to be doing (serving your website). For a staging server the GUI wouldn't really hurt things too much since it'd only be used by you presumably, but for a production server it's a waste. The command line version of various source control utilities are not that difficult, especially for the basic stuff like checkout/updating of a repository which is all you'd really need to be doing on your servers. Everything more complex would be handled on your development machines which will have the GUI to help you. Learn the basic command line interfaces (make a cheat sheet if necessary) and forget about a GUI for the server work. Are there any hosting companies you know of that would be a good fit for these needs? I'm looking to keep the hosting <= $20/month I'm not sure what exactly you'd be wanting to pay for vs doing it yourself. A lot of people only do production hosting (either shared of with a VPS) and just self-host their staging/development environment (which might be the same thing). I'm not sure if you're clearly understanding what "staging" is, so here's a brief rundown of the terms: Development Environment This would be the environment you do all your development work with. It has all the fancy debugging and version control tools for you to test and develop your code Staging Environment This would be a server that is as close to identical to your production server as possible. It should use the same Webserver version, the same PHP version, same configuration options, etc. Use a copy of the real database, or have a specific test database that you can load (same structure, but will fake data). Production Environment The environment that actually hosts your live site for people to use. It's common to combine what would be Staging and Development. They just have their local development environment on which they do their work and test things. Once everything it working then push the changes to production. For smaller/less complex products this typically is fine and saves on costs some. If you want to have a more proper staging environment but don't want to spend money on extra hosting or a separate machine, you can run a virtual machine on your computers. This is typically what I do for projects where I feel it is worth while. As for pushing to production, there are choices to be made here as well which depend on how large of an update is required, and how much down time you're willing to accept. For small updates with minor changes (eg, simple bug fixes) then you can usually just copy files in place. It's still best to upload them separately then copy them over via the command line rather than try and FTP directly over the existing. That minimizes the delay by removing the network operations from the process. If you don't mind down time, you can throw up a maintenance page (or just stop services) for the duration of the update to prevent people from accessing the site while an update is in progress. Whenever you finish, then you can take down the maintenance page (or restart services). If you want minimal/no down time then you'd be updating a copy and once complete switch the server over to the copy. Quote Link to comment Share on other sites More sharing options...
fivestringsurf Posted February 7, 2015 Author Share Posted February 7, 2015 (edited) @kicken, thanks for your insightful response. I can tell you've been this path before. It's common to combine what would be Staging and Development. The only issue is I develop on a mac and naturally the production environment would be a linux so the staging to production environments would be drastically different. I was thinking that staging would be a subdomain on the production server with access limited by ips. Do you see any problems with this? Either way, it's time I get my hands dirty with some more linux / command line stuff. I think I might go get some cloud hosting for almost free and practice. (there are some free/almost free options now) And it seems like a pure linux environment with no restrictions. Edited February 7, 2015 by fivestringsurf Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.