Lamp基本配置

http解析php

httpd的主配置文件/usr/local/apache2.4/conf/httpd.conf
编辑http主配置文件

#vim /usr/local/apache2.4/conf/httpd.conf
搜索ServerName www.example.com:80 并取消注释
搜索AddType  application/x-gzip .gz .tgz 在其下面添加AddType application/x-httpd-php .php
搜索DirectoryIndex index.html 并在其后添加index.php
<Directory />
AllowOverride none
Require all denied   将denied改为granted
</Directory>

进行测试 # /usr/local/apache2.4/bin/apachectl -t 显示Syntax OK即为成功

可以用 # /usr/local/apache2.4/bin/apachectl start 启动httpd

#netstat -lnp| grep httpd用于查看httpd是否启动

使用curl 命令做一个简单测试
#curl localhost

下面开始进行测试是否可用正确解析php 在apache2.4子目录htdocs下创建test.php用于测试
#vim/usr/local/apache2.4/htdocs/test
在这里插入图片描述
使用curl localhost/test.php
在这里插入图片描述

默认虚拟主机

 虚拟主机(共享主机,又称虚拟服务器)是一种在单一主机或主机群上,实现多网域服务的方法,可以运行多个网站或服务的技术。虚拟 主机之间完全独立,并可由用户自行管理,虚拟并非指不存在,而是指空间是由实体的服务器延伸而来,其硬件系统可以是基于服务器群,或者单个服务器。

httpd的主配置文件在/usr/local/apache2.4/conf/httpd.conf

编辑http主配置文件搜索httpd-vhosts 把该项取消注释Include conf/extra/httpd-vhosts.conf
然后编辑/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<VirtualHost*:80>

ServerAdminwebmaster@dummy-host.example.com
DocumentRoot"/usr/local/apache2.4/docs/abc.com"
ServerNameabc.com
ServerAliaswww.abc.comaaa.com
ErrorLog"logs/abc.com-error_log"
CustomLog"logs/abc.com-access_log"common

</VirtualHost>

<VirtualHost*:80>

DocumentRoot"/usr/local/apache2.4/docs/111.com"
ServerName111.com
ErrorLog"logs/111.com-error_log"
CustomLog"logs/111.com-access_log"common

</VirtualHost>

编辑完配置文件以后 使用绝对路径创建abc.com 和 111.com 子目录下创建index.html

完成以后使用-t检查 显示Syntax OK即为成功 使用graceful重新读取配置

使用curl命令进行验证

#curl-xlocalhost:80www.abc.com
abc.com

#curl-xlocalhost:80www.aaa.com
abc.com

#curl-xlocalhost:80111.com
111.com

其中

//ServerAdmin指定管理员邮箱,
//DocumentRoot为该虚拟主机站点的根目录,
//ServaerName为网站的域名
//ServerAlias为网站的第二域名
//ErrorLog为站点的错误日志
//CustomLog为站点的访问日志

用户认证

用户认证用来对某些目录中的网页进行访问控制,当用户访问这些页面的时
候需要输入用户名和密码进行认证。

编辑/httpd-vhosts.conf

<VirtualHost*:80>

ServerAdminwebmaster@dummy-host.example.com
DocumentRoot"/usr/local/apache2.4/docs/abc.com"
ServerNameabc.com
ServerAliaswww.abc.comaaa.com

<Directory/usr/local/apache2.4/docs/abc.com>

AllowOverrideAuthConfig
AuthName"abc.comuserauth"
AuthTypeBasic
AuthUserFile/usr/local/apache2.4/docs/.htpasswd
requirevalid-user

</Directory>

ErrorLog"logs/abc.com-error_log"
CustomLog"logs/abc.com-access_log"common
</VirtualHost>

配置完成以后使用-t命令验证 -graceful重新读取配置
#/usr/local/apache2.4/bin/htpasswd -cm /usr/local/apache2.4/docs/.htpasswd lzh

//htpasswd为创建用户的工具,-c为create
//-m为指定密码加密的方式为MD5
.htpasswd为密码文件
lzh为创建的用户

创建完成以后使用curl命令验证 curl -xlocalhost:80-u lzh:123 abc.com -I

也可在windows上验证C:\Windows\System32\drivers\etc\hosts。打开文件在最后一行输入:你的IPwww.abc.com
#systemctlstopfirewalld
#setenforce0
然后,去浏览器访问www.abc.com会有弹窗出现。

域名跳转

当我们变更网站域名或者申多个域名指向一个网站的时候,这个时候我们就
会用到域名跳转。

例如:设置不是111.com开头的网站都跳转到111.com
编辑/httpd-vhosts.conf配置文件

<VirtualHost*:80>
ServerAdminwebmaster@dummy-host.example.com
DocumentRoot"/usr/local/apache2.4/docs/www.111.com"
ServerNamewww.111.com
ServerAlias111.com

<IfModulemod_rewrite.c>  //-需要mod__rewrite模块
RewriteEngineon          //打开rewrite功能
RewriteCond%{HTTP_HOST}!^111.com$  //定义rewrite的条件,当
主机名不是111.com时满足条件
RewriteRule^/(.*)$http://111.com/$1[R=301,L]   //定义rewrite规则,
RewriteRule后面分为三个部分,第一部分为当前网址
//第二部分为要跳转的网址,第三部分是选项,需要括号括起来。

</IfModule>
ErrorLog"logs/111.com-error_log"
CustomLog"logs/111.com-access_log"common
</VirtualHost>
配置域名跳转 需要rwrite模块支持 在httpd.conf中取消注释LoadModule rewrite_module modules/mod_rewrite.so

使用绝对路径创建www.111.com/index.html 写入www.111.com
创建123.php文件
写入<?php
echo"www.111.com/123.php"
?>
使用-t、graceful命令重新读取配置
使用curl命令 #curl-xlocalhost:802111.com.cn-I 可以看到状态码为301,跳转的网址为111.com

访问日志

访问日志作用很大,不仅可以记录网站的访问情况,还可以在网站有异常发生时帮助我们定位问题

日志格式的介绍,可以参考

# vi /usr/local/apache2.4/conf/httpd.conf
LogFormat "%h %l %u %t \"%r\" %>s %b" common
其中,%h是来源IP,%l是远端登录名, %u是远程用户名, %t是时间,%r是请求的第一行,  %>s指的是最后请求的状态, %b以CLF格式显示的除HTTP头以外传送的字节数

访问日志不记录静态文件

项目中的CSS、图片、js都是静态文件。一般会将静态文件放到一个单独的目录中,以方便管理
首先配置 httpd-vhosts.conf

<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>
在www.111.com下创建image目录 用于存放图片做测试 并上传一张照片做测试
上传完成以后 使用 curl -xlocalhost:80 www.111.com/image/linux.jpg -I查看 并观察 tail -f /usr/local/apache2.4/logs/111.com-access_log

完成以后编辑配置文件httpd-vhosts.conf

<VirtualHost *:80>
  
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2.4/docs/www.111.com"
ServerName www.111.com
ServerAlias 111.com
SetEnvIf Request_URI ".*\.gif$" image-request
SetEnvIf Request_URI ".*\.jpg$" image-request
SetEnvIf Request_URI ".*\.png$" image-request
SetEnvIf Request_URI ".*\.bmp$" image-request
SetEnvIf Request_URI ".*\.swf$" image-request
SetEnvIf Request_URI ".*\.js$" image- request
SetEnvIf Request_URI ".*\.css$" image- request
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" combined env=!image-request
</VirtualHost>

配置完成以后 使用-t命令查看错误 使用graceful重新读取配置
curl -xlocalhost:80 www.111.com/image/linux.jpg -I
查看日志文件 [root@localhost logs]# cat 111.com-access_log

访问日志切割

日志一直记录总有一天会把整个磁盘占满,所以有必要让它自动切割,并删除老的日志文件。
配置httpd-vhosts.conf文件

CustomLog "|/usr/local/apache2.4/bin/rotatelogs -l logs/111.com- 	access_%Y%m%d.1og 86400" combined env=!image-request
配置完成以后用-t验证 使用greaceful重新读取即可

rotatelogs为apache的日志切割工具,-l表示以当前系统时间进行切割,logs/123.com-access_%Y%m%d.1og定义了日志的切割名称,86400以天为单位,换算成秒就是86400。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值