Linux系统下Apache日志文件设置、更改默认网站目录、防止php木马跨站设置、禁止空主机头

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:

CentOS Linux系统下apache日志文件设置(每天单独生成一个日志文件)

引言:
Apache默认安装下,日志记录只有一个文件,时间久了之后,这个文件会变的很大,管理员要想查看分析日志,光打开日志就要花费很长时间,甚至还会影响服务器运行。

下面设置apache让服务器每天单独生成一个日志文件,这样管理、分析日志会方便很多。

#####################################################################################
vi /etc/httpd/conf/httpd.conf  #编辑文件
#ErrorLog logs/error_log  #注释此行,添加下面这行
ErrorLog "|rotatelogs /var/log/httpd/error_log%Y%m%d.log 86400 480"  #每天单独生成一个日志文件
#CustomLog logs/access_log common  #注释此行,添加下面这行
CustomLog "|rotatelogs /var/log/httpd/access_log%Y%m%d.log 86400 480" common  #每天单独生成一个日志文件
######################################################################################
Tips:如果想禁止Apache日志文件,可以设置如下
ErrorLog /dev/null  #禁用错误日志
CustomLog /dev/null common  #禁用访问日志

--------------------------------------------------------------------------------

CentOS Linux系统下更改Apache默认网站目录
引言:
Apache默认的网站目录是在/var/www/html,我们现在要把网站目录更改到/home/wwwroot/web1/htdocs,操作如下
准备工作:
创建目录:
cd /home
mkdir wwwroot
cd wwwroot
mkdir web1
cd web1
mkdir htdocs
touch index.php
操作步骤:
1、vi /etc/httpd/conf/httpd.conf
  找到 DocumentRoot"/var/www/html"这一段    #apache的根目录
  把/var/www/html这个目录改为/home/wwwroot/web1/htdocs
  再找到 <Directory "/var/www/html">  #定义apache /var/www/html这个区域
  把/var/www/html改成/home/wwwroot/web1/htdocs
  这样我们就把apahce的默认路径改掉了
  service httpd restart  #重启Apache服务器
2、访问localhost的时候,会发现访问拒绝,这是为什么呢?
主要是因为你的/home/wwwroot/web1/htdocs的权限是750,apache这个用户没有权限访问,你需要更改掉权限,可以这样改
chmod -R 755 /home/wwwroot/web1/htdocs
然后去访问 发现正常运行了(apache的用户:apache 运行apache的组:apache)
至此,Apache默认网站目录更改成功。

--------------------------------------------------------------------------------
CentOS Linux系统下Apache防止php木马跨站设置
引言:
在Apache服务器中,切忌一定要在虚拟主机配置文件中添加以下代码,否则PHP木马脚本可以浏览你服务器上的任意文件,这意味着你的服务器很快会被攻破。
代码如下:
php_admin_value open_basedir "/usr/local/apache/htdocs/www/:/tmp/"
注意:把/usr/local/apache/htdocs/www/替换成你自己的网站目录
例如:
编辑虚拟主机配置文件
vi /etc/httpd/conf.d/vhost.conf
在你的网站配置中添加下面的代码
<VirtualHost *:80>
php_admin_value open_basedir "/usr/local/apache/htdocs/www/:/tmp/"
</VirtualHost>
注意:  
因为/etc/httpd/conf.d/vhost.conf中设置了open_basedir之后, 虚拟用户就不会再自动继承php.ini
中的open_basedir设置值了,这就难以达到灵活的配置措施, 所以建议您不要在/etc/httpd/conf.d/vhost.conf
中设置此项限制。
例如,可以在php.ini中设置open_basedir = .:/tmp/
这个设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,有效防止php木马跨站运行。

--------------------------------------------------------------------------------
Linux系统下禁止apache空主机头

引言:为了防止域名解析恶意指向,我们需要禁止apache默认的空主机头,操作如下
vi /etc/httpd/conf/httpd.conf    
#编辑配置文件,在你的站点配置之前再增加一个站点(红色字体部分是我们要增加的,蓝色字体部分代表你正在使用的站点配置)
NameVirtualHost * 
<VirtualHost *:80>
    ServerAdminyourmail@mail.com
    DocumentRoot /error
    ServerName abc.com
</VirtualHost>
<VirtualHost *:80>
    ServerAdminyourmail@mail.com
    DocumentRoot "你的站点路径"
    ServerName yourWebsite.com
    ServerAlias *.yourWebsite.com
</VirtualHost>

推荐阅读:

Apache页面压缩配置问题导致JSON数据传输时间延长 http://www.linuxidc.com/Linux/2013-08/88637.htm

使用Apachetop来分析Apache实时日志 http://www.linuxidc.com/Linux/2013-08/88836.htm

本文转自奔跑在路上博客51CTO博客,原文链接http://blog.51cto.com/qiangsh/1587576如需转载请自行联系原作者


qianghong000

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
纯PHP+MySQL手搓高性能论坛系统!代码精简,拒绝臃肿
本内容分享了一套经实战验证的社交系统架构设计,支撑从1到100万用户的发展,并历经6次流量洪峰考验。架构涵盖客户端层(App、小程序、公众号)、接入层(API网关、负载均衡、CDN)、业务服务层(用户、内容、关系、消息等服务)、数据层(MySQL、Redis、MongoDB等)及运维监控层(日志、监控、告警)。核心设计包括数据库分库分表、多级缓存体系、消息队列削峰填谷、CQRS模式与热点数据动态缓存。同时提供应对流量洪峰的弹性伸缩方案及降级熔断机制,并通过Prometheus实现全链路监控。开源建议结构清晰,适合大型社交平台构建与优化。
91 11
|
4天前
|
在Ubuntu系统中为apt的apache2编译PHP 7.1的方法
以上就是在Ubuntu系统中为apt的apache2编译PHP 7.1的方法。希望这个指南能帮助你成功编译PHP 7.1,并在你的Apache服务器上运行PHP应用。
44 28
Linux系统中的cd命令:目录切换技巧
踏过千山,越过万水,人生就是一场不断前行的旅程,总充满了未知与挑战。然而,“cd”命令如同你的旅伴,会带你穿梭在如棋盘一般的文件系统中,探索每一处未知。希望你能从“cd”命令中找到乐趣,像是掌控了一种络新妙的魔法,去向未知进发,开始你的探索之旅。
80 24
|
5天前
|
PHP
基于PHP开发的资源库系统源码
基于PHP开发的资源库系统源码
31 13
|
25天前
|
Linux基础:文件和目录类命令分析。
总的来说,这些基础命令,像是Linux中藏匿的小矮人,每一次我们使用他们,他们就把我们的指令准确的传递给Linux,让我们的指令变为现实。所以,现在就开始你的Linux之旅,挥动你的命令之剑,探索这个充满神秘而又奇妙的世界吧!
70 19
PHP 日志系统的最佳搭档:一个 Go 写的远程日志收集服务
为了不再 SSH 上去翻日志,我写了个 Go 小脚本,用来接收远程日志。PHP 负责记录日志,Go 负责存储和展示,按天存储、支持 API 访问、可远程管理,终于能第一时间知道项目炸了。
43 10
任务悬赏接单发布系统PHP源码
任务发布接单系统,目前最新最完善的一套源码,前后端全开源无加密,支持会员系统、 支持店铺认证 支持普通任务和线下任务 支持微信支付和支付宝支付 短信对接短信宝
48 13
|
1月前
|
Linux目录删除指南:彻底解决“Is a directory”错误
在 Linux 系统中遇到 `cannot remove &#39;xxx&#39;: Is a directory` 错误,是因为删除目录时未使用正确参数。解决方法包括:1) 使用 `rmdir` 删除空目录或 `rm -r` 删除非空目录;2) 检查并调整目录权限(如通过 `sudo` 提权);3) 处理特殊场景,例如文件属性异常、特殊字符或进程占用;4) 替代方法如 `find -delete` 或文件系统修复。操作前建议备份数据,并启用防误删功能(如 `alias rm=&#39;rm -i&#39;`)。掌握 `rm` 和 `rmdir` 的区别是关键。
110 1
|
2月前
|
linux中的目录操作函数
本文详细介绍了Linux系统编程中常用的目录操作函数,包括创建目录、删除目录、读取目录内容、遍历目录树以及获取和修改目录属性。这些函数是进行文件系统操作的基础,通过示例代码展示了其具体用法。希望本文能帮助您更好地理解和应用这些目录操作函数,提高系统编程的效率和能力。
201 26
PHP成绩查询系统源码
PHP成绩查询系统源码
585 3
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等