Step
1: PostgreSQL (8.4)
Installing postgresql (8.4)sudo apt-get install postgresql-8.4Setting up the password for postgres’
postgres
usersudo -u postgres psql template1 ALTER USER postgres WITH PASSWORD 'your-password'; \qConfigure postgres’ authentication method :
sudo cp /etc/postgresql/8.4/main/pg_hba.conf /etc/postgresql/8.4/main/pg_hba.conf_bak sudo nano /etc/postgresql/8.4/main/pg_hba.confAdd the following at the bottom of the file
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD host all all 127.0.0.1 255.255.255.0 passwordRestart postgres:
sudo /etc/init.d/postgresql-8.4 restart
Following
up from my old guide to installing PostgreSQL (for Ubuntu 7.10), I
thought i’d better do an update for the latest releases… :)
This
quick walk-through are my notes for installing the PostgreSQL
database server and the PgAdmin administration application on Ubuntu
Linux, and also set up the server so it allows access to other PC’s
on your network.
Before
we move on, this guide was tested on the current release of Ubuntu
Linux, (8.04 - Hardy Heron) and PostgreSQL 8.3, but it should also be
applicable to older versions (of Ubuntu and PostgreSQL) and other
Debian based distros.Right for the basic installation, at the command-line, enter the following commands (or search for the listed packages in synaptic if you prefer that way of working):
sudo apt-get install postgresql postgresql-client postgresql-contrib
sudo apt-get install pgadmin3
This
installs the database server/client, some extra utility scripts and
the pgAdmin GUI application for working with the database.
Now
we need to reset the password for the ‘postgres’ admin account
for the server, so we can use this for all of the system
administration tasks. Type the following at the command-line
(substitute in the password you want to use for your administrator
account):sudo su postgres -c psql template1
template1=# ALTER USER postgres WITH PASSWORD 'password';
template1=# \q
That
alters the password for within the database, now we need to do the
same for the unix user ‘postgres’:
sudo passwd -d postgres
sudo su postgres -c passwd
Now
enter the same password that you used previously.
Then,
from here on in we can use both pgAdmin and command-line access (as
the postgres user) to run the database server. But before you jump
into pgAdmin we should set-up the PostgreSQL admin pack that enables
better logging and monitoring within pgAdmin. Run the following at
the command-line:sudo su postgres -c psql < /usr/share/postgresql/8.3/contrib/adminpack.sql
Finally,
we need to open up the server so that we can access and use it
remotely - unless you only want to access the database on the local
machine. To do this, first, we need to edit the postgresql.conf file:
sudo gedit /etc/postgresql/8.3/main/postgresql.conf
Now,
to edit a couple of lines in the ‘Connections and Authentication’
section…
Change
the line:#listen_addresses = 'localhost'
to
listen_addresses = '*'
and
also change the line:
#password_encryption = on
to
password_encryption = on
Then
save the file and close gedit.
Now
for the final step, we must define who can access the server. This is
all done using the pg_hba.conf file. (The following advice can also
be given to you - plus you don’t even need to figure out IP
addresses and subnet masks - from the latest versions of pgAdmin
(1.6.x). But it doesn’t hurt to know how things work).sudo gedit /etc/postgresql/8.3/main/pg_hba.conf
Comment
out, or delete the current contents of the file, then add this text
to the bottom of the file:
# DO NOT DISABLE!
# If you change this first entry you will need to make sure that the
# database
# super user can access the database using some other method.
# Noninteractive
# access to all databases is required during automatic maintenance
# (autovacuum, daily cronjob, replication, and similar tasks).
#
# Database administrative login by UNIX sockets
local all postgres ident sameuser
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all md5
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
# Connections for all PCs on the subnet
#
# TYPE DATABASE USER IP-ADDRESS IP-MASK METHOD
host all all [ip address] [subnet mask] md5
and
in the last line, add in your subnet mask (i.e. 255.255.255.0) and
the IP address of the machine that you would like to access your
server (i.e. 138.250.192.115). However, if you would like to enable
access to a range of IP addresses, just substitute the last number
for a zero and all machines within that range will be allowed access
(i.e. 138.250.192.0 would allow all machines with an IP address
138.250.192.x to use the database server).
That’s
it, now all you have to do is restart the server:sudo /etc/init.d/postgresql-8.3 restart
And
all should be working.
Ubuntu
– Enable mod_rewrite in Apache server
July 6, 2008 ― mahmud ahsan
At first I should define, what is mod_rewrite?
mod_rewrite is a part of Apache server that can rewrite requested urls on the fly.
To enable mod_rewrite in Ubuntu, you just need to write this command in terminal
sudo
a2enmod rewriteAfter enabling mod_rewrite you can write .htaccess file for your web application.
So what is .htaccess?
.htaccess file provides a way to make configuration changes on a per directory basis. It is a file contains configuration directives is placed in a particular document directory and the directives apply to that directory and all subdirectories thereof.
Some example:
Nice looking URLs (no querying) with pagination:
Suppose your url is: domain.com/article.php?name=title&page=5You want to change: domain.com/articles/title/5/
Then write in .htaccess file:
RewriteRule ^articles/(A-Za-z0-9-]+)/([0-9]+)/?$ article.php?name=$1&page=$2 [L]
The rule is defined in regular expression. Here [L] means Last Rule. It’s called RewriteRule Flags.
Another example:
Suppose your site has permanently moved to a new domain.
RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
RewriteRule ^(.*)$ http://www.domain2.com/$1 [R=301, L]
Here [NC] means case insensitive and its called RewriteCond Flags. [R=301] means moved permanently. Its called redirection header code.
Comments