views:

194

answers:

6

I am trying to improve my programming skills by learning more about frameworks, methodologies, and related technologies. I have seen a lot of job postings with requirements that also include Linux and/or Apache. So, my question is, what sort of things should I study in terms of Linux from a development standpoint?

+2  A: 

You should definitely be familiar with the Linux command line.

You should probably pick a flavor of Linux, like Ubuntu and learn the way most apps are setup, how to build something from source, how to use a package manger like apt, how to add users and groups, how file permissions and ownership effect file access, and so on.

Learning how to start and stop apache, the difference between running one site and many with vitual hosts, where config files are stored In your preferred flavor of Linux, how to install modules, write rewrite rules, and install ssl certificates would all be useful skills for you to have.

Travis
+2  A: 

Knowing how to setup your LAMP stack, inside out.

rockacola
+4  A: 

Actually not too much skills required for the programmer, if he's not supposed to be a server admin too.

You need just 2 things to go: an SSH console client (putty is the common choice) and... a google. not a joke, not a snobbery. I myself always ask google how to do various things. Most common tasks are to make or restore mysql dump, or to set a cron job (crontab -e), or to restart apache(apachectl), or to retrieve (wget) and unzip (unzip) wordpress disributive

Just get yourself putty.exe and a host with ssh access. And experiment
learn filesystem commands, such as cd, mkdir, ls and move around.

Oh, I forgot most important thing. You have to learn console editors - vi or ee. Not the usual ones. But again google is always to help. how to exit @#%@#^! vi is the most asked question :)

Col. Shrapnel
+1 for mentioning vi. Vi + google = rule your world
Cups
+7  A: 

Knowing file permissions. Apache configuration (vhosts, options, access rules, overrides, en/disabling modules), PHP configuration (in php.ini, vhost blocks and .htaccess). Knowing how to do simple stuff from the commandline MySQL client can also be handy, but a good PHPMyAdmin install is sufficient for most things.
To learn stuff, my own setup is VirtualBox (http://www.virtualbox.org/) with Xubuntu (http://xubuntu.com/). Then you can use apt-get to install Apache, PHP (php5-gd/curl/mcrypt/mysql etc), MySQL, SSH. Then you can log in from the host OS (terminal/putty) to do cli stuff, and edit files over sftp. If you're not too worried about resources, Ubuntu will run just fine as well and is a bit friendlier wrt GUI settings.
Good luck, have fun! :-)

MSpreij
I actually have another pc with ubuntu server to learn more about linux/apache/php but VirtualBox should also provide a good way to learn :)
AntonioCS
A: 

Knowledge of POSIX signals and other job controls would not hurt.

Tim Post
+1  A: 

Working with Vi Editor would be an much appreciated quality for all developer and yes will have an added advantage for PHP developer's too.

Rachel