I built a website for a client recently and they’ve asked me to provide a proposal and quote for providing a similar CMS-based approach to their corporate intranet.
I haven’t done an intranet before but I’m always keen to try something new so would like to go for this one but have a number of issues I’m trying to get to grips with.
I know they would like to host this on an internal server but I would need to access this remotely as they are based a long distance from me. I’m confident I can get a LAMP server setup with FTP access but would normally use CPanel to manage my sites and PHPMyAdmin for the database. I’m therefore not clear at the moment on how best to migrate and maintain the site once its developed. Any thought and advice would be most welcome.
Also, I’m assuming that the root of the site would be an IP address or localhost. I’m assuming that there are no serious difficulties in building a navigation system and links based on a different root, but again confirmation on that would be good.
Last one would be security issues. I’m guessing that PHP would struggle to authenticate using the corporate account server?
Any thoughts, warnings or tips would be very much appreciated.
Really, all you should actually need is ssh access to the server. You shouldn’t be using ftp as a deployment mechanism anyway, and cpanel really isn’t something you should be reliant on. I’d recommend learning how to ssh from the command line, and doing it all that way.
Other people will probably be able to give you more gui friendly advice…
Edit: Also, phpmyadmin should be a major no-no for something like this. If you can access phpmyadmin remotely on the production server, what’s stopping someone with nasty intentions from also doing so? Phpmyadmin shouldn’t even be installed.
That are a variety of things that could be done, one RDP (Remote Desktop) over VPN to get you internal access to install LAMP and get it setup (deployments may need to be handled differently, sending the client the code and let them deploy it for example).
I also agree that phpMyAdmin is likely unnecessary and as @aaarrrggh ; pointed out, it could be taken as a security risk.
From an Intranet perspective, you’d have to see what they use for authentication. Do they use Active Directory? Another tool? Can you integrate with it through a service? Also seeing phpinfo() will be of great help to you! I know there is a variable that has the username of the user in it, you’ll then have to figure out how to validate that.
You may even want to install PHP on IIS (if they are a Windows shop), but I digress, that decision would need to happen between you and the client.
For database administration, try looking into a program like navicat. It can connect to your database via an ssh tunnel, which means so long as you have ssh access and the database username and password details, you can connect to the database as if you were locally connected to the machine, and you can do it without leaving a big security hole open such as phpmyadmin.
The best way to learn how to setup a server via ssh is probably to setup a virtual machine for yourself and play around with it. There are loads of tutorials and information available online that will take you through the whole process step by step.