显示标签为“server”的博文。显示所有博文
显示标签为“server”的博文。显示所有博文

在Debian上安装Oracle Database XE

OracleXE 简介

甲骨文2005年宣布向中国市场推出的可免费下载的Oracle Database 10g Express Edition (Oracle Database XE) ,供专业人员在学习及应用开发的起步阶段使用。Oracle Database XE建立在Oracle数据库10g第二版的代码库之上,与Oracle数据库产品系列完全兼容。Oracle Database XE可用于32位Linux和Windows操作系统,在功能上,Oracle Database XE版相当于Oracle Standard Edition One。但由于是免费版本,在硬件上受到了一定的限制,如:

  • 至多使用1个CPU或1个双核CPU的处理能力;
  • 最多可使用1GB内存;
  • 每个服务器只限于一个CPU;
  • 最多存储4GB的用户数据。

安装Oracle XE

测试环境建立于Debian系统上,系统具备4Gb的磁盘空间用于建立数据库,500M以上的空间用于安装数据库。要数据库真正运行起来,那么你最好为你的系统配置1Gb的内存。下一步,我们将配置Debian的sources.list,加入oracle安装包的站点:

root@debian ~# echo "deb http://oss.oracle.com/debian/ unstable main non-free" >> /etc/apt/sources.list
root@debian ~# apt-get update

安装oracle database XE只需要简单的安装两个包即可,安装过程如下:

root@debian ~# apt-get install oracle-xe-client
root@debian ~# apt-get install oracle-xe

完成后,安装过程就完成了。安装过程会更新一些核心的配置参数,可以通过查看/etc/sysctl.conf来查看这些变化,如果你不想重启系统就启动oracle数据库,那么需要先应用这些配置。下面我们直接应用Oracle database XE的默认配置,如用户账号:

root@debian ~# sh /etc/init.d/oracle-sh configure

Oracle Database XE启动后,将打开服务端口1521,可以通过命令lsof来查看(lsof -n -i TCP:1521),默认安装的情况下,我们还可以通过Web管理接口在本机进行数据库管理(http://127.0.0.1:8080/apex)。我们可以通过 /etc/default/oracle-xe 文件来查看和更新当前 oracle 数据库的配置。

Oracle database XE的运行除了要求有一定数量的物理内存外,对交换空间也有一定的要求。Oracle Database 10g Express Edition 要求系统有1006MB的交换空间。如果不希望重启系统,你可以通过创建一个文件交换来达到这一要求:

root@debian ~# dd if=/dev/zero of=/MY_SWP_FILE bs=1M count=1000
root@debian ~# mkswp /MY_SWP_FILE
root@debian ~# swapon /MY_SWP_FILE

要启用或禁止Oracle database XE在开机时自动启动,可以通过 update-rc.d 工具来完成,或者修改文件/etc/default/oracle-xe文件,将其中 ORACLE_DBENABLED=true改为ORACLE_DBENABLED=false

对于如何使用Oracle database XE不是本文所涉及的内容,就不多讲了。

一台Debian配置上配置多个Web服务

有许多虚拟服务器的提供商可以在一台主机上为多个用户提供Web服务,并且每个Web服务器可以通过不同的域名来访问。在Debian上,我们可以轻松的通过apache2来实现类似的功能。除了进行一些简单的配置外,我们所需要的软件包都使用Debian提供的安装包而不必从源代码来安装。

有许多种不同的方法可以将Apache配置这样的功能,这里介绍一种通过 NameVirtualHost 来进行配置的方法,这种方法的好处是你不需要在主机上绑定多个不同的IP地址,只需要将不同的域名都指向Web服务器的IP地址即可。

例如在一台主机IP地址为 222.222.222.222的Web服务器上,希望配置 www.rediceli.com,mail.rediceli.com,services.rediceli.com,只需要在DNS服务器(或DNS提供商的服务器)上将这些域名都指向222.222.222.222即可。当然,还可以是另一些完全不同的域名,如 www.example.com。

因为我们要在一台机器上提供多个Web服务器,为了不至于引起不必要的混乱,最好将每个服务器的Web根目录,CGI目录和日志目录等完全分开。可以直接在Debian提供的Web目录下构造这些目录,也可以在一个完全不同的目录里构造,如/opt/www目录。例如,可以类似如下的目录结构:

root@debain ~# mkdir /opt/www

root@debain ~# mkdir /opt/www/www.rediceli.com
root@debain ~# mkdir /opt/www/www.rediceli.com/html
root@debain ~# mkdir /opt/www/www.rediceli.com/cgi-bin
root@debain ~# mkdir /opt/www/www.rediceli.com/logs

root@debain ~# mkdir /opt/www/mail.rediceli.com
root@debain ~# mkdir /opt/www/mail.rediceli.com/html
root@debain ~# mkdir /opt/www/mail.rediceli.com/cgi-bin
root@debain ~# mkdir /opt/www/mail.rediceli.com/logs

root@debain ~# mkdir /opt/www/service.rediceli.com
root@debain ~# mkdir /opt/www/service.rediceli.com/html
root@debain ~# mkdir /opt/www/service.rediceli.com/cgi-bin
root@debain ~# mkdir /opt/www/service.rediceli.com/logs

上面的过程,我们分别为三个域名创建了Web服务器所需的目录。下一步,我们应该在apache的配置中开启虚拟主机(Virtual hosts)的功能。简单的方法是创建一个配置文件 /etc/apache2/conf.d/virtual.conf,文件的内容如下:

#
# We're running multiple virtual hosts.
#
NameVirtualHost *

完成上面的工作后,我们可以开始为每个域名建立一个独立的配置文件。Apache2的站点配置包括两个目录:

  • /etc/apache2/sites-available 这个目录包含一些可用的站点配置文件,但这些并不一定生效。
  • /etc/apache2/sites-enabled 这个目录内的配置为已经生效的站点的配置。

apache2启动时,sites-enabled目录的内容将被读取并生效,而sites-available目录的内容则不会理会。通常Debian的作法是,将所有的站点配置文件都放在sites-available中,而将需要生效的配置通过软链放置到sites-enabled中。我们配置时也会将所有的配置都放置到sites-available目录中,然后在sites-enabled中创建指向相应配置的链接。Debian有一些工具a2ensite和a2dissite来辅助我们完成允许和禁用站点的功能,这样,我们只需要在sites-available目录中创建相应的配置,再执行相应的命令,即可使这些配置生效或禁用。

下面我们开始为 www.rediceli.com 创建配置文件,创建文件 /etc/apache2/sites-available/www.rediceli.com,包含下面的内容:

#
# www.rediceli.com (/etc/apache2/sites-available/www.rediceli.com)
#
<VirtualHost *>
ServerAdmin webmaster@rediceli.com
ServerName www.rediceli.com
ServerAlias rediceli.com

# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /opt/www/www.rediceli.com/html/

# CGI Directory
ScriptAlias /cgi-bin/ /opt/www/www.rediceli.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>

# Logfiles
ErrorLog /opt/www/www.rediceli.com/logs/error.log
CustomLog /opt/www/www.rediceli.com/logs/access.log combined
</VirtualHost>

下面创建 mail.rediceli.com的配置文件,创建文件/etc/apache2/sites-available/mail.rediceli.com,包含下面的内容:

#
# mail.rediceli.com (/etc/apache2/sites-available/mail.rediceli.com)
#
<VirtualHost *>
ServerAdmin webmaster@rediceli.com
ServerName mail.rediceli.com

# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /opt/www/mail.rediceli.com/html/

# CGI Directory
ScriptAlias /cgi-bin/ /opt/www/mail.rediceli.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>

# Logfiles
ErrorLog /opt/www/mail.rediceli.com/logs/error.log
CustomLog /opt/www/mail.rediceli.com/logs/access.log combined
</VirtualHost>

最后在文件/etc/apache2/sites-available/service.rediceli.com中创建 service.rediceli.com的配置:

#
# service.rediceli.com (/etc/apache2/sites-available/service.rediceli.com)
#
<VirtualHost *>
ServerAdmin webmaster@rediceli.com
ServerName service.rediceli.com

# Indexes + Directory Root.
DirectoryIndex index.html
DocumentRoot /opt/www/service.rediceli.com/html/

# CGI Directory
ScriptAlias /cgi-bin/ /opt/www/service.rediceli.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>

# Logfiles
ErrorLog /opt/www/service.rediceli.com/logs/error.log
CustomLog /opt/www/service.rediceli.com/logs/access.log combined
</VirtualHost>

现在,我们已经为三个域名分别创建了配置文件,并建立了不同的目录来存放web页面,CGI程序和日志文件。要允许这些配置,可以通过下面的命令来完成:

root@debain ~# a2ensite www.rediceli.com
Site www.rediceli.com installed; run /etc/init.d/apache2 reload to enable.

root@debain ~# a2ensite mail.rediceli.com
Site mail.rediceli.com installed; run /etc/init.d/apache2 reload to enable.

root@debain ~# a2ensite service.rediceli.com
Site service.rediceli.com installed; run /etc/init.d/apache2 reload to enable.

注意:a2ensite并不会立即在当前运行的apache服务器里生效,必需通过重新启动apache来生效这些配置,这在前面解释a2ensite时已经解释过了,它的功能主要用于建立一个sites-enabled目录中的链接。

现在,你可以分别在每个站点的主目录里放置一个不同的主页文件(index.html),然后重启apache服务器,看一下是否可以通过三个不同的域名来访问不同的服务页面。重启apache服务器通过下面的命令来完成:

root@debain ~# /etc/init.d/apache2 reload
Reloading web server config...done.
root@debain ~#

好了,一个拥有三个虚拟Web服务器的Debian服务器配置完成了。如果你的服务器够强大,还可以类似的配置更多的站点。