在Ubuntu Linux上架设Web服务器详解

Apache 是一种功能强大的Web服务器。如今,Internet上无数运行在Linux上的Apache服务器正为Web世界的日益繁荣提供着有力的支撑。本文将向读者介绍如何在Ubuntu Linux系统迅速搭建Apache Web服务器。

尽管Ubuntu 是一种新兴的Linux分支,但Ubuntu 组织却为Apache提供了丰富的支持软件,这些软件都可以从发行版的光盘获取,也可以从官方站点轻松下载。所以,Ubuntu非常适合作为Web服务器的平台。

一、 安装Apache

下面,我们首先介绍如何安装Apache。具体安装命令如下所示:

$ sudo apt-get install apache2

然后运行Apache,命令如下所示:

$ sudo /etc/init.d/apache2 restart

Apache在安装期间将会新建一个目录:/var/www,该目录是该服务器中存放文档的根目录。只要在浏览器的地址栏输入localhost/或机器的IP地址就能访问放置在此目录中的所有文档。

二、 安装PHP

PHP是一种流行的服务器端脚本语言,一般与MySQL或 Postgres结合起来用于管理Web内容、blog和论坛。下面介绍其安装方法,其实它的安装也很简单,命令如下所示:

$ sudo apt-get install libapache2-mod-php5

重新启动 Apache 以加载上面安装的模块:

$ sudo /etc/init.d/apache2 restart

为了验证PHP模块是否正确加载,我们可以建立一个PHP文件,然后尝试通过Web服务器访问该文件。此外,我们知道PHP内建了一个phpinfo函数,该函数能够给出它的环境的详细信息。所以我们还可以利用下面的命令来检查PHP的工作情况:

sudo sh -c "echo '' > /var/www/info.php"

之后,在浏览器地址栏键入http://localhost/info.php,然后回车,这时应该能看到一个颜面,给出刚才安装的PHP的详细信息。需要注意的是,如果在此过程中浏览器不显示页面,而是提示你下载文件,这就说明Apache没有正确加载PHP模块。解决问题的办法是,在 /etc/apache2/apache2.conf 或 /etc/apache2/mods-enabled/php5.conf文件中加入下面一行命令:

AddType application/x-httpd-php .php .phtml .php3

加入上面的命令行后,为了保证Apache重新读取配置文件关闭,我们可以通过下面的命令将其关闭,然后再加以启动:

$ sudo /etc/init.d/apache2 stop

$ sudo /etc/init.d/apache2 start

三、配置动态虚拟主机

一般情况下,我们会在Web服务器上寄放多个Web站点,并且每个站点都有它自己的虚拟服务器。对于Apache来说,它同时支持基于名称的虚拟服务器和基于IP的服务器。

对于基于IP的虚拟服务器,每个站点都具有一个单独的IP地址,这样的缺点是使用太多的IP地址,但如今IPv4的地址已有枯竭的迹象,所以不提倡使用,通常在要求使用SSL 时才使用。

对于基于名称的虚拟服务器,多个Web站点共享一个IP地址。在这种情况下,通常根据HTTP请求头部来决定将其发给哪一个站点。为此,我们需要为每个虚拟服务器分别建立一个配置,给作为Web站点的根的目录以及主机命名。但是,如果这样的话我们每当添加一个新的虚拟服务器时,就要修改Apache的配置并重新启动,这的确很烦人呢!

值得高兴的是,如果使用动态虚拟主机技术的话,可以随时加入虚拟主机时而不必重新配置或启动Apache。该技术要用到一个模块,称为vhost_alias。我们可以通过在Apache2已启用的模块目录中建立一个符号链接来启用该模块,命令如下所示:

$ sudo ln -s /etc/apache2/mods-available/vhost_alias.load \

/etc/apache2/mods-enabled/vhost_alias.load

要想使vhost_alias正常工作,我们还需要修改/etc/apache2/apache2.conf 来关闭常规名称(canonical names),修改日志文件的配置,并为我们的虚拟主机规定存放位置。下面是一个实例:

#从"Host:"头中取得主机名

UseCanonicalName Off

# 这种日志格式可以从第一个字段中提取出主机名

LogFormat "%V %h %l %u %t "%r" %s %b" vcommon

CustomLog /var/log/apache2/access_log vcommon

# 在返回请求的文件名路径中包含主机名

VirtualDocumentRoot /var/www/vhosts/%0/web

VirtualScriptAlias /var/www/vhosts/%0/cgi-bin

接下来,创建存放虚拟主机的目录,命令如下:

$ sudo mkdir /var/www/vhosts

新建一个基干虚拟服务器,命令如下所示:

$ sudo mkdir -p /var/www/vhosts/skeleton/cgi-bin

$ sudo cp -a /var/www/apache2-default /var/www/vhosts/skeleton/web

重新启动apache2,使得上面的配置生效,方法如下所示:

$ sudo /etc/init.d/apache2 restart

时间: 2024-08-17 16:38:40

在Ubuntu Linux上架设Web服务器详解的相关文章

Sendmail在Linux下架设Mail服务器详解

sendmail是最重要的邮件传输代理程序.理解电子邮件的工作模式是非常重要的.一般情况下,我们把电子邮件程序分解成用户代理,传输代理和投递代理. 用户代理用来接受用户的指令,将用户的信件传送至信件传输代理,如:outlook express.foxmail等.而投递代理则从信件传输代理取得信件传送至最终用户的邮箱,如:procmail. 当用户试图发送一封电子邮件的时候,他并不能直接将信件发送到对方的机器上,用户代理必须试图去寻找一个信件传输代理,把邮件提交给它.信件传输代理得到了邮件后,首先

Linux 上的基础网络设备详解

Linux 抽象网络设备简介 和磁盘设备类似,Linux 用户想要使用网络功能,不能通过直接操作硬件完成,而需要直接或间接的操作一个 Linux 为我们抽象出来的设备,既通用的 Linux    网络设备来完成.一个常见的情况是,系统里装有一个硬件网卡,Linux 会在系统里为其生成一个网络设备实例,如 eth0,用户需要对 eth0    发出命令以配置或使用它了.更多的硬件会带来更多的设备实例,虚拟的硬件也会带来更多的设备实例.随着网络技术,虚拟化技术的发展,更多的高级网络设备被加入了到了

Linux上的free命令详解

解释一下Linux上free命令的输出. 下面是free的运行结果,一共有4行.为了方便说明,我加上了列号.这样可以把free的输出看成一个二维数组FO(Free Output).例如: FO[2][1] = 24677460 FO[3][2] = 10321516                      1          2          3          4          5          61              total       used       f

Ubuntu下彻底卸载mysql服务器详解

卸载Ubuntu自带mysql服务器  代码如下 复制代码 sudo apt-get autoremove mysql-server sudo apt-get autoremove mysql-client 很简单的 彻底卸载mysql具体方法 1.删除 mysql  代码如下 复制代码 1 sudo apt-get autoremove --purge mysql-server-5.0 2 sudo apt-get remove mysql-server 3 sudo apt-get auto

nginx中configure脚本支持的常用选项,拍摄自《Nginx高性能Web服务器详解》

移动设备能不能架设WEB服务器?

问题描述 对移动设备开发不了解,有以下问题:1.移动设备(比如智能手机)连接到Internet后,随着在网络上的移动,它的IP地址会不会改变?上面问题确定后,我接着提下面的问题.谢谢! 问题补充:谢谢jinnianshilongnian这么快给出答复.可是我的疑问是:2.如果IP地址会发生变化,那么如果我在旅行过程中下载一个比较大的文件,总是会中断下载的吗? 解决方案 3.那么就是说在移动设备上是无法架设WEB服务器的了? 是这样的吗?前提是IP不变(当然也可以采用动态域名(如花生壳) 但移动设

在Linux上架设支持JSP+PHP的Web服务器

js|web|web服务|web服务器 近年来Linux在服务器市场占有比例日渐攀升,除了缘于Linux的免费和安全性之外,还因为Linux上的应用服务日益丰富.大部分常见的服务都在Linux上有了较好的解决方案.而对于Intenet上应用最广泛的Web服务来说,Linux的表现就更为出色.谁也无法说 清Internet上究竟有多少个网站,但在众多网站中,采用PHP和JSP开发的网站无疑占居了极大的市场份额.下面就介绍一下如何在Linux上架设支持JSP+PHP+MySQL的Web服务器. 对于

域名解析方法及在Linux系统上架设DNS服务器

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;  DNS是域名系统Domain Name System的缩写,是一种组织域层次结构的计算机和网络服务命名系统,当用户在应用程序中输入DNS名称时,DNS服务可以将此名称解析为与此名称相关的IP地址信息.今天,我就给大家介绍一下目前常见的域名解析方法以及如何在Linux系统上架设DNS服务器,希望能够给各位朋友的DNS学习带来一些帮助. 一.域名解析的方法 1.最早的

嵌入式Linux上通过boa服务器实现cgi/html的web上网【转】

转自:http://blog.csdn.net/tianmohust/article/details/6595996 版权声明:本文为博主原创文章,未经博主允许不得转载.   嵌入式Linux上通过boa服务器实现cgi/html的web上网简介: 第一步 Boa程序的移植 1.下载Boa源码 2.生成Makefile文件 3.修改Makefile文件 4.编译 第二步 Boa的配置 第三步boa的执行 1.将根文系统ramdisk在电脑主机上mount &nda  嵌入式linux上通过boa