how to start ... a project
planning -- documentation -- one step at a time
- planning and step-by-step build up
A larger project, such as this one, needs a step-by-step approach. You cannot work on every aspect of your system at the same time.
I didn't see many students planning in advance.
Without a structure, the goal might be reached after nests of configurations and un-installs. It is even more possible that the goal might not be reached at all.
We need to build up from a clear foundation, step by step, and test every step.
- please .... make a plan
- A DRAWING MIGHT SIMPLIFY YOUR PLAN
customisation of the system
- apache2 default settings
testing apache2 default locally
testing apache2 default from another machine
- adding one virtual user / site
testing default and virtual host locally // another machine
- and so on
You first think about the grand structure, but don't forget to fill in the details while you are there ...
A plan is not static. When you take a break new ideas start popping up in your subconsciousness. Some of them could be so GOOD as to forcing you to make a completely new plan. Most of them imply that you have to adapt the plan, a little, or more, while on the road to the perfect solution.
- the problem
All too often I heard:
"I changed something and now it doesn't work anymore ... "
"Then , what did you do"
"Undo those many things"
"I've forgotten what I did ... "
There are two problems in the above:
- jot down what you do
- you can keep a written journal on a piece of paper, even better: use a notebook
- there is a smart phone to make pictures and other stuff
- you can keep a google-drive (or a competitor's) document open and write what you do
- you can make copies of working configurations ...
$ cp /etc/apache2/apach2.conf $HOME/my-apache-project/apache2.conf.1420
or copy the entire directory:
$ cp /etc/apache2 $HOME/apache2-dir-1420
it takes 5 seconds to do this.
- you can in-line document your configuration files starting with some thing like
(comment lines usually start with #, but not always -- use the appropriate symbol(s)):
# added this @14.21 to solve problem XYZ -- sysadmin george VARIABLE="yes"
- you can do all of the above
- do ONE thing at a time
- just change one thing and document it
- do a test
- if it works: document that it works and continue
- if it doesn't work: document that it doesn't work (so you will not try this again),
try something else
It might look like you are wasting time, but you are really gaining more time to do what you have to do.
This one-thing-at-a-time approach, goes hand in hand with carefull planning.