Linux下Apache服务的部署和配置

目录php

Apache服务的安装html

yum源安装:mysql

目录文件linux

源码包安装:nginx

目录文件:c++

Apache中添加对php的支持web

Apache中添加php对mysql数据库的支持sql

Apache服务的高级配置数据库

1:配置基于ip的虚拟主机apache

2. 配置基于端口的虚拟主机

3.配置基于域名的虚拟主机

HTTP服务的访问控制

基于ip的用户访问控制的配置:

基于用户身份认证受权的配置:


Apache 是世界使用排名第一的Web服务器软件。它能够运行在几乎全部普遍使用的计算机平台上,因为其跨平台和安全性被普遍使用,是最流行的Web服务器端软件之一。它快速、可靠而且可经过简单的API扩充,将Perl/Python等解析器编译到服务器中。可是Apache有一个缺点就是,从新加载配置文件时须要重启 httpd 服务,而nginx重载配置文件时只需重载reload配置文件便可。httpd服务默认监听 tcp / 80 端口

apache有两个日志文件,access.log记录了访问网站的日志;error.log记录了错误日志

Apache服务的安装

yum源安装:

  1. 安装httpd主程序:  yum  -y  install  httpd
  2. 在/var/www/html 目录下写入咱们本身的主页 index.html
  3. 开启httpd程序: systemctl  start httpd
  4. 防火墙开放http服务  firewall-cmd  --add-service=http ,关闭SElinux: setenforce=0
  5. 查看apache版本号:httpd -v

目录文件

  • 程序目录:/usr/sbin/httpd
  • 默认网站主页存放目录: /var/www/html/
  • 日志文件存放目录:/var/log/httpd/
  • 主配置文件:/etc/httpd/conf/httpd.conf
  • 从配置文件:/etc/httpd/conf.d/

主配置文件 /etc/httpd/conf/httpd.conf 的一些参数的意义

ServerRoot “/etc/httpd“                        //服务配置文件目录
PidFile run/httpd.pid		                   //PID文件
Listen 80			                           //默认监听端口
Include conf.modules.d/*.conf		           //包含模块目录的配置文件
User apache			                           //启动用户
Group apache		        	               //启动组
ServerAdmin root@localhost	                   //管理员邮箱
ServerName www.example.com:80	               //域名主机名
DocumentRoot “/var/www/html“	               //默认主页存放目录
DirectoryIndex index.html index.html.var	   //索引文件
<Directory "/var/www">                         //规定网站根目录的位置
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
ErrorLog logs/error_log			               //错误日志
CustomLog logs/access_log combined	           //访问日志
AddDefaultCharset UTF-8                        //默认字符集
IncludeOptional conf.d/*.conf                  //包含了 conf.d/*.conf 的配置文件

<IfModule dir_module>
    DirectoryIndex index.html                  //默认索引
</IfModule>

 扩展配置文件: /etc/httpd/conf.d/   , 咱们能够在这个目录下新建一些咱们本身定义的配置文件,好比基于ip的虚拟主机,基于端口的虚拟主机,基于域名的虚拟主机等等

源码包安装:

  1. 源码安装以前先安装编译工具: yum  -y  install  gcc  gcc-c++  make 
  2. 源码包: httpd-xxxx.tar.bz2
  3. 解压,而后进入解压目录, ./configure 编译, make && make install  安装便可 
  4. 进入安装目录的 bin 目录下, ./httpd 启动

目录文件:

安装完成后,软件默认安装在  /usr/loca/apache2/  下面,也能够编译的时候自定义安装目录

  • 可执行文件目录:/usr/local/apache2/bin/
  • 网站主页目录:/usr/local/apache2/htdocs/
  • 配置文件目录:/usr/local/apache2/conf/
  • 日志文件目录:/usr/local/apache2/logs/

Apache中添加对php的支持

安装php的支持包    yum  -y  install   php ,而后重启 httpd 服务便可

若是想让Apache识别默认的index.php文件,须要修改配置文件 /etc/httpd/conf/httpd.conf 中,在以下位置加入 index.php  

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

Apache中添加php对mysql数据库的支持

安装php-mysql的包便可:yum  -y  install php-mysql  

Apache服务的高级配置

如下无论是基于ip、端口仍是基于域名建立的虚拟主机,网站主页目录只能在 /var/www/ 下,若是想更改到其余的任意目录的话,须要修改配置文件  /etc/httpd/conf/httpd.conf

<Directory "/var/www">        //这里的目录更改成你的网站主页目录
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>

1:配置基于ip的虚拟主机


能够在一台服务器上配置多个网卡,也能够在一块网卡上配置爱多个ip
我这里在一块网上上配置多个ip:   ifconfig  eno16777736:1   10.96.10.204

而后在从配置文件中  /etc/httpd/conf.d/   下建立一个配置文件,咱们新建一个 ip.conf 文件,而后加入下面几行

<VirtualHost 10.96.10.203>
        DocumentRoot /var/www/html/web1     //第一个ip的网站的主页面目录
</VirtualHost>
<VirtualHost 10.96.10.204>
        DocumentRoot /var/www/html/web2    //第二个ip的网站的主页面目录
</VirtualHost>

而后在/var/www 下新建 web1和web2目录,在web1和web2目录里面分别放入咱们的网站页面。而后重启httpd服务便可。

2. 配置基于端口的虚拟主机

在配置文件中  /etc/httpd/conf.d/   下建立一个配置文件,咱们新建一个 port.conf 文件,而后加入下面几行

Listen 8080
<VirtualHost *:80>
        DocumentRoot  /var/www/html/web1      //第一个端口的网站主目录
</VirtualHost>
<VirtualHost *:8080>
        DocumentRoot  /var/www/html/web2      //第二个端口的网站主目录
</VirtualHost>

而后在/var/www 下新建 web1和web2目录,在web1和web2目录里面分别放入咱们的网站页面。而后重启httpd服务便可。

3.配置基于域名的虚拟主机

在配置文件中  /etc/httpd/conf.d/   下建立一个配置文件,咱们新建一个 domain.conf 文件,而后加入下面几行

NameVirtualHost *:80
<VirtualHost *:80>
        DocumentRoot /var/www/web1     //第一个域名的网站主目录
        ServerName web1.xie.com
</VirtualHost>
<VirtualHost *:80>
        DocumentRoot /var/www/web2    //第二个域名的网站主目录
        ServerName web2.xie.com
</VirtualHost>

而后在/var/www 下新建 web1和web2目录,在里面放入咱们的网站页面。而后再重启httpd服务便可。

HTTP服务的访问控制

控制对特定主页内容的访问,为相应网站目录添加访问控制
经常使用访问控制方式分类:

  • 客户机地址限制
  • 用户受权限制

设置客户机地址访问

  • Order配置项,定义控制顺序 Order allow,deny 先容许后拒绝,默认拒绝 Order deny,allow 先拒绝后容许,默认容许
  • Allow、Deny配置项,设置容许或拒绝的网段或地址 Deny from IP地址 或者 网段 Allow from IP地址 或者 网段

基于ip的用户访问控制的配置:

在配置文件中  /etc/httpd/conf.d/   下建立一个配置文件,咱们新建一个 ip.conf 文件,而后加入下面几行

// 这个的意思的容许全部用户访问/var/www/html 目录下的网页,可是只容许 10.96.10.204/24这个网段的访问 /var/www/html/test/ 目录下的网页
<VirtualHost 10.96.10.203>        //本机ip
DocumentRoot /var/www/html        //网站主页的目录
<Directory /var/www/html/test>         //要设置限制的目录
Order allow,deny                  //匹配了容许的就拒绝全部
Allow from 10.96.10.204/24        //只容许10.96.10.204这个地址访问
</Directory>
</VirtualHost>

基于用户身份认证受权的配置:

访问控制的配置

  • 在配置文件中  /etc/httpd/conf.d/   下建立一个配置文件,咱们新建一个auth.conf 文件,而后加入下面几行
  • htpasswd  -c   /etc/httpd/webpasswd    tom (第一次加 -c 参数,表示建立文件);   htpasswd  /etc/httpd/webpasswd  jack(第二次不用加 -c参数 ,由于文件已经建立)
  • 重启服务验证
<VirtualHost 10.96.10.203>           //本机ip 
DocumentRoot /var/www/html           //主页目录
<Directory /var/www/html/test>       //设置认证的目录
AuthType Basic                       //认证的方法:密码
AuthName Password!                   //弹出登陆框
AuthUserFile /etc/httpd/webpasswd   //用户名和密码保存的文件
require user tom  jack              //只容许 tom 和 jack 用户访问
</Directory>
</VirtualHost>

相关文章: Linux中Nginx服务器的部署和配置

                   Linux中Tomcat和Jboss的安装和部署

                   LAMP环境搭建一个Discuz论坛