环境准备:
服务器系统:CentOS 6.5

安装lamp环境:
yum -y install mysql mysql-server php php-mysql httpd php-gd* freetype freetype-devel libmcrypt libmcrypt-devel mcrypt mhash php-mcrypt

一、Apache配置
配置之前先把域名解析到服务器IP地址上
站点1:bbs.chinasoft.com  程序所在目录/var/www/html/bbs

站点2:sns.chinasoft.com  程序所在目录/var/www/html/sns

chown apache.apache -R /var/www/html   #设置目录所有者为apache

chmod 700  /var/www/html -R  #设置目录权限

说明:修改之前先备份原来的配置文件

cp /etc/httpd/conf/httpd.conf  /etc/httpd/conf/httpd.confbak   #修改之前先备份原文件

vim /etc/httpd/conf/httpd.conf   #编辑配置文件

ServerTokens OS     在44行  修改为:ServerTokens Prod (在出现错误页的时候不显示服务器操作系统的名称)

ServerSignature On  在536行 修改为:ServerSignature Off (在错误页中不显示Apache的版本)

Options Indexes FollowSymLinks  在331行 修改为:Options Includes ExecCGI FollowSymLinks(允许服务器执行CGI及SSI,禁止列出目录)

#AddHandler cgi-script .cgi 在796行 修改为:AddHandler cgi-script .cgi .pl (允许扩展名为.pl的CGI脚本运行)

AllowOverride None  在338行 修改为:AllowOverride All (允许.htaccess)

AddDefaultCharset UTF-8 在759行 修改为:AddDefaultCharset GB2312 (添加GB2312为默认编码)

Options Indexes MultiViews FollowSymLinks 在554行 修改为 Options MultiViews FollowSymLinks(不在浏览器上显示树状目录结构)

DirectoryIndex index.html index.html.var  在402行

修改为:DirectoryIndex index.html index.htm Default.html Default.htm index.php Default.php index.html.var  (设置默认首页文件,增加index.php)

KeepAlive Off   在76行 修改为:KeepAlive On (允许程序性联机)

MaxKeepAliveRequests 100   在83行 修改为:MaxKeepAliveRequests 1000 (增加同时连接数)

:wq!  #保存退出

/etc/init.d/httpd restart 重启

rm -f /etc/httpd/conf.d/welcome.conf  /var/www/error/noindex.html    #删除默认测试页

二、新建虚拟主机配置文件

vim /etc/httpd/conf.d/vhost.conf   #编辑配置文件,添加以下内容

NameVirtualHost *:80

<VirtualHost *:80>

# ServerAdmin webmaster@dummy-host.example.com

DocumentRoot /error

ServerName error.com

# ErrorLog logs/dummy-host.example.com-error_log

# CustomLog logs/dummy-host.example.com-access_log common

</VirtualHost>

<Directory "/var/www/html/bbs/">

php_admin_value open_basedir "/var/www/html/bbs/:/tmp/"

Options Includes ExecCGI FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

<VirtualHost *:80>

# ServerAdmin webmaster@dummy-host.example.com

DocumentRoot /var/www/html/bbs/

ServerName bbs.chinasoft.com:80

#ServerAlias bbs1.chinasoft.com

# ErrorLog logs/dummy-host.example.com-error_log

# CustomLog logs/dummy-host.example.com-access_log common

</VirtualHost>

<Directory "/var/www/html/sns/">

php_admin_value open_basedir "/var/www/html/sns/:/tmp/"

Options Includes ExecCGI FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

<VirtualHost *:80>

# ServerAdmin webmaster@dummy-host.example.com

DocumentRoot /var/www/html/sns/

ServerName sns.chinasoft.com:80

#ServerAlias sns1.chinasoft.com

# ErrorLog logs/dummy-host.example.com-error_log

# CustomLog logs/dummy-host.example.com-access_log common

</VirtualHost>

纯IP的虚拟机配置方法来访问wordpress:
wordpress目录:/var/www/html/wordpress

NameVirtualHost *:80

<VirtualHost *:80>

DocumentRoot /error

ServerName error.com

</VirtualHost>

<Directory "/var/www/html/wordpress/">

php_admin_value open_basedir "/var/www/html/wordpress/:/tmp/"

Options Includes ExecCGI FollowSymLinks

AllowOverride All

Order allow,deny

Allow from all

</Directory>

<VirtualHost *:80>

DocumentRoot /var/www/html/wordpress/

ServerName 192.168.1.22:80

</VirtualHost>

三、php配置

cp /etc/php.ini  /etc/php.inibak  #编辑之前先备份

vi  /etc/php.ini   #编辑配置文件

date.timezone = PRC     #把前面的分号去掉,改为date.timezone = PRC

disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd,
posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,
posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出PHP可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

expose_php = Off        #禁止显示php版本的信息

display_errors = OFF    #关闭错误提示

register_globals = OFF  #关闭注册全局变量

magic_quotes_gpc = On   #打开magic_quotes_gpc来防止SQL注入

log_errors = On         #记录错误日志

error_log = /var/log/php/error_log.log  #设置错误日志存放目录,文件必须允许apache用户的和组具有写的权限

#(chown apache.apache /var/log/php/error_log.log)

open_basedir = .:/tmp/  #设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,防止php木马跨站

四、测试

vi /var/www/html/bbs/index.php   #编辑配置文件

<?php

phpinfo();

?>

:wq!  #保存退出

vi /var/www/html/sns/index.php   #编辑配置文件

<?php

phpinfo();

?>

:wq!  #保存退出

chown apache.apache -R /var/www/html   #设置目录所有者

chmod 700  /var/www/html   -R  #设置目录权限

service httpd restart     #重启apache

打开

http://bbs.chinasoft.com/

http://sns.chinasoft.com/

可以看到相关PHP信息页面,说明配置成功

配置示例:

vim /usr/local/httpd-2.2./conf/vhost.d/agent.wondershare.com.conf

<VirtualHost *:>
ServerName agent.chinasoft.com
ServerAlias agent.china-soft.com UseCanonicalName Off
ServerAdmin "admin@chinasoft.com"
DocumentRoot /data/www/vhosts/agent.chinasoft.com/httpdocs
DirectoryIndex index.html index.shtml index.php
CustomLog "|/usr/local/apache2/bin/rotatelogs -l /data/www/logs/apache_log/access/agent.chinasoft.com_access.log.%Y-%m-%d 86400" combined
ErrorLog "|/usr/local/apache2/bin/rotatelogs -l /data/www/logs/apache_log/error/agent.chinasoft.com_error.log.%Y-%m-%d 86400"
<IfModule mod_ssl.c>
SSLEngine off
</IfModule>
<Directory /data/www/vhosts/agent.chinasoft.com/httpdocs/>
<IfModule sapi_apache2.c>
php_admin_flag engine on
php_admin_flag safe_mode on
php_admin_value open_basedir ".:/data/www/vhosts/agent.chinasoft.com:/tmp"
</IfModule>
<IfModule mod_php5.c>
php_admin_flag engine on
php_admin_flag safe_mode on
php_admin_value open_basedir ".:/data/www/vhosts/agent.chinasoft.com:/tmp"
</IfModule>
Options -ExecCGI FollowSymLinks +Includes
AllowOverride All
</Directory>
ErrorDocument /.html </VirtualHost>

apache虚拟主机配置及常用安全配置的更多相关文章

  1. apache 虚拟主机详细配置:http.conf配置详解

    apache 虚拟主机详细配置:http.conf配置详解 Apache的配置文件http.conf参数含义详解 Apache的配置由httpd.conf文件配置,因此下面的配置指令都是在httpd. ...

  2. apache虚拟主机配置及解析

    Apache虚拟主机配置及解析 1.修改httpd-vhosts.conf 打开apache(Apache24)/conf/extra/httpd-vhosts.conf文件,添加虚拟主机信息,可以这 ...

  3. Apache虚拟主机配置

    在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录.Apache虚拟主机配置有3中方法:基于IP配置.基于域名配置和基于端口配置,这里介 ...

  4. Apache虚拟主机配置(多个域名访问多个目录)

    Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...

  5. 配置apache虚拟主机的实例总结

    如何实现apache虚拟主机配置. 1.基于ip地址的虚拟主机Listen 80<VirtualHost 172.20.30.40> DocumentRoot /home/httpd/ht ...

  6. Ubuntu16.04+Apache虚拟主机配置详解

    在window下,Apache的配置文件是httpd.conf,但在Linux下安装了Apache后发现其配置并不像window下那么简单,Linux下Apache将各个设置项分在了不同的配置文件中, ...

  7. windows环境下,apache虚拟主机配置

    在windows环境下,apache从配置文件的相关配置: Windows 是市场占有率最高的 PC 操作系统, 也是很多人的开发环境. 其 VirtualHost 配置方法与 Linux 上有些差异 ...

  8. Linux Apache虚拟主机配置方法

    apache 虚拟主机配置 注意: 虚拟主机可以开很多个 虚拟主机配置之后,原来的默认/etc/httpd/httpd.conf中的默认网站就不会生效了 练习: 主机server0 ip:172.25 ...

  9. 配置Apache虚拟主机

    实验环境 一台最小化安装的CentOS 7.3虚拟机 配置基础环境 1. 安装apache yum install -y httpd 2. 建立虚拟主机的根目录 mkdir /var/wwwroot ...

  10. Apache虚拟主机配置(多个域名访问多个目录)(转)

    Apache虚拟主机配置(多个域名访问多个目录) 为了方便管理虚拟主机,我决定使用一种方法,那就是修改httpd-vhosts.conf文件. 第一步首先要使扩展文件httpd-vhosts.conf ...

随机推荐

  1. 2-Python3从入门到实战—基础之运算符

    Python从入门到实战系列--目录 Python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符 成员运算符 身份运算符 运算符优先级 算术运算符 Pyt ...

  2. 00405EB0 mov eax,dword ptr [ecx] 是什么意思?

    dword 双字 就是四个字节ptr pointer缩写 即指针[]里的数据是一个地址值,这个地址指向一个双字型数据比如mov eax, dword ptr [12345678] 把内存地址12345 ...

  3. 新版 Chrome Ajax 跨域调试

    一.前言 web 开发中 Ajax 是十分常见的技术,但是在前后端使用接口对接的调试过程中不可避免会碰到跨域问题.今天我给大家介绍一个十分简单有效的方法. 跨域经典错误 二.Chrome 跨域设置 首 ...

  4. 深入理解ajax系列第二篇——请求方式

    前面的话 在上一篇中,概要地介绍了XHR对象的使用.本文将详细介绍使用XHR对象发送请求的两种方式——GET和POST.下面将以实例的形式来详细说明 GET GET是最常见的请求类型,最常用于向服务器 ...

  5. POJ 1182 食物链 (带权并查集)

    食物链 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 78551   Accepted: 23406 Description ...

  6. MT【105】待定系数算最大最小

    已知$x,y,z>0$,则$max\{2x,\frac{1}{y},y+\frac{1}{x}\}$的最小值______ 分析:首先关注到$2x=\frac{1}{y}=y+\frac{1}{x ...

  7. Java中public、private、protect对数据成员或成员函数的访问限制

    Java类中对数据成员.成员函数的访问限制修饰有:public.protect.private.friendly(包访问限制) public修饰的数据成员或成员函数是对所有用户开放的,所有用户可以直接 ...

  8. 解题:CF1063F String Journey

    题面 分析性质以进行DP 性质1:一定有一个最优解通过每次删除第一个或最后一个字符达到 这个脑补一下就能证明了 那么我们设$dp[i]$表示后缀$[i,n]$选出一个前缀所能达到的最大长度,从右往左D ...

  9. Oracle表字段类型更改的一个经验

    先前表中ID字段类型是用序列,由于安全问题,需要处理水平权限的漏洞,虽然使用加密也可以处理,为了更方便,需要将字段类型改为Guid,如果表中已经有数据,更改起来不是很方便,对于基础数据表,这里提供一个 ...

  10. gtest简介及简单使用

    本文摘自 gtest简介及简单使用 ,在此感谢作者的分享. 具体使用教程 _______________________________________________________________ ...