一、配置httpd支持php
1、httpd的主配制文件: /usr/local/apache/conf/httd.conf 1、在我们安装好httpd之后,启动它,会有一个提示信息叫我们设置ServerName 我们进入以上这个配制文件 /usr/local/apache/conf/httpd.conf,把Servername前面的#号去掉,然后注释掉一个php,保存退出。 检查配制语法是否对: /usr/local/apache/bin/apachectl -t,并重新加载配制文件/usr/local/apache/bin/apachectl graceful ,再启动或停止,它就不会报错了。用浏览器访问apache服务,直接在浏览器地址栏输入192.168.1.31(按个人Linux IP配置访问),提示不能访问,增加一行配制:Require all granted 如果不加这一行,访问是403,我们要首先要ping 下80端口是不是通的, 临时让linux防火墙开启80端口: iptables -I INPUT -p tcp --dport 80 -j ACCEPT, 就可以访问了。 2、修改 Require all denid 为Require all grante不修改,访问会报错403
修改完配制文件,要检查配制语法是否对: /usr/local/apache/bin/apachectl -t
重新加载配制文件,不会重启服务:/usr/local/apache/bin/apachectl graceful
3、增加一行跟php相关的配制,AddType application/x-httpd-php .php,加在AddType类似行
4、增加一个索引页: DirectoryIndex index.php 直接在index.html后面空格一行加上index.php就好了
5、写一个测试的脚本:vim /usr/local/apache2.4/htdocs/1.php 增加内类
<?php echo phpinfo(); ?> (增加一个文件不用重启,如果php不能解析显示的就是原代码,那我们就要想到有没有apache文件:php5_module 有没有这个模块,有没有/usr/local/apche/modules/libphp5.so 这个文件,还要检查制制文件没有loadmoudel以及有没有 AddType application/x-httpd-php .php) 快捷键:快速查找历史命令 ctrl+r 再输入命令 6、重启httpd: /usr/local/apache/bin/apachectl restart
二、httpd的默认虚拟主机
一台服务器可以访问多个网站,每个网站都是一个虚拟主机,我们为什么会访问到index.html 1.php 是因为DocumentRoot "usr/local/apache/htdocs 这个参数定义了这个网站的目录在哪里。 怎么在windows写hosts :/windosw/system32/drivers/etc/hosts 用写字版打开。在里面加一行,192.168.1.31 www.abc.com 我们在浏览器里面直接打开www.abc.com 它就直接跳转到192.168.1.31在dns没有生效的情况下用。 2、apache的默认虚拟主机,任何一个域名,只要指向了这个ip,我们就可以访问到这个站点。
3、一台服务器上,我可以跑多个域名,不想让全部域全部指向同一个ip,所以我们需要给它打开一个虚拟主机配制文件,在/usr/local/apache/conf/httdp.conf
搜索:extra
找到# Virtual hosts #Include conf/extra/httpd-vhosts.conf 把这行的#号去掉,打开这个后,htdocs里面文件就失效了,servername也失效了。
打开二级虚拟配制文件: /usr/local/apache/conf/extra/httpd-vhosts.conf可以定义多个servername, 里面每一对virtualhost 就对应一个主机 DocumentRoot:网站的根目录在哪里 如:/data/wwwroot/abc.com ServerName : 如可以定义成abc.com 只能写一个 ServerAlias : 定义别名: 如: www.abc.com 可以写多个 ErrorLog :错误日志路径 如: logs/abc.com-error_log CustomLog: 访问日志路径 如:"logs/abc.com-access_log" common 一旦让虚拟主机生效了,那么以前的定义的servername 就失效了 5、创建对应的目录: mkdir /data/wwwroot mkdir /data/wwwroot/abc.com
6、在对应的站点目录下创建php vim /data/wwwroot/abc.com/index.php 7、检查有没有错: /usr/local/apache/bin/apachectl -t 8、重新加载:/usr/local/apache/bin/apchectl graceful
9、测试虚拟主机: curl 命令和浏览器交替使用: -x 比如我们要访问www.abc.com ,如果没有绑定hosts,那么ping 就会ping到外网上去。可以编辑/etc/hosts 也可以用curl+x直接访问: curl -x192.168.1.23:80 www.abc.com 这样我们就可以访问到虚拟主机上去了 如果虚拟主机生效,那么主配制文件就失效了, 默认虚拟主机就是:无论任何域名,只要解析到这个ip上,都会访问这个默认虚拟主机。