环境准备:
服务器系统: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. 团队作业5——英语学习/词典App行业Top5

    来自权威研究机构易观智库的最新数据表明,国内几家主流词典类App市场的份额占比差异化分布进一步加剧. 对于156万安卓移动端活跃数字消费者的移动互联网行为监测结果显示,截至2014年8月底,有道词典A ...

  2. MarkDown to PDF

    前面随便说说 之前在 windows 上一直习惯用 cmdmarkdown 把要写的东西写下来,再通过 typora 转成 pdf:现在很多时候在用 Ubuntu,需要把写完的作业转成 pdf 交上去 ...

  3. Python爬虫利器:BeautifulSoup库

    Beautiful Soup parses anything you give it, and does the tree traversal stuff for you. BeautifulSoup ...

  4. python文本替换

    file_data = '' str1 = ' str2 = ' with open(loginfofile, 'r+') as f: #打开文件,r+模式,读取 for line in f: if ...

  5. Semantic Versioning Specification & 语义化版本

    Semantic Versioning Specification & 语义化版本 Semantic Versioning Specification http://semver.org 16 ...

  6. robotframework+Selenium2Library 模态窗口的处理

    原文链接:https://www.cnblogs.com/zuola/p/5750018.html   所谓模态窗口,就是指除非采取有效的关闭手段,用户的鼠标焦点或者输入光标将一直停留在其上的对话框. ...

  7. DataSet和实体类的相互转换

    最近做WInfrom项目,对表格和控件的数据绑定非常喜欢用实体类对象来解决,但是绑定以后 又怎么从控件中拿到实体类或者转换为datatable 或者dataset呢 经过在网上的搜索以及自己的改进 完 ...

  8. SP4487 GSS6 - Can you answer these queries VI

    题目大意 给出一个由N个整数组成的序列A,你需要应用M个操作: I p x 在 p  处插入插入一个元素 x D p 删除 p 处的一个元素 R p x 修改 p 处元素的值为 x Q l r 查询一 ...

  9. Maven项目打包,Jar包不更新的问题

    问题: 我的maven项目A要打成Jar包A,依赖了另外一个项目B生成的Jar包B.更改了项目B的代码,然后继续打包项目A,生成的Jar包A中并没有我修改了的代码. 原因: Jar包B在开始时被Ins ...

  10. 致研究者:2018 AI 研究趋势

    2017 年是机器学习领域最有成效.最具创意的一年.现在已经有很多博文以及官方报道总结了学界和业界的重大突破.本文略有不同,Alex Honchar在Medium发文,从研究者的角度分享机器学习明年发 ...