ubuntu apache 用户,linux安装apache

大家好,今天来为大家分享ubuntu apache 用户的一些知识点,和linux安装apache的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!

如何在 Ubuntu 20.04 上安装 Apache

Apache是全球最广泛使用的网站服务器之一。作为开源且跨平台的HTTP服务器,它承载了互联网上大量的网站,并提供丰富功能及可扩展性。本文旨在指导Ubuntu 20.04用户如何安装和管理Apache网站服务器。

一、前提条件

确保以具有sudo权限的用户身份登录。

二、安装Apache

Apache默认包含在Ubuntu软件源中,安装过程简便。在Ubuntu和Debian系统中,Apache软件包与服务称为apache2。执行以下命令更新软件包索引,并安装Apache:

sudo apt update

sudo apt install apache2

安装完成后,Apache服务会自动启动。通过运行下面的命令验证服务运行状况:

sudo systemctl status apache2

输出显示服务正在运行且已设置为开机启动。

三、开放HTTP和HTTPS端口

Apache监听端口80(HTTP)和443(HTTPS)。在防火墙中开放这些端口,以便服务器能够从互联网上被访问。若使用UFW,请启用Apache全配置,它包含这两个端口的规则:

sudo ufw allow'Apache Full'

验证更改:

sudo ufw status

输出应显示端口被允许。

四、验证Apache安装

打开浏览器,输入服务器IP地址YOUR_IP_OR_DOMAIN/,可查看默认的Ubuntu 20.04 Apache欢迎页面。页面包含配置文件、帮助脚本及文件夹位置等基本信息。

五、设置虚拟主机

虚拟主机允许在一个服务器上运行多个网站。默认情况下,Apache启动了一个虚拟主机,所有域名都指向服务器IP地址。若托管一个简单网站,上传内容至/var/www/html,并编辑配置文件/etc/apache2/sites-enabled/000-default.conf。若需托管更多网站,为每个网站创建虚拟主机配置。为域名""设置网站,将""替换为自己的域名。首先创建根目录文件夹:

sudo mkdir-p/var/www/

在域名根文件夹下创建index.html文件:

欢迎来到

保存并退出。修改文件夹用户归属为apache(www-data):

sudo chown-R www-data:/var/www/

创建虚拟主机配置文件:

ServerName

ServerAlias

ServerAdmin webmaster@example.com

DocumentRoot/var/www/

Options-Indexes+FollowSymLinks

AllowOverride All

ErrorLog${APACHE_LOG_DIR}/example.com-error.log

CustomLog${APACHE_LOG_DIR}/example.com-access.log combined

激活虚拟主机配置:

sudo a2ensite

测试配置文件,无语法错误:

sudo apachectl configtest

重启Apache服务使修改生效:

sudo systemctl restart apache2

验证网站工作状况,在浏览器中打开[](),查看网站是否正常显示。

六、总结

至此,您已学会在Ubuntu 20.04上安装Apache。现在可以部署应用,并将Apache作为网站服务器或代理服务器使用。

ubuntu下/var/www的权限问题

Ubuntu下修改目录权限需要先用 sudo来获得管理员权限,格式如下:

sudo chmod 600×××(只有所有者有读和写的权限)

sudo chmod 644×××(所有者有读和写的权限,组用户只有读的权限)

sudo chmod 700×××(只有所有者有读和写以及执行的权限)

sudo chmod 666×××(每个人都有读和写的权限)

sudo chmod 777×××(每个人都有读和写以及执行的权限)

其中×××指文件名(也可以是文件夹名,不过要在chmod后加-ld)。

解释一下,其实整个命令的形式是

sudo chmod-(代表类型)×××(所有者)×××(组用户)×××(其他用户)

三位数的每一位都表示一个用户类型的权限设置。取值是0~7,即二进制的[000]~[111]。

这个三位的二进制数的每一位分别表示读、写、执行权限。

如000表示三项权限均无,而100表示只读。这样,我们就有了下面的对应:

0 [000]无任何权限

4 [100]只读权限

6 [110]读写权限

7 [111]读写执行权限

如何在Ubuntu上搭建一台安全的Apache Web服务器

本教程假设你已有一台在运行的Ubuntu服务器,网络方面已设置好,而且可以通过SSH进行访问。

Apache2是许多安装的Linux发行版使用的默认Web服务器。它不是对所有环境来说唯一可用的Web服务器,也不是最佳的Web服务器,但是它适合许多使用场景。在安装过程中,系统可能会询问你哪个Web服务器要自动重新配置。选择“apache2”即可。

安装Apache2

使用下面这个命令,安装Apache2及其他库。

$ sudo apt-get-y install apt-get install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-gd php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt libapache2-mod-suphp libopenssl-ruby libapache2-mod-ruby

更新时区(TimeZone)和检查正确时间

为了减小共享数据或镜像数据方面的混淆,所有服务器在运行时都应该尽可能接近同步状态。一些加密密钥管理系统需要准确的时间。最后,就企业服务器而言,《萨班斯-奥克斯利法案》(Sarbanes-Oxley)和《健康保险可携性及责任性法案》(HIPAA)的安全规则要求正确的时间戳机制。

$ sudo apt-get-y install openntpd tzdata

$ sudo dpkg-reconfigure tzdata

$ sudo service openntpd restart

禁止AppArmor冲突

虽然AppArmor这个套件的确提供了一层额外的安全,但在我看来,需要为每个系统创建自定义配置文件。这不是本教程所探讨的内容。所以眼下,我们会禁用AppArmor,防止与任何默认的配置发生冲突。

$ sudo/etc/init.d/apparmor stop

$ sudo update-rc.d-f apparmor remove

$ sudo apt-get remove apparmor apparmor-utils

注意:如果是生产环境下的Web服务器,不建议禁用AppArmor。如果有些人想创建自定义的AppArmor配置文件,请参阅官方说明文档()。

阻止分布式拒绝服务(DDoS)攻击

DDoS攻击是一种分布式拒绝服务攻击。有一个Apache模块可以阻止这类攻击。

$ sudo apt-get-y install libapache2-mod-evasive

$ sudo mkdir-p/var/log/apache2/evasive

$ sudo chown-R www-data:root/var/log/apache2/evasive

把下面这个命令添加到mod-evasive.load的末尾处。

$ sudo nano/etc/apache2/mods-available/mod-evasive.load DOSHashTableSize 2048

DOSPageCount 20#请求同一页面的最大数量

DOSSiteCount 300#同一侦听器上同一客户端IP请求任何对象的总数量

DOSPageInterval 1.0#页面数量阈值的间隔

DOSSiteInterval 1.0#站点数量阈值的间隔

DOSBlockingPeriod 10.0#客户机IP被阻止的时间段

DOSLogDir“/var/log/apache2/evasive”

DOSEmailNotify admin@domain.com

阻止Slowloris攻击

还有一个Apache模块可以阻止Slowloris攻击,不过模块名称取决于你使用的Ubuntu的具体版本。如果是Ubuntu 12.10或以后版本:

$ sudo apt-get-y install libapache2-mod-qos

然后,检查qos.conf中的配置:

$ sudo nano/etc/apache2/mods-available/qos.conf

##服务质量方面的设置

#处理来自多达100000个不同IP的连接

QS_ClientEntries 100000

#只允许每个IP仅50条连接

QS_SrvMaxConnPerIP 50

#活动TCP连接的最大数量限制在256条

MaxClients 256

#当70%的TCP连接被占用时,禁用保持活动连接状态

QS_SrvMaxConnClose 180

#最小请求/响应速度(拒绝阻塞服务器的慢速客户端,即slowloris保持连接开启,不提出任何请求):

QS_SrvMinDataRate 150 1200

#并限制请求标题和主体(注意,这还限制了上传和发帖请求):

# LimitRequestFields 30

# QS_LimitRequestBody 102400

注意:如果你运行12.04之前的Ubuntu版本,改而使用下面这个命令:

$ sudo apt-get-y install libapache2-mod-antiloris

检查antiloris.conf中的配置

$ sudo nano/etc/apache2/mods-available/antiloris.conf

#每个IP地址处于READ状态的最大并行连接数量

IPReadLimit 5

阻止DNS注入攻击

Spamhaus这个模块使用域名系统黑名单(DNSBL),目的是为了阻止通过Web表单实现的垃圾邮件转发,防止URL注入攻击,阻止来自机器人程序的http DDoS攻击,通常保护服务器,远离已知的恶意IP地址。

$ sudo apt-get-y install libapache2-mod-spamhaus

$ sudo touch/etc/spamhaus.wl Append the config to apache2.conf

$ sudo nano/etc/apache2/apache2.conf

MS_METHODS POST,PUT,OPTIONS,CONNECT

MS_WhiteList/etc/spamhaus.wl

MS_CacheSize 256

重启Apache装入新模块

$ sudo service apache2 restart

现在Web服务器已安装完毕,并在正常运行。将Web浏览器指向你的域,即可看到证明你一切正常的默认消息。作为最后的检查机制,运行下面这个命令,看看你的服务器有没有任何错误信息。要是有错误信息,你需要上谷歌搜索一下,立马解决这些错误。

$ sudo tail-200/var/log/syslog

阅读剩余
THE END