linux小记:Ubuntu和Arch下的Apache

原创 2016年08月28日 17:07:52

Apache2在Ubuntu和Arch下,配置文件的组织方式差别还是挺大的。小记一下,因为我过不久肯定就会忘的=.=

Ubuntu

在Ubuntu下,配置目录在/etc/apache2。在此目录下,主要配置文件是apache2.conf,但是为了更清晰,在Ubuntu上Apache的配置文件是拆分了的,最后在apache2.conf中都Include了进来。比如:

# Include module configuration:
IncludeOptional mods-enabled/*.load
IncludeOptional mods-enabled/*.conf

# Include list of ports to listen on
Include ports.conf

Apache的配置文件主要拆出来的有这几块:ports.conf/sites/conf/mods,具体目录结构如下:

/etc/apache2/
|-- apache2.conf
|       `--  ports.conf
|-- mods-enabled
|       |-- *.load
|       `-- *.conf
|-- conf-enabled
|       `-- *.conf
|-- sites-enabled
|       `-- *.conf

ports.conf

其中ports.conf里面设置了监听的端口,默认已经有了Listen 80

sites-avaliable & sites-enable

sites分为sites-availablesites-enable两个文件夹。一般是available里面放配置文件,代表所有可用的站点,enable里面放软链接,链到available里面的配置文件,则这个配置文件就启用了。

Note: 切记软链接的时候一定要用全路径,如ln -s /etc/apache2/sites-available/puppy.conf /etc/apache2/sites-enable/,不然会出现迷之错误。

sites就是站点的意思。比如我有两个站点,apache-default.confpuppy.conf,前者设置为端口81,并在开头写上Listen 81,虽然理论上应该写到ports.conf文件中,不过写在这里会更清晰。不想要这个站点的时候直接删了这个文件就行了。
比如,apache的默认配置文件,我们把端口改成81

Listen 81
<VirtualHost *:81>
        #ServerName www.example.com

        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

站点配置文件中除了修改对应的端口号,还要修改DocumentRoot,即站点放置的位置。Ubuntu下Apache站点放置位置在/var/www,比如默认站点在/var/www/html。我们可以将puppy站点放置目录为/var/www/puppy,这样在访问我们的Apache地址www.xxx.com.cn(如果有域名的话。否则写架设Apache服务器的IP)时对应的就是/var/www/puppy[/index.html]。访问www.xxx.com.cn:81对应的就是Apache的站点/var/www/html

conf / mods

confmodssites类似,也是由availableenable构成。
这些东西最后都includeapache2.conf中。

DocumentRoot的概念

apache2.conf里面有<Directory blabla_path>或者<File blabla_file>,里面设置的是一些权限的问题,即给开放的站点加上权限。
比如apache2.conf默认对几个地方进行了设置:

<Directory />
        Options FollowSymLinks
        AllowOverride None
        Require all denied
</Directory>

<Directory /usr/share>
        AllowOverride None
        Require all granted
</Directory>

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

Document Roots: By default, Ubuntu does not allow access through the web browser to any file apart of those located in /var/www, public_html directories (when enabled) and /usr/share (for web applications). If your site is using a web document root located elsewhere (such as in /srv) you may need to whitelist your document root directory in /etc/apache2/apache2.conf.

启动方式

Ubuntu启动Apache的方式为service apache2 start,或者用systemctl或者/etc/init.d的启动方式都行。

Arch

Arch上Apache的默认配置文件在/etc/httpd下,比如配置文件在conf文件夹中。默认配置文件为/etc/httpd/conf/httpd.conf,其他配置文件在/etc/httpd/conf/extra文件夹里,也是通过Include引用进来的,比如:

# User home directories
Include conf/extra/httpd-userdir.conf
# Various default settings
Include conf/extra/httpd-default.conf

装完php后就得把php的配置文件Include进来:

Include conf/extra/php7_module.conf

装完phpmyadmin也一样:

Include conf/extra/phpmyadmin.conf

其实这样做的话,个人感觉会把主配置文件httpd.conf搞得有点儿庞杂,不像Ubuntu下的主配置文件apache.conf那么简洁。

ArchWiki上Apache的配置页面httpd.conf有比较详细的介绍,比如DocumentRoot "/srv/http"是Arch下Apache的默认站点目录。ServerRoot "/etc/httpd"是配置文件的目录。这些都和Ubuntu上的不同。Listen 80也在这里面。ServerAdmin shininglhb@163.com可以设置邮箱,当页面挂了的时候会显示给用户。

当然这里面也有关于DocumentRootDirectory的设置,比如默认的:

DocumentRoot "/srv/http"
<Directory "/srv/http">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   AllowOverride FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

构建多个站点

如果我们想构建多个站点,且希望更方便的维护,建议为每一个虚拟主机创建一个配置文件并文件存储到一个文件夹中 /etc/httpd/conf/vhosts中。并在 /etc/httpd/conf/httpd.conf中注释掉Include conf/extra/httpd-vhosts.conf这一行。
比如我们新建一个puppy的站点,监听端口为81,就新建一个/etc/httpd/conf/vhosts/puppy.dom,格式按照下面这个示例进行替换即可:

<VirtualHost domainname1.dom:80>
    ServerAdmin webmaster@domainname1.dom
    DocumentRoot "/home/user/http/domainname1.dom"
    ServerName domainname1.dom
    ServerAlias domainname1.dom
    ErrorLog "/var/log/httpd/domainname1.dom-error_log"
    CustomLog "/var/log/httpd/domainname1.dom-access_log" common

    <Directory "/home/user/http/domainname1.dom">
        Require all granted
    </Directory>
</VirtualHost>

这一点跟Ubuntu上新建站点的配置文件没有什么区别。
最后别忘了在httpd.conf中加入:

Include conf/vhosts/puppy.dom

启动方式

Arch使用的是systemd,所以使用systemctl start httpd.service来启动Apache。
Ubuntu配置文件是apache2.conf,启动参数是apache2;Arch配置文件是httpd.conf,启动参数是httpd.service

两个不同的发行版有不同的配置组织方式。不过总体感觉,Ubuntu下的Apache的配置方式更整洁一点儿。

版权声明:本文为博主原创文章,未经博主允许不得转载。

寒假折腾Archlinux的一些经验(新手向)--桌面配置篇

Archlinux安装完成默认是没有桌面环境的,也没有建立普通用户账户,一切都要自己手动进行,虽然很麻烦,但是能够让自己更加熟悉命令行。 安装完成后开始添加用户: # useradd -m ill...
  • u011152627
  • u011152627
  • 2014年02月04日 21:55
  • 19066

linux小记:Ubuntu和Arch下的Apache

Apache2在Ubuntu和Arch下,配置文件的组织方式差别还是挺大的。小记一下,因为我过不久肯定就会忘的=.=Ubuntu在Ubuntu下,配置目录在/etc/apache2。在此目录下,主要配...
  • puppylpg
  • puppylpg
  • 2016年08月28日 17:07
  • 1067

Archlinux 折腾记录及感受(上)

Archlinux 折腾记录及感受(上) 没装过十次以上Linux,别说你玩过Linux。 第一次听说Archlinux还是在几周前,对命令行安装系统的敬畏、少而碎片化的空闲时间以及糟糕的校园网络...
  • u012675539
  • u012675539
  • 2015年04月05日 01:05
  • 1852

打造自己的多功能USB启动盘——grub2引导WinPE、Archlinux安装镜像和Ubuntu liveCD

http://hi.baidu.com/qileilu/item/d3a29aa98baa64258819d345 利用U盘制作启动盘,引导WinPE、Linux安装的文章多如牛毛,与他们相比本...
  • ztguang
  • ztguang
  • 2016年02月01日 00:00
  • 401

Ubuntu下、Apache 和Tomcat 共用80端口

在默认情况下,Apache服务器安装后使用的是80端口,而Tomcat默认使用的是8080端口,当一台服务器上二者都安装时,想要访问Tomcat提供的JSP页面,需要在域名后加上:8080,这种方式我...
  • yaooch
  • yaooch
  • 2015年03月11日 23:37
  • 1631

打造自己的Archlinux

转载处:http://blog.sina.com.cn/s/blog_6a75ed3d0100p49i.html Arch的优点主要是: 1、轻快,archlinux为i686进行优化,无论是系统的...
  • gddxz_zhouhao
  • gddxz_zhouhao
  • 2016年10月13日 23:54
  • 490

Archlinux 的灵魂──PKGBUILD、AUR 和 ABS

第一部分:PKGBUILD 和 makepkg 其实,我使用 Archlinux 的时间并不是很长。可是,就是在这半年的时间内,我感觉我学到了很多的东西,对 GNU/Linux 有了更多的了解,也在这...
  • taiyang1987912
  • taiyang1987912
  • 2014年11月24日 23:14
  • 9391

arch_linux安装kvm

此案例以Arch Linux进行安装及配置kvm的操作,其他Linux发行版本借鉴。
  • sanxinge
  • sanxinge
  • 2016年08月28日 21:36
  • 578

linux/arch/arm/下的故事

历史的痕迹:在最新的linux-2.6.31/arch/arm/文件夹下,仍然保留Linux最初向ARM处理器移植的痕迹,最初的移植由黑客完成,在老的移植的代码文件的头部保留着黑客的名字;最初的ARM...
  • jinatom
  • jinatom
  • 2012年11月03日 21:26
  • 1315

Archlinux 折腾记录及感受(中)

Archlinux 折腾记录及感受(中)看到Arch从本地硬盘启动,并能成功连上wifi,心情无比激动。然而,这仅仅只是开始。接下来,需要配置基本的图形界面,浏览器,字体,输入法,窗口管理器,文件管理...
  • u012675539
  • u012675539
  • 2015年04月06日 13:13
  • 1900
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:linux小记:Ubuntu和Arch下的Apache
举报原因:
原因补充:

(最多只允许输入30个字)