Minimal How to Setup LAMP Web Server

Apache

Apache 2.0

Install Apache from Debian stable:

apt-get install apache2

Apache is ready and running. Test that it is workin by pointing browser to www.mysite.com. Read Apache’s security tips.

Apache’s files and directories are:

  • /etc/apache2/sites-available/mysite.com: Your virtual domain configuration.
  • /etc/apache2/sites-enabled/mydomain.com: Symlink to you configuration, when site is enabled with a2ensite mysite.com command.
  • /var/log/apache2/: Logs.
  • /var/www/mysite.com: Your site.

Install Cronolog:

apt-get install cronolog

Make your sites configuration file in /etc/apache2/sites-available/mysite.com:

  ServerAdmin [email protected]
  ServerName www.mysite.com
  ServerAlias mysite.com
  DocumentRoot /var/www/mysite.com
  ErrorLog "|/usr/bin/cronolog /var/log/apache2/%Y/%Y-%m-mysite.com-error.log"
  CustomLog "|/usr/bin/cronolog /var/log/apache2/%Y/%Y-%m-mysite-com-access.log" combined

Make /var/www/mysite.com directory for your sites files. Enable your sites configuration file:

a2ensite mysite.com

Reload Apache:

/etc/init.d/apache2 reload

If you for some reason want to remove the site from Apache configuration:

a2dissite mysite.com

More about installing Apache.

PHP

PHP 5.1

In order to use apt-get to install PHP 5, you need to add one of the dotdeb.org mirrors to /etc/apt/sources.list, like:

deb http://packages.dotdeb.org stable all

And istall PHP:

apt-get update
apt-get install libapache2-mod-php5

Php.ini is in /etc/php5/apache2/php.ini and recommended .ini is in /usr/share/doc/php5-common/examples/php.ini-recommended.

More about installing PHP.

MySQL

MySQL 5.0

Install MySQL also from dotdeb.org as PHP:

apt-get install mysql-server
apt-get install php5-mysql

More about installing MySQL.

Minimal How to Setup VPS Server

Virtual Private Servers (VPS) come pre installed with operating system. Debian Linux is used in this how to. Debian’s apt packages are real time savers and they require minimum work. First thing to do is to install firewall and ntp service. Make a SSH connection with PuTTY to your VPS to install the programs.

picoFIREWALL

PicoFIREWALL

PicoFIREWALL is a Linux kernels iptable’s configuration script and it requires minimum work to install and configure. Add the following line in your file /etc/apt/sources.list:

deb http://debian.seismo.ethz.ch sarge ethz_sed

Install picoFIREWALL:

apt-get update; apt-get install picofirewall

PicoFIREWALL is now installed and running, but aknowledge that with default settings picoFIREWALL prevents all incoming connections into the server, including SSH. And since you don’t have a console login for the VPS server you have to make some configuration to be able to login again. Edit /etc/picofirewall/open_log.cfg file and add:

0/0,tcp,22

This opens SSH port 22 connection to all ips. You could use your desktop client’s ip and add instead something like:

111.222.111.222,tcp,22

But remember that your internet connection’s ip might change. If you know any computer you have access and whitch ip is not changin, it might be good backup to add that ip as allowed. I don’t know what is the best solution if you only have a changing ip and you don’t want to make port 22 open to everybody. One might think that services like DynDNS is the answer, but these services don’t make different the fact that your connections ip is still changing and kernels iptables operates only on ip address layer and DNS layer is higher layer.

If and when you want to open the http port 80 edit /etc/picofirewall/open_log.cfg file and add:

0/0,tcp,80

After changing picoFIREWALL’s configuration run:

/etc/init.d/picofirewall start

NTP

Ntp

There is no reason why you would not like to have a exact time in your server. So install ntp:

apt-get install ntp
apt-get install ntp-server

To set the time first time you have to stop the ntp service, set the time and start the sevice again:

/etc/init.d/ntp-server stop
ntpdate pool.ntp.org
/etc/init.d/ntp-server start

If you notice that ntpdate won’t change the time of the server, your VPS hardware is propably forcing Linux time synchronization and it is propably not the exact time. Then you have to edit /etc/sysctl.con file and add the line to disable forced synchronization:

xen.independent_wallclock = 1

More info about virtualization’s time synchronization.

Minimal How to Install SSH Clients

PuTTY

PuTTY 0.58

Download PuTTY (putty.exe). You can also download PSCP (pscp.exe) from the same download page for coping files from command prompt. Copy both files into a folder in your hard drive. When you start the PuTTY, it will ask the login configuration. Default SSH port is 22.

WinSCP

WinSCP 3.8.2

Download WinSCP as standalone application (winscp382.exe). Copy the file into a folder in your hard drive. When you start the program, it will ask the login configuration. Default SSH port is 22. From WinSCP F.A.Q.: How do I change user after login (e.g. su root)?.

Minimal How to Start a Blog

Planning

Desktop Client

Web Server

  • Choose a server platform: There are two major options for bloggin platform: to use a free service like Blogger or to have have a hosted service with your own domain. The latter option can be a hosted website, virtual private server (VPS) or dedicated server. With a free service you have only littel control over your blog. Hosted website might be the best options for easy setup and maintainance but in vps is the best option having total control over your server and blogging software with usually reasonable price.
  • Order the hosting service: Choosing the hosting service possibly depends if you want to have it in your country or somewhere else. You can start looking options for example with Go Daddy.
  • Register the domain: Usually domain registeration is included in the hosting service.
  • Install and configure software: Linux, firewall, ntp, Apache, MySQL and PHP.

Blogging Software

  • Choose a software: For mainly blogging WordPress is a good choise and for content management system (CMS) there is Drupal. These are both php choises. There are also choises for other paltforms, but for this purpose I would say that php is a agile choise.
  • Install and configure the software: WordPress has a good documentation.
  • Choose or create the theme for the blog: WordPress Themes
  • Start blogging

This is a minimal how to start a blog list. More about them later, but with the list you are ready to go. There are many more things to learn and consider, like writing content, blog networks, search engine optimization (SEO), monetizing blog and so on. Also more about them later.

About topic planning there is not going to be more here for now because, as you can see, ProBlogger is an excellent resourse for that.

Scroll to Top