Basic System admin Tips in Debian
How to change Log in message.(MOTD-Message of The Day)
sudo vim /etc/motd
If you want to avoid /etc/motd to be overwritten with the old version upon reboot you also have to edit the following
sudo vim /etc/default/rcS
in this file change the EDITMOTD “yes” to “no”
Changing the computer name
sudo vim /etc/hostname
ORA-1113 signalled during: alter database open
The ORa-1113 error means that your Backup implementation (“Retrospect”) does an ALTER TABLESPACE BEGIN BACKUP and END BACKUP for each tablespace.
In 8i, you would not have the “ALTER DATABASE END BACKUP” command. Nor the “ALTER DATABASE DATAFILE .. END BACKUP”.
What you would do is :
1. Start the service.
2. Go to Windows command line prompt as the Administrator or account in the OS_DBA group (with the right ORACLE_SID, ORACLE_HOME and PATH)
3. sqlplus / as sysdba
4. startup mount — or ALTER DATABASE MOUNT if it did get started but not mounted
5. ALTER TABLESPACE (tablespacename_that_was_in_backup_mode) END BACKUP ;
(if there were multiple tablespaces in backup mode, issue the END BACKUP for each one of them)
6. ALTER DATABASE OPEN ;
The other option to step 5 is the “RECOVER DATABASE” . Oracle may apply archivelogs to synchronise the datafiles back.
Adding Oracle ‘dba’ group to Ubuntu User
1- Go to System->Administration->Users and groups.
Then select the “Group” tab, search for the “dba” group, click on properties and select your user moving from the pane on the left to the pane on the right. Accept the modification and you’re done.
2- use usermod from a terminal to add your user to the group:
sudo usermod -a -Gdba stan
Although I would recommend you keep starting and stopping the database with the oracle default user (just su – oracle in the terminal when you need to do it). It’s like the concept behind the “sudo” command in ubuntu: you’re protecting the user and yourself from mistakes, other people accesing your machine.
Recover MySQL root Password
You Can Recover MySql database root password easily by following steps
Step 1: Stop MySql Service
# /etc/init.d/mysql stop
You will see:
Stopping MySql database server: mysqld
Step 2: Start MySql With Out Password
# mysqld_safe –skip-grany-tables &
You Will See:
[1] 5988
Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
Step 3: Connect to mysql server using mysql client
# mysql -u root
You Will See:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 4.1.15-Debian_1-logType ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
mysql>
Step 4: Setup New MySql root user Password
mysql> use mysql;
mysql> update user set password=PASSWORD(“NEW-ROOT-PASSWORD”) where User=’root’;
mysql> flush privileges;
mysql> quit
Step 5: Stop MySql Server
# /etc/init.d/mysql stop
You Will See:
Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended[1]+ Done mysqld_safe –skip-grant-tables
Step 6: Stop MySql Server and Login as root
# /etc/init.d/mysql start
# mysql -u root -p
To delete the / after the src From HTML Files
Deleting the / from the all html file after src=
Deleting the / from the all html files containing in one folder
sed -i ‘s/src=”\//src=”/g’ *.html
To delete the JavaScript Tag in HTML Files
sed -i ‘/<script type=”text\/javascript”/,/<\/script>/d’ *.html
OR
U can use following code also for same process
#!/bin/bash
# ALL HTML FILES
FILES=”*.html”
# for loop read each file
for f in $FILES
do
INF=”$f”
OUTF=”$f.out.tmp”
# replace javascript
sed ‘/<script type=”text\/javascript”/,/<\/script>/d’ $INF > $OUTF
/bin/cp $OUTF $INF
/bin/rm -f $OUTF
done
Executing Our Own Shell Script When OS Booting in Debian
Write a shell script.
To Open the folder with super user permission
#! /bin/sh
sudo nautilus
save the file as sample.sh
Make sample file as executable
chmod a+x sample.sh
Copy the file into init.d folder
sudo cp sample.sh /etc/init.d/
check which is default runlevel
sudo vi /etc/inittab
# The default runlevel.
id:2:initdefault:
This means your default run level is 2.
Give the link to to the default run level
ln /etc/init.d/sample.sh /etc/rc2.d/S10sample
why i gave the link rc2.d, because of the default runlevel is 2 so i gave the link to rc2.d.
In S10sample ‘ S ‘ is mandatory 10 is number u can give your own number from 10 to 99
After that update rc by following code
sudo update-rc.d sample defaults
Installing Mono 2.4 in Ubuntu
This is a step by step guide to installing Mono 2.4 and mod_mono on a
fresh Ubuntu Server install. Let’s begin.
1) Logon to machine so you see a command prompt.
Type: sudo bash
Enter your password, you should now be root. This will allow you to do
whatever you want without typing “sudo” in front of every command.
2) Install all prequisits for Mono. Note you can put all packages on a
single line, but if you’re just starting out, you might want to install
each one just to make sure it all goes well. If any package is already
installed, just continue on. Depending on your system, you might already
have some of these.
Type: apt-get install build-essential
Type: apt-get install pkg-config
Type: apt-get install bison
Type: apt-get install libglib2.0-0 libglib2.0-dev
Type: apt-get install libpng12-dev
Type: apt-get install libx11-dev
Type: apt-get install libfontconfig1-dev
Type: apt-get install libfreetype6-dev
Type: apt-get install apache2
Type: apt-get install apache2-threaded-dev
Type: apt-get install gettext
3) Download and build libgdiplus which is required for Mono to build.
Type: cd ~
Type: wget
http://ftp.novell.com/pub/mono/sources/libgdiplus/libgdiplus-2.4.tar.bz2
You should now have the file libgdiplus-2.4.tar.bz2 in your ~/ directory
Type: tar -xpjf libgdiplus-2.4.tar.bz2
This will decompress the tar file into its own directory, note you won’t
see any output)
You should now have a directory called libgdiplus-2.4
Type: cd libgdiplus-2.4/
Type: ./configure
You should not see any errors, but if you’re missing any packages please
install them and run “./configure” again.
Type: make
Sometimes here I see some error about “link is not a valid
libtool object” and Error 1. I have no idea what causes this, but I can
usually work around it by running “apt-get update” and “./configure” again.
Type: make install
4) Build Mono:
Type: cd ~
Type: wget http://ftp.novell.com/pub/mono/sources/mono/mono-2.4.tar.bz2
Type: tar -xpjf mono-2.4.tar.bz2
This will take a minute or so because it’s a big file and you won’t see
anything on the screen because stuff isn’t too chatty in the UNIX world.
Type: cd mono-2.4/
Type: ./configure
Type: make
This will take a while – probably about 15 minutes or so.
Type: make install
When this is done, you should be able to type “mono” from the prompt and
see mono options. This is a good sign.
5) Build xsp (this also includes mono-server which is used for Apache
integration)
Type: cd ~
Type: wget http://ftp.novell.com/pub/mono/sources/xsp/xsp-2.4.tar.bz2
Type: tar -xpjf xsp-2.4.tar.bz2
Type: cd xsp-2.4/
Type: ./configure
Type: make
Type: make install
6) Build mod_mono so you can run Mono web sites on Apache
Type: cd ~
Type: wgethttp://ftp.novell.com/pub/mono/sources/mod_mono/mod_mono-2.4.tar.bz2
Type: tar -xpjf mod_mono-2.4.tar.bz2
Type: cd mod_mono-2.4/
Type: ./configure
Type: make
Type: make install
7) Configure Mod_Mono with Apache
Type: cd /etc/apache2
Type: pico apache2.conf
Search for this section:
# Include module configuration:
Include /etc/apache2/mods-enabled/*.
load
Include /etc/apache2/mods-enabled/*.conf
Add the following line under the above lines:
Include /etc/apache2/mod_mono.conf
At the end of this file, add the following line:
MonoServerPath /usr/local/bin/mod-mono-server2
Press CTRL+X to exit Pico, answer “Yes” to save your changes and press
enter to use the same file name.
Restart Apache by typing: /etc/init.d/apache2 restart
8) Make sure it all works!
Type: cd /var/www
This is your default website directory. By default there’s just a
temporary index.html file that says “It works!”, you can remove this.
Type: rm *
Now let’s create a test ASPX page.
Type: pico default.aspx
If you know ASP.NET, you can write some code here. But for something
dirt simple, just use:
Save the file and exit Pico (CTRL+X)
In your web browser, you should now be able to browse to the site and
see “Hello World!” on your screen. From this point on, you should be good
to go and develop a much more complex application
Virtual Hosting Using apache2
What is Virtual Hosting and where and why it is used?
Vitual Hosting is a method that servers such as web servers use to host more than one domain
name on the same computer.
Virtual hosting allows a website owner to have a site hosted on a web server that is shared with
other websites. In other words, virtual hosting services and bandwidht to more than one website.
Virtual web hosting is one of the most popular hosting options available at the moment -
probably because of cost effective because you won’t have to pay for a dedicated server to host just
your website.
Virtual web hosting is good solution for SME’s even for MNC’s also websites that aren’t constantly being visited
There are two basic methods of accomplishing virtual hosting: name-based, and IP address or ip-based.
Lets move to the Practical Session
Check are you have Apache2, mysql5, php5 in your PC or Laptop or NoteBook what ever you calls otherwise follow below steps
1. Install LAMP
2. Control Apache2
3. Control MySql
4. Virtual Hosting
5. Virtual Hosting with multiple names
1. Install LAMP – Linux Apache2 Mysql Php
I preasume you have Ubuntu Linux installed. Let’s install everything else (Apache 2, PHP5 and MySQL 5)
sudo aptitude install apache2 mysql-server php5 php5-mysql libapache2-mod-php5
Open your favourite web browser and enter http://localhost (or http://127.0.0.1)
Check if Apache 2 and PHP 5 work fine
Create a file called test.php and enter this text in it
<?php phpinfo(); ?>
Save the file and copy it to your web site folder, e.g. /var/www
Open your web browser and run
http://localhost/test.php
2. Control Apache2
To start Apache2
sudo /etc/init.d/apache2 start
To stop Apache2
sudo /etc/init.d/apache2 stop
To restart Apache2
sudo /etc/init.d/apache2 restart
After first install I always get this error:
apache2: Could not determine the server’s domain name, using 127.0.0.1 for ServerName
It is easily fixed – add ServerName localhost into apache2.conf
gksudo gedit /etc/apache2/apache2.conf
3. Control MySQL
To start MySQL
sudo /etc/init.d/mysql start
To restart MySQL
sudo /etc/init.d/mysql restart
To stop MySQL
sudo /etc/init.d/mysql stop
Creating Database using MySql
First Login into MySql Using Following Command here it will ask password then enter the root password of My Sql. MySql Password has given when it was Installing
mysql -u root -p
Create Database
Create Database virtual;
Use Database
Use virtual;
4. Virtual Hosting
(a) Allow user to web directory
(b) Create Folder and link to web directory
(c) Using Virtual Hosts
(d) Adding Virtual Hosts
(e) Apache Configuaration
localhost is the default host, but if you add virtal hosts, you may want to change it to, say, somechow
However, the address http://localhost/ by default points to /var/www. That folder is basically empty that is why you do not see much in your web browser.
To show proper web site, you need to put some web pages in that folder.
(a) allow yourselft to have access to the folder /var/www
sudo chown -R USERNAME /var/www
Now, you can copy your great web site to the folder /var/www.
Start Firefox again and type http://localhost/. Do you see you web site?
If you hate to always navigate to /var/www, you can press Control-D in Nautilus to add a new bookmark in Places menu. You can create a link to it in your home folder for easy access, alternatively.
(b) Create a folder in your desired location and link to the web direcotry
ln -s /var/www ~/WebSite
Now you can place all your web content inside the folder WebSite in your home folder and you will see your web site by going to
http://localhost/
(c) Using virtual hosts
If I put a folder called somechow inside /var/www, I can run my local web site by entering http://localhost/somechow.
However, I prefer more human-readable web addresses. For example, when I enter http://somechow, my local WordPress copy of somechow.Ws (located in /home/some/WebSites/somechow) runs in Firefox.
To use virtual hosts, you need to change hosts file and add some information for Apache.
(d) I add my virtual host address to Hosts file
sudo nano /etc/hosts
127.0.0.1 somechow
In above quote instead of 127.0.0.1 I used my desktop IP.
Then I reboot the computer or networking for changes to take effect
sudo /etc/init.d/networking restart
(e) Apache Configuration
Open the window in super user mode uisng following command prompt
sudo nautilus
I create a copy of file default which is located in /etc/apache2/sites-available and rename it to somechow.
I created a link to this file by right-clicking and selected MakeLink option
I copy this link to /etc/apache2/sites-enabled
I change link file into somechow:
NameVirtualHost * is changed to NameVirtualHost somechow
ServerName@somechow is added under ServerAdmin
DocumentRoot /var/www/ is changed to DocumentRoot /home/some/WebSites/somechow
5. Virtual Hosting with multiple names
(a) Allow user to web directory
(b) Create Folder and link to web directory
(c) Using Virtual Hosts
(d) Adding Virtual Hosts
(e) Apache Configuaration
localhost is the default host, but if you add virtal hosts, you may want to change it to, say, somechow and somedary
However, the address http://localhost/ by default points to /var/www. That folder is basically empty that is why you do not see much in your web browser.
To show proper web site, you need to put some web pages in that folder.
(a) allow yourselft to have access to the folder /var/www
sudo chown -R USERNAME /var/www
Now, you can copy your great web site to the folder /var/www.
Start Firefox again and type http://localhost/. Do you see you web site?
If you hate to always navigate to /var/www, you can press Control-D in Nautilus to add a new bookmark in Places menu. You can create a link to it in your home folder for easy access, alternatively.
(b) Create a folder in your desired location and link to the web direcotry
ln -s /var/www ~/WebSite
Now you can place all your web content inside the folder WebSite in your home folder and you will see your web site by going to
http://localhost/
(c) Using virtual hosts
If I put a folder called somechow and somedary inside /var/www, I can run my local web site by entering http://localhost/somechow or http://localhost/somedary
However, I prefer more human-readable web addresses. For example, when I enter http://somechow and http://somedary , my local WordPress copy of somechow.Ws or somedary.ws(located in /home/some/WebSites/somechow and /home/some/WebSites/somedary ) runs in Firefox.
To use virtual hosts, you need to change hosts file and add some information for Apache.
(d) I add my virtual host address to Hosts file
sudo nano /etc/hosts
127.0.0.1 somechow
127.0.0.1 somedary
In above quote instead of 127.0.0.1 I used my desktop IP.
Then I reboot the computer or networking for changes to take effect
sudo /etc/init.d/networking restart
(e) Apache Configuration
(i) For somechow
Open the window in super user mode uisng following command prompt
sudo nautilus
I create a copy of file default which is located in /etc/apache2/sites-available and rename it to somechow.
I created a link to this file by right-clicking the somechow and selected MakeLink option
I copy this link to /etc/apache2/sites-enabled
I change link file into somechow:
NameVirtualHost * is changed to NameVirtualHost somechow
ServerName@somechow is added under ServerAdmin
DocumentRoot /var/www/ is changed to DocumentRoot /home/some/WebSites/somechow
(ii) For somedary
Open the window in super user mode uisng following command prompt
sudo nautilus
I create a copy of file default which is located in /etc/apache2/sites-available and rename it to somedary.
I created a link to this file by right-clicking the somechow and selected MakeLink option
I copy this link to /etc/apache2/sites-enabled
I change link file into somedary:
NameVirtualHost * is changed to NameVirtualHost somedary
ServerName@somedary is added under ServerAdmin
DocumentRoot /var/www/ is changed to DocumentRoot /home/some/WebSites/somedary
Installing SVN and TRAC in Ubuntu 9.04 with Apache2 SSL
This tutorial will guide you through installation of Apache, HTTPS, Subversion and Trac, in order to have an (almost) complete development environment for your team.
This article is divided in following steps
1. Installing Subversion
2. Installing Apache
3. Configuring Apache with SSL
4. Configuring Subversion with Apache (and SSL)
5. Installing Trac
You may choose for example to see how to install Apache and SSL, or having Apache plus subversion without Trac.
Steps are voluntary isolated, and will require more operations than, for instance, issuing an “apt-get install trac” that will download and install all the packages in one step; but this will hopefully allow the readers to choose picking one section and forget about unneeded components.
I’ll not explain what Subversion is, or what SSL is, etc. Ask google, for this info: I just say that for your software project you may need a server with those tools ready for your team.
Requirements
You need Ubuntu 9.04, in my case I used the “desktop edition” 32bit. But possibly this tutorial should be valid for Debian and previous Ubuntu version; but I have not verified that: if you do, post a comment to report your experience.
Preparation
After installing your server you have to ensure that apt system is up to date with available software on the repositories. Type the following command:
$ sudo apt-get update
upgrading installed packages may be a good idea to do now:
$ sudo apt-get upgrade
Answer Yes if asked to download and install the upgrades.
1. Installing Subversion
From the command line type the command:
$ sudo apt-get install subversion
If everything went fine you should able to verify the Subversion version installed with following command:
$ svn –version
svn, version 1.5.4 (r33841)
compiled Aug 7 2009, 01:44:11Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).The following repository access (RA) modules are available:
* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
- handles ‘http’ scheme
- handles ‘https’ scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
- with Cyrus SASL authentication
- handles ‘svn’ scheme
* ra_local : Module for accessing a repository on local disk.
- handles ‘file’ schemeFor now, let’s stop here: how to create the Subversion repository, configure the users etc. Will be explained later in conjunction with Apache2 configuration. Maybe I’ll write something on how to deal with svnserve, svnadmin, and user access control, in another article.
Later we will see how to create a repository, configure it with apache and HTTP basic authentication.
2. Installing Apache
To install apache 2 type the command:
$ sudo apt-get install apache
When finished you should be able to connect with the browser at http://localhost and see the message “It works!”. Or you may verify that at the command line installing and using curl:
$ sudo apt-get install curl
$ curl http://localhost
<html><body><h1>It works!</h1></body></html>
3. Configuring Apache with SSL
Now we want to configure apache to run HTTPs.
Following command will enable ssl Apache2 module with a2enmod (cryptic name for “Apache2 enable module”:
$ sudo a2enmod ssl
The previous command will suggest you to restart apache to let it to reload the configuration; ignore that message for now.
We need to enable the HTTPS port (443). Edit /etc/apache2/ports.conf and ensure that port 443 is defined as follows:
$ sudo gedit /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gzNameVirtualHost *:80
Listen 80<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
NameVirtualHost *:443
Listen 443
</IfModule>
I added the clause NameVirtualHost *:443 in the for SSL; this is not strictly necessary but it will be useful later if you want to have a VirtualHost for trac and other development services.
Now we need to configure the SSL site. Fortunately we have already the configuration file for that, we just need to enable it with a2ensite (cryptic name for “apache2 enable site”)
$ sudo a2ensite default-ssl
Again, the above command will suggest to reload apache configuration to activate the changes. This time the suggestion is almost right. As we made several changes I prefer to restart apache with following command:
sudo /etc/init.d/apache2 restart
* Restarting web server apache2apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
… waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
If everything went fine you should see the above warning. You can ignore it, unless you want to configure the ServerName for your server. But this is out of scope, so do a search on Google, or consult an Apache expert.
So, if everything went fine, now we should be able to connect to our server through SSL.
You can use firefox or curl, as before, but this time the URL will be https://localhost
$ curl -k https://localhost
<html><body><h1>It works!</h1></body></html>
the -k option is to ignore certification validation. Also firefox will complain that our certificate is invalid, but you can add it to exceptions and it will nomore bug you with those messages.
If everything went fine, now we should have Apache2, HTTP and HTTPs ready.
4. Configuring Subversion with Apache (and SSL)
First of all, we need to install the Subversion modules for Apache2.
$ sudo apt-get install libapache2-svn
They will be enabled by default. So you don’t need to run a2enmod.
We only need to configure a repository. Let’ say our project is called ‘myproject’.
First of all, let’s decide where our svn repositories will be created. I like /var/local/svn :
$ sudo mkdir /var/local/svn/
Then let’s create the repository using following procedure:
$ sudo mkdir /var/local/svn/myproject
$ sudo chown www-data:www-data /var/local/svn/myproject
$ sudo -u www-data svnadmin create /var/local/svn/myproject
Above commands will ensure that the user www-data (which is the apache user) can fully access the repository for reading and updating it.
We need to configure the repository in Apache. Edit /etc/apache2/mods-available/dav_svn.conf using:
$ sudo gedit /etc/apache2/mods-available/dav_svn.conf
And add a section like the following one:
<Location /svn/myproject>
DAV svn
SVNPath /var/local/svn/myproject
AuthType Basic
AuthName “My Project Subversion Repository”
AuthUserFile /etc/subversion/myproject.passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
In the above file we indicated that, at the location svn our repository should respond. And for updating the repository we want a valid user. As per above configuration anonymous consultation is allowed; but you can disable it commenting with a leading ‘#’ the lines <LimitExcept … and </LimitExcept> or just removing them as in following example:
<Location /svn/myproject>
DAV svn
SVNPath /var/local/svn/myproject
AuthType Basic
AuthName “My Project Subversion Repository”
AuthUserFile /etc/subversion/myproject.passwd
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
</Location>
The above configuration indicates to Apache that even for consulting the repository we want a valid user.
But valid users need a password, and in fact we indicated a password file for our repository called /etc/subversion/myproject.passwd. So let’s create a password file with a couple of users:
$ sudo htpasswd -c /etc/subversion/myproject.passwd luigi
$ sudo htpasswd /etc/subversion/myproject.passwd mario
The -c option indicates that the password file should be created as new; and it is only necessary for the first user. Be aware of the fact that -c overwrites the existing password file without asking anything. Personally I think this is a quite stupid behavior, but that’s the way it is.
Now we should be ready.
Let’s reload apache configuration to make the changes effective:
$ sudo /etc/init.d/apache2 reload
and let’s test with the browser that our svn repository is now accessible through HTTP and HTTPs at following urls:
http://localhost/svn/myproject/
https://localhost/svn/myproject/
We can also use curl to verify it is working:
$ curl http://username:password@localhost/svn/myproject/
<html><head><title>myproject – Revision 0: /</title></head>
<body>
<h2>myproject – Revision 0: /</h2>
<ul>
</ul>
<hr noshade><em>Powered by <a href=”http://subversion.tigris.org/”>Subversion</a> version 1.5.4 (r33841).</em>
</body></html>
$ curl -k https://username:password@localhost/svn/myproject/
<html><head><title>myproject – Revision 0: /</title></head>
<body>
<h2>myproject – Revision 0: /</h2>
<ul>
</ul>
<hr noshade><em>Powered by <a href=”http://subversion.tigris.org/”>Subversion</a> version 1.5.4 (r33841).</em>
</body></html>
Now we can also download our project using svn
$ svn co https://localhost/svn/myproject myproject –username luigi
“luigi” is obviously my username, substitute it with yours.
The first time it will prompt for accepting the SSL certificate, answer to accept it permanently (p). Then it will optionally ask you for the password, type it.
We can also test that modifying the remote repository is working with:
$ svn mkdir -m “created the trunk for the project” https://localhost/svn/myproject/trunk –username luigi
It will answer: Committed revision 1. If so, we’ve done.
5. Installing Trac
To install trac files and required dependencies, type the following command:
$ sudo apt-get install trac
$ sudo apt-get install libapache2-mod-pythonLet’s create the directories for trac web folder:
$ sudo mkdir /var/local/trac
$ sudo chown www-data:www-data /var/local/trac
edit Apache configuration file for one of your enabled sites (in this example I modify the default http one, but you can choose to put trac on HTTPS modifying default-ssl)
$ sudo gedit /etc/apache2/sites-enabled/000-default
and add the following lines at the end of the file, before the </VirtualHost> tag:
<Location /projects>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/local/trac
PythonOption TracUriRoot /projects
PythonOption PYTHON_EGG_CACHE /tmp
</Location># use the following for one authorization for all projects
# (names containing “-” are not detected):
<LocationMatch “/projects/[[:alnum:]]+/login”>
AuthType Basic
AuthName “trac”
AuthUserFile /etc/trac/trac.passwd
Require valid-user
</LocationMatch>
Create a password file for trac users (if you want you can reuse or link the passwd file used for subversion repositories)
$ sudo htpasswd -c /etc/trac/trac.passwd luigi
$ sudo htpasswd /etc/trac/trac.passwd mario
… continue this way for all your users.
Create the trac environment for your project:
$ sudo -u www-data trac-admin /var/local/trac/myproject initenv
It will ask you some questions related to your project. Here’s my answers in blue
Project Name [My Project]> My Project
Database connection string [sqlite:db/trac.db]> [Just press Enter to accept the default]
Repository type [svn]> [Just press Enter to accept the default]
Path to repository [/path/to/repos]> /var/local/svn/myproject
Now let’s restart apache:
$ sudo /etc/init.d/apache2 restart
Check that trac works properly connecting the browser to http://localhost/projects or use curl to verify that the url is responding properly as we did before. This url should display a link to “My Project”, click on it and you should see the project home page. Clicking on login the browser should ask you to provide username and password as recently defined with htpasswd command.
Last thing to do: add yourself as administrator for Trac. This will enable the Admin menu and allow to do much of the administration operations from the web, that you could also do at the command line with trac-admin tool.
Execute the following command:
$ sudo -u www-data trac-admin /var/local/trac/myproject permission add luigi TRAC_ADMIN
This will make the username ‘luigi’ administrator for the project.
You can tune additional configuration settings in Trac to enable email notification, change the project logo, etc. Everything you need to know is on Trac website. For the configuration check here: http://trac.edgewall.org/wiki/TracIni
