如何在linux搭建web服务器,第1张

可以参考如下Web服务器的建立过程。示例环境及web服务器软件:

Ubuntu 1204

LAMP(Linux,Apache,Mysql,PHP)

1、安装Apache

(1)在安装HTTP Server之前需安装APR(Apache Portable Runtime)和APR-util安装APR

$ tar zxvf apr-146targz

$ cd apr-146/

$ /configure

$ make

$ sudo make install

(2)安装APR-util

$ tar zxvf apr-util-141targz

$ cd apr-util-141

$ /configure –with-apr=/usr/local/apr (whereis apr)

$ make

$ sudo make install

(3)安装httpd-242tarbz2默认安装位置/usr/local/apache2网页放在/usr/local/apache2/htdocs配置文件/usr/local/apache2/conf/httpdconf

$ tar jxvf httpd-242tarbz2

$ cd httpd-242/

$ /configure

$ make

$ sudo make install

(4)启动HTTP Server$ sudo /usr/local/apache2/bin/apachectl startAH00558: httpd: Could not reliably determine the server’s fully qualified domain name, using 127011 Set the ‘ServerName’ directive globally to suppress this message

(5)查看http是否正常运行$ netstat -a | grep httptcp 0 0 :http : LISTEN

(6)在浏览器输入127001如果正常应该显示“It works!”

2、安装MySQL

(1)、下载安装mysql-5525targz,默认安装位置/usr/local/mysql/

$ tar zxvf mysql-5525targz

$ cd mysql-5525/

$ sudo groupadd mysql

$ sudo useradd -r -g mysql mysql

$ cmake

$ make

$ sudo make install

$ cd /usr/local/mysql/

$ sudo chown -R mysql

$ sudo chgrp -R mysql

$ sudo scripts/mysql_install_db –user=mysql

$ sudo chown -R root

$ sudo chown -R mysql data/

$ sudo cp support-files/my-mediumcnf /etc/mycnf

$ sudo cp support-files/mysqlserver /etc/initd/mysqlserver

(2)、启动MySQL:

方法1:$ sudo service mysqlserver start

方法2:$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &

3、安装PHP

(1)安装下载php-544targz

$ tar zxvf php-544targz

$ cd php-544

$ /configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql --with-mysqli --enable-mbstring --with-mcrypt(可能需要安装libmcrypt-dev )

$ sudo make install

$ sudo cp phpini-development /usr/local/lib/phpini

(2)配置HTTP Server使之支持PHPapache配置文件/usr/local/apache2/conf/httpdconf修改或添加如下配置

<;IfModule dir_module>

DirectoryIndex indexphp

<;/IfModule>

<;FilesMatch \php$>

SetHandler application/x-httpd-php

<;/FilesMatch>

(3)重启HTTP Server

$ sudo /usr/local/apache2/bin/apachectl restart

 首先,到微软官网下载符合系统位数的Apache和PHP  一、安装并配置Apache

  Apache版本:Apache2418

  解压目录:D:Acpache24

  1、下载回来的是解压文件,解压好放到要安装的位置。

  2、打开Apache24\conf下httpdconf 文件,修改以下关键位置,用记事本打开即可。

  ServerRoot修改为Apache程序的位置:

  修改前:ServerRoot “c:/Apache24”;

  修改前:ServerRoot “D:/Apache24”;

  修改Apache默认的网站的根目录:

  修改前:DocumentRoot “c:/Apache24/htdocs”;

  修改后:DocumentRoot “D:/Apache24/htdocs”;

  修改根目录的选项:

  修改前:

  《Directory “c:/Apache24/htdocs”》

  Options Indexes FollowSymLinks

  AllowOverride null

  Require all granted

  《/Directory》

  修改后:

  《Directory “D:/Apache24/htdocs”》

  Options Indexes FollowSymLinks

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

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

安装Apache2

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

$ sudo apt-get -y install apt-get install apache2 apache22-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/initd/apparmor stop

$ sudo update-rcd -f apparmor remove

$ sudo apt-get remove apparmor apparmor-utils

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

阻止分布式拒绝服务(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-evasiveload的末尾处。

$ sudo nano /etc/apache2/mods-available/mod-evasiveload DOSHashTableSize 2048

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

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

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

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

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

DOSLogDir “/var/log/apache2/evasive”

DOSEmailNotify admin@domaincom

阻止Slowloris攻击

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

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

然后,检查qosconf中的配置:

$ sudo nano /etc/apache2/mods-available/qosconf

## 服务质量方面的设置

# 处理来自多达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

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

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

检查antilorisconf中的配置

$ sudo nano /etc/apache2/mods-available/antilorisconf

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

IPReadLimit 5

阻止DNS注入攻击

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

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

$ sudo touch /etc/spamhauswl Append the config to apache2conf

$ sudo nano /etc/apache2/apache2conf

MS_METHODS POST,PUT,OPTIONS,CONNECT

MS_WhiteList /etc/spamhauswl

MS_CacheSize 256

重启Apache装入新模块

$ sudo service apache2 restart

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

$ sudo tail -200 /var/log/syslog

Apache HTTP Server 是目前应用最多的 web server 服务软件之一,Apache提供了许多强大的功能,而且可以通过其他模块进行扩展。Apache HTTP Server是一个开源的跨平台的服务器软件,目前大部分网站都采用Apache作为网站HTTP服务器。

在本教程中,我们将向你介绍如何在Debian 10中安装Apache并配置虚拟主机。

首先你得有一台安装了Debian的服务器,这样便于你在上面进行演练操作。如果你没有可以考虑自己在虚拟机中安装一个Debian 10。当然,我也推荐您购买一台 阿里云VPS 或者 腾讯云VPS 虚拟主机,如果你更喜欢国外服务器,推荐你尝试 Vultr上的VPS ,注册即送$50美元体验,性价比非常高。

当然有主机了,为安全考虑不建议使用root账号,建议创建一个具有 sudo权限的用户 。

同时,你的Debian已经安装了PHP,如果没有安装可以参考「 如何在Debian 10安装PHP 」教程。

Apache的安装包在Debian的默认源中提供了,所以只需要执行安装命令即可安装。执行安装Apache命令之前我们需要先更新一下系统,命令如下:

安装完成后,apache将默认自动运行,我们通过以下命令查看apache服务状态。

输出命令类似如下:

开启防火墙可以加强服务器的安全性,我们通过防火墙只开放需要访问的端口。可以通过防火墙管理软件 ufw 或者 nftables 进行管理。

如果系统没有安装 ufw 或者 nftables ,可以通过如下命令直接安装。

UFW 如果需要开启 (HTTP)80 或者 (HTTPS)443 端口,可以通过执行如下命令开启:

nftables 如果需要开启 (HTTP)80 或者 (HTTPS)443 端口,可以通过执行如下命令开启:

这个更建议使用 UFW 作为防火墙管理软件,相对来说操作更简单。

Apache安装完成后,需要校验一下Apache是否正常工作。校验方法是打开浏览器,在地址栏中输入 http://ip_or_domain ,如果能正常显示类似如下界面,说明Apache安装成功运行正常。

Apache安装完成后,默认的安装配置文件路径如下:

我们在 /var/www 目录中创建一个网站目录,例如 examplecom 。默认情况,目录结构如下:

可以通过以下命令创建:

在该目录下我们创建一个 indexphp 文件,文件内容如下:

首先,进入 /etc/apache2/sites-available 目录,创建配置文件 examplecomconf 文件,并在其中添加如下内容。

您可以根据需要命名虚拟主机配置文件,但是建议使用域名作为配置文件的名称。

要启用新的虚拟主机文件,请创建一个从虚拟主机文件到启用站点的目录的符号链接,该链接在启动过程中由Apache读取。

在Debian系统中,您可以使用名为 a2ensite 的帮助程序脚本来启用虚拟主机,命令如下:

当然你也可以选择手动创建符号链接,如下所示:

启用配置后,通过键入以下命令测试语法是否正确:

如果一切正常,会输出如下内容:

重启服务,使配置生效,命令如下:

在浏览器地址栏中输入 http://examplecom ,正常情况下你将看到如下输出:

至此,本教程交接完毕。

通过本教程,你将学会如何在Debian 10上安装Apache并设置虚拟主机,如果你有自己的的Debian 10主机不妨按照教程进行安装尝试,如果没有自己的Debian自己建议可以安装一台Debian10虚拟主机或者去 阿里云 或者 腾讯云 或者 Vultr 购买一台自己的VPS服务器。

这是CentOS7编译安装方法(或者你也可以yum安装,这种安装方法版本较低):

CentOS 下编译安装Apache

卸载原有的apache

首先从 http://httpdapacheor 下载apache源码包httpd-244targz

然后从 http://aprapacheorg 下载apr-146targz和apr-util-151targz

然后从 http://sourceforgenet/ 下载pcre-832targz和pcre-devel-832targz

先装gcc和make

yum -y install gcc

yum -y install make

yum -y install gcc-c++ 没有这个gcc-c++一会编译不prce

切到下载好的源码包目录,本人是~/Download

安装apr:

tar -zvxf apr-146targz

cd apr-146

/configure --prefix=/usr/local/apr

make && make install

安装apr-util

tar -zvxf apr-util-151targz

cd apr-util-151

/configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make && make install

安装pcre

tar -zvxf pcre-832targz

cd pcre-832

/configure

make && make install

安装pcre-devel

如果已经安装好了pcre 一定要安装

tar –zxvf pcre-devel-832targz

cd pcre-devel-832

/configure

make && make install

安装apache 一定要先装上面那三个不然编译不了

tar -zvxf httpd-244targz

cd httpd-244

/configure --prefix=/usr/local/apache –with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util

make && make install

配置/usr/local/apache/conf下的httpconf文件(先备份)。

1、服务器

#ServerName wwwexamplecom:80 前的#号删除。

2、目录访问权限

<Directory />

Options FollowSymLinks

AllowOverride None

Order deny,allow

Allow from all #修改为此样

</Directory>

3、默认字符集

AddDefaultCharset utf-8 #指定默认字符集

4、启动httpd

cd bin/

/apachectl start | restart | stop

将httpd添加为系统服务

cp apachectl /etc/initd/httpd

/etc/initd/

编辑httpd,在第二行加入如下信息:

# chkconfig: 345 85 15

# description: Activates/Deactivates Apache Web Server

以上两句必须添加,否则会提示“httpd服务不支持”;第一行3个数字参数意义分别为:哪些Linux级别需要启动httpd(3,4,5);启动序号(85);关闭序号(15)。

添加启动信息(Ubuntu与CentOS有区别)

chkconfig –add httpd

查看是否添加成功

chkconfig --list

服务器控制

service httpd start | restart | stop

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » 如何在linux搭建web服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情