Slion.net>Dev>LinuxHome>LinuxConfig

Linux Configuration

Table of contents

Purpose & Scope

On this page one can find linux configuration tips. They are especially relevant to Suse 10.0 but some of them can potentially be applicable to other distributions. They are basically telling what I had to go through to get my machine working the way I want.

Suse 10.0 Installation

I installed Suse 10.0 with every single package from the DVD. I installed various UI but I've been using KDE almost exclusively so far. If you want to know more about my linux machine or why I choose that distribution please read that.

Partitioning

I was told "you should do a clever partioning" which I tried but then I got confused with it as I was moving fast from one distribution to another. At the end I did a single partion for my linux machine besides the swap partition. I can be bold at times! Since I've repented and I'm know considering changing my partitioning. Here is article about linux partitioning that should help me doing it properly.

Apache2 Configuration

Since I want to run a web site with that linux box the first thing I do once the OS is installed is to see if Apache is up and running. First I try through localhost (127.0.0.1). It works just fine I got the default apache home page. Then I tryed using my LAN IP and... oh surprise! It does not work. So I start wondering asking myself what could need to be changed in the server settings to get it working and can't think of anything. So I asked an expert about it through GAIM cause I'm a complete newbie to Linux and Suse. Here I have to thank Frank cause he told me to use YaST Control Center to configure my firewall. That YaST thing is just fantastic. It's basically the UI through which you can setup a lot of stuff in Suse.

So then I lunch YaST, go to the Network Services section and double click the HTTP Server icon. From that I follow the steps in the setup wizard not forgetting to tick the case saying Open Firewall on selected port. All done! My Apache server was now fully functional.

Configuration files location:
/etc/apache2/

Log files location:
/var/log/apache2/

Default document root location:
/srv/www/htdocs/

To add new conf file edit the following file rather than the httpd.conf:
/etc/sysconfig/apache2
That's the Suse way of doing it. It is so that you don't get your custom settings undone in case of system update: Basically Suse is using some script to parse this file and generate conf files upon Apache server startup.

To restart Apache I'm using a graphical application called SysV-Init Editor. Since SysV-Init Editor won't startup anymore I'm now using the command rcapache2 restart.

Also have a look at the Apache manual.

Secure connection

I considered using SSL or SSH and choosed SSL because it does not need public and private key mechanisms and it seemed easier to simply use HTTPS.

I found some valuable information about setting up SSL on my machine in the "Suse Help center". First I tryed using YaST to enable HTTPS and setup my Virtual Host configuration but it turned out to be more complexe than actually doing it by editing a few conf files. Still I used YaSTs generated conf files to help me getting mine right.

<VirtualHost *:443>
   #Here you should specify your DocumentRoot, ServerName, ServerAlias and other Directory directives etc...  
   <IfDefine SSL>
      SSLEngine on
      SSLCertificateFile /etc/apache2/ssl.crt/server.crt
      SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
   </IfDefine>
</VirtualHost>

Virtual Host

I had quite a struggle for setting up the virtual host properly but I did it eventually smile Have a look at Virtual Host examples from Apache documentation here. First of all I recommend you disable the default server if you are using virtual host. By that I mean do not have DocumentRoot or Directory or Location or Alias directives outside of your VirtualHost block. In fact the only global Directory directive I've keept denies access to the enire file system:

<Directory />
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

I would also recommend to have different DocumentRoot for each VirtualHost.

  NameVirtualHost *:80    #HTTP   virtualhost, port 80
  NameVirtualHost *:443  #HTTPS virtualhost, port 443

<VirtualHost *:80> #HTTP port 80
   #Here you should specify your DocumentRoot, ServerName, ServerAlias and other Directory directives etc...  
</VirtualHost>

<VirtualHost *:443> #HTTPS port 443
   #Here you should specify your DocumentRoot, ServerName, ServerAlias and other Directory directives etc...  
   <IfDefine SSL>
      SSLEngine on
      SSLCertificateFile /etc/apache2/ssl.crt/server.crt
      SSLCertificateKeyFile /etc/apache2/ssl.key/server.key
   </IfDefine>
</VirtualHost>

Redirect

I had some problem to do something I tought would be very simple. I just wanted to redirect access to the document root to a specific page in my TWiki. Simple redirect won't work so I came up with the following solution:

RedirectMatch permanent ^/$ https://slion.dnsalias.org/twiki/bin/view/Dev

TWiki Installation

Well basically I followed the instructions from TWikiInstallationGuide. On top of that I've installed the TreePlugin and developed the AccessStatsPlugin.

File access right have to be set according to your machine and Apache configuration. Have a look at TWiki:TWiki.SettingFileAccessRightsLinuxUnix. Access right needs to be checked when installing new plug-in.

UI Configuration

Mouse wheel issues

I'm using a Logitech MX1000 mouse. The wheel would not work so I looked at solutions to fix it. I played around with the X config file. The X config file is in: /etc/X11/xorg.conf

My mouse settings are now:
=Section "InputDevice"
= =Driver "mouse"
= =Identifier "mouse[1]"
= =Option "ButtonNumber" "12"
= =Option "Buttons" "12"
= =Option "Device" "/dev/input/mice"
= =Option "Name" "PS2++ Logitech MX Mouse"
= =Option "Protocol" "explorerps/2"
= =Option "Vendor" "Sysp"
= =Option "ZAxisMapping" "11 12"
= =Option "Resolution" "800"
= EndSection

Then I also set up the following file in the user home directory: /root/.xmodmap that file contains just those two lines:
=! Set up the MX1000 mouse buttons
= pointer = 1 2 3 6 7 8 9 10 11 12 4 5

Then only I realized that the issue I had with my mouse was due to the KVM switch I'm using. So if I was booting up the linux machine without switching to another one on the KVM the mouse wheel would work. Once I switched to another machine and back to the linux the wheel would not work anymore. So I looked up on Google for those symptoms and found the solution on the that page. The solution is to add psmouse.proto=imps to the Kernel startup command line in your boot manager.

I'm not convinced that changing the X config file was at all needed. I think just adding that Kernel startup option would have been enough.

Shell

As I was setting up my linux machine I could not always avoid using the command line and the so called Shell language. If you want to no more about my experiences with Shell please read that topic

Dynamic DNS

I've been using DynDNS for years on windows. Now I needed to setup automatic Dynamic DNS update on my linux server. I used ddclient v3.6.6 as suggested by DynDNS. Here is what I had to do to get it working as a daemon:

Version Control System

Subversion

I wanted to install Subversion and access it through apache and SSL rather than running svnserve. To do that you need mod_dav and mod_dav_svn modules for apache. I was missing mod_dav_svn. So I had to download and install the following RPM packages from a SUSE ftp mirror:

ViewVC

ViewVC was formally known as ViewCVS. It is most useful to get access to various Subversion revisions and diffs using a simple web browser. To enable ViewCVS in your Apache server

Packages

I was downloading RPMs for Apache 2.2 and Subversion 1.3 from that ftp. The command line tool for managing packages is rpm check out the manual. Here is RPM package search engine.

Teamspeak Server

Related topics

LinuxWorkInProgress, LinuxHome

I Attachment Action Size Date Who Comment
elsegz ddclient.tar.gz manage 35.9 K 01 Mar 2006 - 20:13 StephaneLenclud ddclient v3.6.6
elseconf sample_ddclient.conf manage 0.4 K 01 Mar 2006 - 20:20 StephaneLenclud Minimal ddclient.conf using DynDNS?