安装apache
apache的安装最应该发挥CentOS的yum的优势了,废话少说,直接yum安排yum install httpd -y
配置apache
首先,我们先设置httpd自动启动chkconfig httpd on
去掉那个我们不需要的欢迎页vim /etc/httpd/conf.d/welcome.conf
注释掉这一行#ErrorDocument 403 /error/noindex.html
保存后,启动服务就能看到403Forbidden了,说明我们还没有网站首页
编辑apache的配置文件vim /etc/httpd/conf/httpd.conf
以下列出最常用的配置项Listen 80 #监听80端口
LoadModule xxxxx #加载某路径的模块,apache已经加载了很多需要用到的模块
Include xxxxx #引用某路径的配置文件,可以简化主配置文件的长度
User apache #指定运行的用户
Group apache #指定组
ServerAdmin root@localhost #管理员邮箱,可以不用修改
ServerName www.example.com:80 #服务器名,如果设置虚拟主机,设置为 你的IP:80
DirectoryIndex index.html index.html.var #主页路径
NameVirtualHost *:80 #指定某IP某端口可以用于虚拟主机的配置
注意:一旦开启了NameVirtualHost,apache的主网站的配置就失效了。
每个虚拟主机的配置项如下:
ServerAdmin webmaster@dummy-host.example.com #同上
DocumentRoot /www/docs/dummy-host.example.com #主目录
ServerName dummy-host.example.com #服务器名,这里可以设置IP或域名,用于区分不同主机
ErrorLog logs/dummy-host.example.com-error_log #错误日志
CustomLog logs/dummy-host.example.com-access_log common #访问日志
如果还需要主网站,你可以用你的IP填在VirtualHost的ServerName上
但是,此时的配置,每个虚拟主机进程都会以相同的身份(apache:apache)运行,如果启用了php,这将能够访问旁站!
我们必须安装一个httpd模块mpm,实现不同虚拟主机进程以不同身份运行
安装epel
还是直接yum安排yum install epel-release -y
安装了epel之后 ,可以在下一步顺利安装mpm模块
安装与配置mpm-itk
安装mpm-itk:yum install httpd-itk -y
配置apache,加载itkvim /etc/sysconfig/httpd
在第10行添加HTTPD=/usr/sbin/httpd.itk
保存,然后重启apache服务
安装php
同理,php也是直接yum安排yum install php -y
同时,php还有很多拓展,以下拓展也可以使用yum安装
php-mysql php连接mysql数据库的拓展
php-gd 图形处理拓展
php-mbstring 多字节字符串拓展
php-xml xml解析拓展
配置php
安装完php之后,如果我们还配置了itk,我们会发现php文件还不会被解析,因为默认加载的是HTTPD=/usr/sbin/httpd.worker
而我们加载了HTTPD=/usr/sbin/httpd.itk
在conf.d/php.conf中
httpd.worker加载php的是
LoadModule php5_module modules/libphp5.so
如果需要httpd.itk加载php,需要增加
LoadModule php5_module modules/libphp5.so
保存退出后,我们发现php文件又可以正常解析了
虚拟主机安全配置
保证虚拟主机的安全,就要从不同主机不同用户开始,现在我们已经可以使用mpm-itk来实现了。
首先,我们新建一个虚拟主机用户useradd test -g apache -s /sbin/nologin
设置这个用户的密码passwd test
然后,创建日志目录和web目录
进入用户主目录cd /home/test
创建两个目录mkdir htdocs
mkdir logs
然后,修改所有者和权限
由于我们使用root添加了两个目录,我们需要先设置所有者
进入home目录cd /home
设置所有者chown -R test:apache test
为了防止主目录下的两个目录被误删chmod -w test
进入用户主目录cd test
坚持最小权限原则,去掉两个子目录对于除test以外所有用户的权限,并且去掉日志目录的可写权限chmod 700 htdocs
chmod 500 logs
最后,修改配置文件,指派用户vim /etc/httpd/conf/httpd.conf
在VirtualHost标签里面的最后一行添加AssignUserId test apache
测试用户权限
在web目录下新建一个php<?php
system("whoami");
?>
浏览器访问为test,证明运行用户为test
关于php.ini的安全就暂时不赘述了,有时间继续更新!