As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm hoping that someone will be able to recommend a good hosting company that provides the following environment. I know that I could just google for one, but I'm asking here first because I'm looking for someone that has previous experience working with such a company.
Linux Box.
Apache 2.0.
PHP5 (5.2.6 to be exact).
PostGreSQL (8.3.1).
Great tech support who know what they are doing.
A little background information for why I'm searching for a new host. I'm doing some freelance PHP work for a client that currently has his site hosted by, first name starts with H and last name starts with V (for anonymity). I'm sure they are a great company, but last night I was able to get my first glimpse at their web portal and frankly, it looked like it was developed in 90s and it terrified me.
I'm looking for a modern hosting company (my personal site is hosted by godaddy, and all the negative that they may get, their hosting control center is great IMO).
I have already spoken with my client, and they are open to switching hosting companies, so there is no problem there. I'm doing all my work on a local machine I have setup, so I want to be able to work with the tech support to get an identical server setup. Simple things like getting the correct php extensions enabled and ini file changes. There is also a part of the site that has its access controlled by http authentication, so I would also need to work with the techs to get that correctly set up. Access to folders outside of the web root is also definitely a plus (for example, godaddy does not allow this via ftp to my knowledge).
The programmer that was previously working on this site talked a bit with the techs at the current hosting company, and got the impression that they could not even correctly set up the pg_hba.conf file.
I'm also looking for a company that either already provides pgPhpAdmin installed, or can properly edit the pg_hba.conf file so that I may install it myself. The differences between the database for the old site and the new site that I will have finished are pretty substantial, so having such a tool would be a huge help to me when it comes to getting the site online and confirming that the database is setup correctly.
Anyways, sorry for the long winded post, and thank you for any replies!
Servergrove
Go for a VPS hosting. I have only positive experiences so far, you can do almost everything yourself over SSH. They are extremely helpful and uncomplicated. Plus they have an eco-conscious approach which I like very much.
try webfaction. They offer you a preinstalled environment (apache, php, postgres) and you can (if you want) configure everything yourself. Postgres Version is 8.3.1, the other version you can check yourself. Webfaction has a very good support, so I would recommend having a look.
The concept is a little different from a vps: If you take their software your get regular updates. Only if you install your own Software (like PHP)(which is possible because of a complete preinstalled build-essential) you have to maintain it yourself.
Hawkhost
Godaddy.com is another option.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I'm creating live chat application that should be part of my website. Website is fully developed using PHP. Now the problem is I'm in dilemma what would be the best appropriate tool for live chat application platform that will become part of my website. It should use Users from my website and share Session with PHP application it's part of.
I did some research and as I thought - PHP+Apache is not really the best tool for development of applications based on web sockets like my live chat is. Other platforms like Node.js looks like the right choice but I'm not sure how easy it will be to make Node to share resources with my PHP application.
I'm interested what approach would you use for situations like this? What architecture of the system would you implement?
For the end I want to tell you that my PHP website is MySQL based and I'm using knockoutJS for client-side implementation. It will use SocketIO on client-side because of it fallback strategies and support for non-HTML5 browsers. I know it can be used on server-side too but I'm doubting between it and Node or some other solution currently unknown to me. That's the main reason why I'm asking this question here. There is a small possibility that it will be running on shared hosting but I fully understand problems with shared hosting and socket connection (closed ports, no-SSH for installing Node etc.). If you have suggestions regarding this possibility - write it down. Otherwise just forget about it and answer like it's going to run on VPS.
Thanks.
If you plan on using node.js, there are solutions out there to help integrate node.js into your existing php environment. (e.g. Sharing PHP sessions with node.js) Node doesn't play to well with apache, so you will probably want to look into switching over to Nginx and PHP-fpm.
Personally to get this running "well" that is a good amount of changes for just a simple "chat" application. I would probably look into integrating an already developed solution Comet Chat. Or if I wanted to make it a little more customized I would build out something that uses an existing architecture on a separate platform. Firebase is a pretty awesome service that just came out that looks like it would fit your needs perfectly. If this worked out as a good solutions for your users, I would then work implementing something custom built in Node.JS.
A in-house solution would start with evaluating the needs for your server. How many concurrent connections do you expect? Do you have control over low-level Operating System features. Open socket and open file limits seem to be major contributing limitations to shared hosting plans. So you may need to evaluate different hosting plans. A good PaaS solution for Node & PHP is AppFog. Appfog is free for up to 2gb and 10 instances, which may help you get started. If you want total control I would recomend a dedicated server, or something like amazon AWS.
Then you will need to evaluate your architecture. Like I said, Nginx does a pretty good job how serving both PHP and node.js, but there are many more options that may better serve your needs.
A good place to look and start learning is the source code of Ballons.io. It is a very well written open source chat, and it leverages redis, which is a common solution to session management between PHP and node.js. Best of all you build the source on AppFog, and test out some in-house solutions and code in minutes without any cost to you!
Good Luck!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
When developing a website that will ultimately be located on a remote server, what is the best method to code and test?
Examples of what I mean:
- Keep it local on your computer and access the files from there. Should I install the libraries and database software (MySQL) on my computer or have the file connect to the remote server.
- Update files on the server and refresh the browser to view changes, etc.
- ???
The system I'm coding is using HTML, CSS, JS, PHP, and MySQL databases. May be utilizing cron jobs, too. The PHP is mainly used for $_SESSION and querying the MySQL databases (will have multiple databases). The remote server is running Ubuntu Linux.
Not sure what most developers do to code and check their sites. I am currently stuck on a Windows 7 environment due to work restrictions, but suggestions for OS X and Linux are much appreciated since I do work on those, too.
Please don't say to "develop on a separate server or development machine" since I do not have the budget or time for that.
Thanks!
You typically develop on a local machine that has all the required parts. A WAMP/LAMP/MAMP package is a popular choice, since it bundles all the required parts into an easily installable package. If you require a very specific setup which is hard to recreate on a desktop workstation, using a virtual machine is a good choice too. You then typically want to also run it on a test server which is as close to the production server as possible in every aspect to catch system and configuration specific problems early on.
Being stuck in a Windows world usually isn't a huge problem. It is more of a problem getting all the development tools/stack installed and at the same versions as your production server. If you were on Linux or OSX, you would be much closer to your production environment. Apache and PHP are pretty much already there on both of those OS's.
But anyway, setting up a development machine that mirrors your production environment is the best approach. And, if you have enough RAM and CPU, a virtual server on your development machine using VirtualBox, VMWare, etc is a great way to go.
Best of luck!
This all depends, if you are the only person doing development, there is no issue with testing on your local box. If you're developing with multiple people, you will want to test your changes on your local box, but have a 'staging' environment. This 'staging' environment is best if it is a replica of your production environment. That way there should be no discrepancies between your staging and production environments.
Cheers.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What I want to do is, to work on my projects from "everywhere" with internet connection
I tried followings:
Tried to connect from my office to main PC with remote desktop apps like: Team Viewer, etc.. It's very slow and boring. (Seeing what I typed after 2-3 second delay, and it's really annoying)
Carrying laptop with myself also not good idea. (It's weight about 4-5 kg.)
Flash drive also not good idea... All my projects together is about 20-30 GB.
The only comfortable way for me is: web based IDE (something like Netbeans, I mean in-built project management,etc.. BUT web based).
I was looking for Web based IDE which supports PHP, HTML, JS and other various languages. My main PC is always connected to internet. So if there is any good open source (or free) solution, I can serve this IDE either from my webhosting account or directly from my PC. (For ex. this service http://c9.io/ is exactly what I need. But there are some problems: 1 its paid. 2 I don't want to host my projects in third party servers. I need something like that, but want to instal such system on my own servers )
What do you think about this/what's your suggestion? Thx in advance...
You should check out Codiad - http://www.codiad.com - you can host it on your own server, configure it to do what you need, and access it anywhere.
If you want to work on a project from anywhere, then you may want to look at using a decentralised version control system like Git instead. Advantages is you can work on any machine with Git and an IDE or text editor, and not relying on a third-party, web-based service that can do anything with your data or may disappear overnight.
As an alternative way of solving the problem: All my projects are hosted on GitHub. I split my work between three computers. When I sit down to work on a project I run git pull and any changes I’ve made on the others get pulled down. You won’t have to re-sync all 20GB of data, just the bits that you’ve changed. Then you can continue to work using native OS applications.
You can install Git, for free, on your own server.
So you want a free web-based IDE that allows you to set the project folder in your own server? That's doable I guess, but I am not sure whether anyone has done it yet.
There's always vim though. I use it a lot and, while there's somewhat of a learning curve to it, you can use it anywhere there's a console (linux or putty on windows) and I think it has all of the features you've mentioned.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I have been having this debate with my boss for a long time, now I am having doubts about myself.
We work in a small team, with basically just me as a web developer and another assisting me when I need to do grunt work :P
My boss is trying to make me work on code that is directly on a test server, so he can check up on my progress...
I am insisting on working locally then uploading it when it's more stable, kinda like patches, because I don't want testers (my boss or sometimes even clients themselves) to see errors that are bound to happen while i am coding... and I save very frequently so working remotely means slower saves <_< which I find annoying.
So any opinions guys?
Its best to code on a development server (bascially local) and once you are finished with your code and tested it push it to the live/test server.
It's a very bad habit to develop directly on the live/test server as you are bound to get conflicts with other developers.
As you are working with another person you should also implement a revision control system. (Well basically even if you're developing solo you should. I also got one for my private projects as ist just makes it easier to revert mistakes.)
If you got a revision control system you can agree with all developers to only chek in changes that has sucessfully been tested locally and then create a commit hook that will update all commits to the testserver automatically.
So every time the revision is updated the test server follows while between commits the testserver stays stable.
If its a private test site, it all comes down to what the client wants. I've worked both situations, and the latter does upset me more but sometimes that is what the client wants.
The (Client) want to double check every hour and then complain when something isn't even finished. Its not fun, I would ask him if you can move towards a local development, and push patches nightly or something.
Though the advantage of developing on a test server is you can notice problems that you might not notice until production. It has its up and downs. I usually develop locally and try and push my changes to an identical setup test server to check for any strange errors once a week.
You need to work localy and periodically commit Your code to web-server. Some type of CVS must be installed on the server.
That so You can crash anything localy :), fast upload results to server and have 'undo' option in 1 click if something will not work on web-server correctly
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
For a web-app product which would need to be installed by the customer on their own servers (think FogBugz or the self-hosted Wordpress package), which technology stack would result in a smoother/easier installation?
Our target platforms are known: Windows/IIS/SQLSever and Linux/Apache/MySQL.
But the technology stack to be used is being debated around the office: PHP w/ no frameworks, PHP with Codeigniter, Python, ASP.Net with C# (running Mono for the Linux installations), Rails, Java, etc.
Some of the things to consider would be whether an average "out of the box" web server running IIS or Apache would have the required libraries to install the product if it were built using one technology rather than the other (for example, a PHP-based solution would probably be easier for the customer to deploy on a Linux machine as opposed to having to install mono and whatever other dependencies would be required to run an ASP.Net solution on a Linux machine as a web app).
We're working on the assumption that the customer has some access to a system administrator, but perhaps not a full-time/dedicated one -- something like a shared web host account.
Given that, we want the customer to be able to have the least amount of friction in installing the web app on their web server, and we're debating the right technology stack to use for that.
PHP/MySql is brainless simple to set up on a unix stack. You can run in to problems with extensions and version-incompatibilities, but these are relatively minor compared to most other platforms. It's a bit outside my main territory, but from what I hear PHP is quite well integrated into ISS these days. Microsoft has taken upon them selves to make PHP more compatible with their stack, and quite a few improvements in this area went into the newly released version 5.3.
If you use Python or Ruby, you could go with a strategy of supplying a web-server out-of-the-box. There are full-featured web servers implemented in both languages. They aren't as robust as IIS or Apache of course, but for a low/medium traffic site they are OK. The customer could still set their main web server up to proxy your application. This makes it much easier to get started, since you can basically have a fully self-contained package.
In the end, I don't think I would pick the technology solely based on how easy it is to deploy. With a little legwork, you can create installer packages for your major platforms, using any of the mentioned platforms (Well, perhaps mono/asp is a bit dodgy, but it could work).
Since you're going to run into troubleshooting issues, I would pick the one with the most online help available. From the choices you've given and the experiences I've had, I would definitely choose ASP.NET. (I don't know what it would take to run ASP.NET on Linux, but the Mono project should have some information.)
You've entered dangerous territory with this question...
First of all, any time you require a dependency, you assume that it is installed on the client machine. Because of the very nature of computer systems to, most of the time, be non-standardized, this is a dangerous assumption. If you know that every installation will be done on a CentOS 5 fresh install, for example, you could bundle a script to install all dependencies. Actually, if you knew that all clients would have 'yum' on the machine, you could do the same, regardless of what is or isn't there. However, this simply isn't the case.
The bottom line is that the client will probably wind up doing some legwork regardless, unless you use no dependencies. Even Ruby gems will require different installations depending on the version of Ruby installed. You can try to automate it, but there will always be those edge cases where things just don't work and have to be done by hand.
That being said, there are ways to make it easier on the client. For a dependency-less web application, I personally would pick Rails simply because everything is there. Same with Django. PHP does require a little bit more work for the client, in my mind, simply because most PHP applications are built with MySQL, which requires importing and setting up, whereas Rails has the "just works" mentality (note the quotes).
One other thing to keep in mind is that you are going to get support calls. I'd go with the stack that your support people know the best.
Well, on the plus side for ASP.NET the .NET framework is available from Windows Update and you can easily wrap your site in an installer, either via the built into Visual Studio Web Setup Project or third party installers like InstallShield, Advanced Installer or WiX (the hard core option). Dependencies in Windows can be included in installation packages as "merge modules" or you can embed MSIs with the more advanced install creators.
Shared web hosts on the other hand, well that's all manual, and no installer, Windows or Linux based is going to help you there. At the end of the day that will be FTP files up and pray. No matter what framework you use you're going to have to write a very careful installation process which kicks off the first time the app is browsed to and which checks everything is available. ASP.NET dependencies are usually just a matter of uploading the assembly DLL.