如何在linux搭建web服务器
可以参考如下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
0条评论