Ubuntu/Web Servers/HTTPD - Apache2 Web Server

来自Ubuntu中文
Jinzd留言 | 贡献2016年6月7日 (二) 13:21的版本 →‎Configuration
跳到导航跳到搜索

Quote from https://help.ubuntu.com/12.04/serverguide/httpd.html

Apache是Linux系统中最广泛使用的Web Server。众多的Web Server被客户端计算机使用以提供相关的Web页面请求服务。客户端通常使用Web Browser发出请求并浏览Web页面,诸如FirefoxOperaChromium或者Mozilla

用户输入的统一资源定位符(URL)指向一个Web server,并依赖其其全称域名(FQDN)及路径指向需要的资源。例如,用户可以输入下面的FQDN以浏览Ubuntu Web site的主页:

www.ubuntu.com

要浏览community子页面则可以输入下面的FQDN:

www.ubuntu.com/community

最常见的用于传输Web Page的协议是超文本传输协议(HTTP)。其他协议还包括超文本传输协议加安全套接字层的(HTTPS),以及文件传输协议(FTP)用于上传和下载文件,它们均是被支持的协议。

Apache Web Server常常与MySQL数据库引擎组合使用,超文本预处理器的脚步语言(PHP),以及其他流行的脚本语言如Python和Perl。这个配置被术语化为LAMP(Linux, Apache, MySQL and Perl/Python/PHP)它们针对开发和部署基于Web的应用形成了一个强大健壮的平台。

安装

配置

HTTPS 配置

共享写权限

引用

Installation

Apache2 web server在Ubuntu Linux中是可用的。在terminal提示符下输入下面指令以安装Apache2:

sudo apt-get install apache2

Configuration

Apache2的配置指令存放于多个纯文本的配置文件中。这些配置指令被分割为多个文件并放置于多个目录中:

  1. apache2.conf: Apache2的主配置文件。它包含Apache2的一些全局设置。
  2. conf.d: 目录,包含一些Apache2的全局配置文件。Apache2的其他内容服务包可以添加文件,符号链接到这个目录。
  3. envvars: 用于设置Apache2环境变量的文件。
  4. httpd.conf: 历史上是Apache2的主配置文件,命名的httpd守护进程。现在,这个文件通常是空的,大多配置选项被移动到下面的引用目录。这个文件可用于用户指定特定的配置选项并作用于全局Apache2。
  5. mods-available: 这个目录包含多个配置文件以装载和配置他们。当然不是所有模块都将拥有特定的配置文件。
  6. mods-enabled: 持有符号链接的文件存放于/etc/apache2/mods-available。当一个模块配置文件持有符号链接时,它们将在apache2下次启动后生效。
  7. ports.conf: 放置的指令用于描述Apache2正在监听的TCP端口。
  8. sites-available: 该目录用于存放Apache2虚拟主机的配置文件。虚拟主机允许Apache2使用分开的配置去配置多个站点。
  9. sites-enabled: 如同mods-enabled、sites-enabled包含符号链接并存放于/etc/apache2/sites-available目录。同样地,当在sites-available中的一个配置文件是符号链接时,在Apache2重新启动时该配置站点将被激活一次。

此外,其他的配置文件可以通过Include指令添加,并且通配符可以被使用以包含多个配置文件。任何指令都可以被放置在这些配置文件中。主配置文件的更新仅在Apache2启动或重启动时才能被识别并应用。

服务器也将读取一个包含mime文档类型的文件;改文件名通过TypesConfig指令设置,通常经由/etc/apache2/mods-available/mime.conf,它可以包含附加和重写,缺省是/etc/mime.types。

基本设置

这一节解释Apache2服务器基本配置参数。更多细节请参阅Apache2 Documentation。
  1. Apache2附带一个虚拟主机友好的缺省配置。也就是说,它被配置为有一个缺省的虚拟主机(使用VirtualHost指令)并且这个虚拟主机可以被修改或直接使用如同你有了一个站点;或者如果你有多个站点,它也可作为其他虚拟主机模板使用。假如只有一个站点,该缺省虚拟主机将作为你的缺省站点;或者,当用户输入的URL与ServerName指令不匹配时用户也将看到此站点。要修改缺省虚拟主机设置,可以编辑文件/etc/apache2/sites-available/default。
    该虚拟主机设置指令只适用于待定的虚拟主机。如果一个指令定义的服务器范围没有在虚拟主机设置中被定义,则使用这个缺省设置。例如,你能定义一个Webmaster邮件地址但是没有为每个虚拟主机定义单独的邮件地址。
    如果你希望配置一个新的虚拟主机或站点,则以另一文件名拷贝该文件到同一目录下。例如:
    sudo cp /etc/apache2/sites-available/default /etc/apache2/sites-available/mynewsite
    按下列指令及描述编辑该新文件以配置这个新站点。
  2. ServerAdmin指令指明服务器管理员的邮件地址。其缺省值是webmaster@localhost。它应更新为递送到你的邮件地址(如果你是服务器管理员)。如果你的站点有问题,Apache2将把这个邮件地址包含在消息中并报告相关问题。包含该指令的配置文件可以在/etc/apache2/sites-available中找到。
  3. Listen指令用于指明端口以及可选的IP地址,以便Apache2侦听。如果IP地址没有被指明,Apache2将侦听所有分配到该机的IP地址。该Listen指令的缺省值是80。改变这个值为127.0.0.1:80 将引起Apache2只侦听本地回环接口这将导致它在互联网上是不可用的,对于(例如)81设置将改变侦听端口,或放弃正常的设置。这个指令可以被找到并更改在文件/etc/apache2/ports.conf
  4. ServerName指令是一个可选的,它用于指定你的站点应答的FQDN。缺省的虚拟主机没有定义ServerName设置,所以虚拟机将响应所有与ServerName指令不匹配的请求。如果你捕获了域名ubunturocks.com并且希望在你的Ubuntu服务器上主持它,则ServerName指令需要在你的虚拟主机配置文件中设置为ubunturocks.com。添加这个指令到你早先建立的新的虚拟主机文件(/etc/apache2/sites-available/mynewsite)。
    你或许也想让你的站点响应www.ubunturocks.com,因为很多用户都会假定www前缀是恰当的,这个情况可以使用ServerAlias指令解决。你也可以使用通配符在ServerAlias指令中。
    例如,以下配置将导致你的站点响应任何以.ubunturocks.com结束的域请求。
    ServerAlias *.ubunturocks.com
  5. DocumentRoot指令指明Apache2将在什么地方找到构成站点文件。缺省值是/var/www,它被存于/etc/apache2/sites-available/default。如果愿意,可以在你虚拟主机站点文件中改变这个值,并且在必要是创建该目录!
允许新的VirtualHost请使用a2ensite工具并且重启Apache2:
sudo a2ensite mynewsite
sudo service apache2 restart
针对VirtualHost请确保使用更具描述性的名称替换mynewsite。方法之一是该VirtualHost的ServerName指令后命名它。
类似的,使用a2dissite工具以禁用站点。这也可用于针对多虚拟主机的故障排除配置:
sudo a2ensite mynewsite
sudo service apache2 restart

HTTPS Configuration

Sharing Write Permission

References