Zhonghui

每个不曾起舞的日子,都是对生命的辜负

User Tools

Site Tools


软件:linux:apache网页服务器

Apache网页服务器

Apache 2

所有的具体配置可以到谷歌云看:服务器配置

Apache开启Webdav服务


总览

  1. 一般配置文件都在/etc/apache2/,网站文件都在/var/www/
  2. apache2在启动的时候自动读取/etc/apache2/apache2.conf文件的配置信息,不同的配置项按功能分布在不同的文件中,然后被Include包含到apache2.conf这个主配置文件中,方便管理。就是说事实上apache2主配置文件只有一个,即apache2.conf,其他的都是被include进来的
  3. Apache 2有两个配置文件夹,sites-enabled和sites-available。sites-available中存放的是网站的配置文件,sites-enabled中存放的是网站配置的链接(链接到sites-available中的配置文件)

安装和管理

安装:sudo apt-get install apache2
管理:管理系统服务

为配置文件创建链接

mail_gzher@wikihost-us:/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/com.gzher.cv.conf com.gzher.cv.conf

配置首页文档

DirectoryIndex home.html

绑定多个域名

sited-enabled里面放置多个配置文件就可以了

不配置域名,通过IP直接访问

直接在ServerName那里填IP就可以了

<virtualhost *:80>
    ServerName 115.28.85.69:80
    <location></location>
    Order Allow,Deny
    Deny from all
</virtualhost>

简短总结:一个HTTP模板网站

上述记录了一些核心操作,现在实操一下,创建一个简单的绑定域名的HTTP网站

  1. 安装apache2 配置防火墙等 重启服务 确保可以通过IP访问到 Welcome 页面
  2. 【以下操作可能都需要 root 权限,不要忘记】
  3. 创建网站目录:mkdir /var/www/mywebsite
  4. 在该目录中创建一个测试页面:随便一个HTML文件就可以,默认叫作index.html
  5. 创建网站的配置文件并编辑(参考下面配置模板,记得去掉注释):/etc/apache2/sites-available/mywebsite.conf
  6. 启用配置
    1. 也就是上述的「为配置文件创建链接」,为我们的配置文件在sites-enabled中创建链接
    2. apache2提供了a2ensitea2dissiteapache2ctl等命令辅助,可以了解一下
  7. 修改文件权限:chown -R www-data:www-data /var/www/mywebsite(注意,只能用在Debian系)
  8. 重启服务
  9. 修改域名的DNS记录
    1. 添加 A 记录:【主机记录(Name)是@,@表示这个域名本身】指向服务器的公网 IP 地址
    2. 如果希望www.mydomain.com也能访问到的话(非顶级域名的话不用太在意,不设置也行)【尚未测试】
      1. 方案1:增加 A 记录【主机记录(Name)是www】指向同一个IP
      2. 方案2:增加 CNAME 记录【主机记录(Name)是www】指向mydomain.com

/etc/apache2/sites-available/mywebsite.conf配置模板

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    # 修改为实际域名,是不是顶级域名不重要
    ServerName mydomain.com
    # 修改为实际域名,如果是顶级域名,这个建议写上(相应的上面也要多加一条DNS记录)
    # 如果不是,这个不写也行,看需求
    # 主要是,需不需要 www.mydomain.com 也能访问到
    ServerAlias www.mydomain.com
    DocumentRoot /var/www/mywebsite # 注意路径

    <Directory /var/www/mywebsite> # 注意路径
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

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

开启HTTPS(Rewrite)并安装证书

这一步的证书是手动申请的,自动申请证书可以参考:安装SSL证书

  • 首先,准备好域名,在ZeroSSL申请证书,在申请证书的时候,需要验证对域名的所有权。证书申请完成后,可以下载到3个文件(certificate.crt / ca_bundle.crt / private.key),将这三个文件上传到服务器,放在相应的位置,一般情况下,certificate.crt / ca_bundle.crt放到/etc/ssl/,private.key放到/etc/ssl/private/
  • 安装好Apache 2服务器后,默认可以用HTTP的方式请求到网页数据。为了启用HTTPS,首先需要打开两个Mod
sudo a2enmod rewrite
sudo a2enmod ssl
  • 然后配置这个文件:/etc/apache2/sites-enabled/000-default.conf(其实这个文件是个链接),配置文件可能不同,根据实际情况确定,另外记得提前备份。修改的内容大致是这样的:
# 80端口自动重定向到HTTPS
<VirtualHost *:80>
    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
</VirtualHost>

# 注意端口号是443
# 启用SSL并安装证书
<VirtualHost *:443>
    ...
    SSLEngine on
    SSLCertificateFile /etc/ssl/certificate.crt
    SSLCertificateKeyFile /etc/ssl/private/private.key
    SSLCertificateChainFile /etc/ssl/ca_bundle.crt
</VirtualHost>
  • 现在可以以安全的方式打开网页了,也可以在ZeroSSL中检查一下配置是否成功

外链资料

  1. Apache2配置文件解读 https://www.cnblogs.com/Aurora-M/p/15619014.html (各个配置项解释)
  2. ubuntu apache2服务器配置 https://www.cnblogs.com/starof/p/4278370.html (流程完整,比较详细)
  3. apache配置Directory目录权限的一些配置 https://www.cnblogs.com/wuzhicms/p/6698174.html (主要是权限相关的内容,Wiki的权限相关的配置,可以参考一下这篇文章)
  4. Apache alias目录配置 https://www.cnblogs.com/bourneli/archive/2012/11/13/2767522.html (使用alias配置别名,区别于多域名/多站点)
/var/www/DokuWikiStick/dokuwiki/data/pages/软件/linux/apache网页服务器.txt · Last modified: 2025/01/08 16:26 by zhonghui