yunvn 发表于 2016-11-20 08:05:05

Nginx, PostgreSQL And Trac : 准备工作

  本文所涉及的操作系统为Linux

uname -a
Linux localhost 2.6.18-164.11.1.el5 #1 SMP Mon Mar 8 20:38:10 CST 2010 x86_64 x86_64 x86_64 GNU/Linux

  

需要安装的软件包括Nginx,PostgreSQL,Python,Trac

其实这些软件的安装(编译,安装)都应该问题不大,有些机器Python可能一开始就已经安装了,但是对这些软件毫无接触过的同学来说,如何来合理正确的使用这些软件是主要的问题.

1.Nginx
  如果你以前使用过Apache,那么使用Nginx也应该问题不大,你可以通过nginx -h 来查看nginx支持那些参数.

当然我们使用nginx不倾向于使用nginx的安装的原始目录作为工作目录,所以在相应的用户的home目录中建立一个nginx的目录,目录下建一个conf的子目录

$ ls
mime.typesnginx.conf
$ pwd
/home/admin/nginx/conf
$
  
nginx.conf 文件 你可以从安装目录中的conf目录中拷贝来

我的本地安装在
  /usr/local/nginx

拷贝过来之后,我们可以先测试一下,
  回到admin的home目录,执行 nginx -p nginx

也就是将/home/admin/nginx作为nginx的工作目录来运行,
  nginx会自动去找这个目录下的conf目录下的配置文件进行加载运行的.

运行起来后,会在工作目录下的logs目录下生成pid文件

如果你要重新加载配置文件可以运行 kill -HUP xxx.pid便可以了


启动好了,在浏览器里,输入服务器地址,测试一下,看是否运行正常,如果没有运行起来,可以查看 nginx工作目录下的logs中的error.log 查出原因,并将问题解决掉.

到这里我们Nginx的问题基本解决.

2.PostgreSQL
  
下面我们来搞PostgreSQL

PostgreSQL做为一个数据库软件其功能比Mysql强大,著名的Greenplum便是基于PostgreSQL进行开发的.

Postgresql编译安装好了之后,会自动为你建立一个postgres的用户,也就是postgresql运行的时候最好以此用户进行运行,但是此用户的home目录默认是在/var/lib/pgsql(各自环境可能不一样),这个我们可以通过 /etc/passwd文件中进行查看

考虑到硬盘挂载的时候,home目录是进行单独挂载的,空间比较大,所以考虑将其home目录移到/home下,这时候需要做的就是在/home目录下建一个postgres的目录,并将 /var/lib/pgsql中所有的东西移到这个目录下,记得使用root执行下chown -R postgres.postgres /home/postgres将这个目录的所有者和用户组设置为 postgres


我们继续修改vi /etc/init.d/postgresql  将其中 /var/lib/pgsql修改为新的目录/home/postgres

接下来便是初始化数据库,进到/home/postgres/data目录下(这个目录是存放数据库文件的地方)

service postgresql initdb

service postgresql start

这样便启动好了

你可以查看到所有的postgresql的进程都是运行在postgres用户下的

然后我们可以通过psql来测试数据库是否真的成功运行了,如果在这些过程中出现了问题,我们可以查看log  /home/postgres/pgstartup.log


这个时候,我开始动手用本机上的pgAdminIII 来远程连这个数据库拉,唉,确实是连不上,

只能去google,找到了关键的一个文件/home/postgres/data/pg_hba.conf

这里有允许远程连接的设置

在里面加上

host    all         all         0.0.0.0/0               md5
  然后还得修改启动脚本,启动的时候需要加一个参数,修改后如下

$SU -l postgres -c "$PGENGINE/postmaster-p '$PGPORT' -D '$PGDATA' ${PGOPTS} -i &"
  然后进行数据库重启.
  这样便允许所有的机器通过用户名和密码进行远程连接了.

配置改好了重启好了之后,进行远程连接,果不其然,连上了,但是碰到一个提醒,大意就是数据库缺少一些函数功能,使得paAdminIII实现一些功能,我是一个追求完美的人,心想着这个问题一定要解决,然后搜索,网上有说需要装一个postgresql的一个postgresql-contrib

包,导入一个sql文件便可.

我通过yum的postgresql的源安装了这个包,然后运行下面的命令便可以了,

# su postgres
bash-3.2$ psql< /usr/share/pgsql/contrib/adminpack.sql -W
Password:
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
CREATE FUNCTION
  
 


重新使用pgAdminIII连了下,好了,欣喜.

  


3.Trac
  
好了接下来介绍Trac的安装了,我这里使用的是easy_install工具进行安装的,这个相当于ruby的gem,是一个package管理工具,通过它来安装python的package会自动帮你处理好依赖,非常方便.

安装的过程你可以参考官方的文档http://trac.edgewall.org/wiki/0.11/TracInstall


但是在安装psycopg2这个python的postgresql的驱动的时候遇到了一些问题,通过easy_install无法正确安装,于是只能自己编译安装

# wget http://initd.org/pub/software/psycopg/psycopg2-2.0.14.tar.gz
--2010-04-13 01:50:00--http://initd.org/pub/software/psycopg/psycopg2-2.0.14.tar.gz
Resolving initd.org... 213.215.170.198
Connecting to initd.org|213.215.170.198|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 491362 (480K)
Saving to: `psycopg2-2.0.14.tar.gz'
100%[==================================================================================================================>] 491,362      163K/s   in 2.9s   
2010-04-13 01:50:04 (163 KB/s) - `psycopg2-2.0.14.tar.gz' saved
# tar xvf psycopg2-2.0.14.tar.gz
  


进去解压后的目录中python setup.py install进行安装

然后进行测试

root@localhost psycopg2-2.0.14]# python
Python 2.5.4 (r254:67916, Mar8 2010, 19:24:21)
on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import psycopg2
  OK 搞定,一切就绪.
页: [1]
查看完整版本: Nginx, PostgreSQL And Trac : 准备工作