|
11.14-11.15 Apache和PHP结合
到目前为止,虽然安装好了apache,mysql,php,但是还没有将他们结合在一起。
虽然apache利用php调用了一个模块,但是还没有做实验,还不知道他们能不能解析php.
所以现在得编辑一下Apache,httpd的配置文件。
httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
课程操作,
# vim /usr/local/apache2.4/conf/httpd.conf 主要修改以下几个地方
1,开启80端口,把#ServerName www.exaple.com:80的#删除。
2,搜索Require all denied
改成Require all granted
3,找到
AddType application/x-gzip .gz .tgz
在该行下面添加一行:
AddType application/x-httpd-php .php
4,找到DirectoryIndex
修改为:
DirectoryIndex index.html index.php
启动Apache的时候,会有以下报错信息提示,要使它不出现,
[root@centos7-01 ~]# /usr/local/apache2.4/bin/apachectl start
AH00558: httpd: Could not> 操作,
#vim /usr/local/apache2.4/conf/httpd.conf
搜索ServerName,把#ServerName www.exaple.com:80的#删除。
#/usr/local/apache2.4/bin/apachectl start
#vim /usr/local/apache2.4/conf/httpd.conf
搜索Require all denied
改成Require all granted
以为不修改参数 会登录失败的。
遇到这种报错,
1 先ping IP连通性
2 测试端口是否连同
ip通,端口不通,这是因为没有开启80端口
加载80端口
[root@Centos7-01 php-5.6.30]#iptables -I INPUT -p tcp --dport 80 -j ACCEPT
添加规则让防火墙开通80端口的访问
#vim /usr/local/apache2.4/conf/httpd.conf
找到
AddType application/x-gzip .gz .tgz
在该行下面添加一行:
AddType application/x-httpd-php .php
如果不添加这行,php没办法解析
找到DirectoryIndex
修改为:
DirectoryIndex index.html index.php
每次修改完httpd配置文件后
利用/usr/local/apache2.4/bin/apachectl graceful 重新加载修改服务
/usr/local/apache2.4/bin/apachectl -t //测试语法,检查配置是否有错误
/usr/local/apache2.4/bin/apachectl start //启动服务
#vim /usr/local/apache2.4/htodcs/1.php //增加如下内容,以下内容可以把php的相关信息打印出来
打开浏览器登录192.168.189.128/1.php
发生错误
检查
1,检查 php5_module (shared)模块是否存在并shared状态
# /usr/local/apache2.4/bin/apachectl -M
2,/usr/local/apache2.4/modules/libphp5.so 是否存在
3,检查配置文件httpd有没有加载libphp5.so文件
LoadModule php5_module modules/libphp5.so
4,检查httpd有没有加载这一行信息
AddType application/x-httpd-php .php
5,检查httpd有没有添加 index.php
6,检查参数符号有没有错,不要把中文的符号打上去,一定要英文符号。
7,关闭防火墙。
成功
11.16-11.17 httpd的默认虚拟主机。
1.php index.php 之所以在windows端被访问,
是因为/usr/local/apache2.4/conf/httpd.conf里的其中一项参数定义了网页路径为/usr/local/apache2.4/htdocs,而1.php index.php 又在里面。
#vim /usr/local/apache2.4/conf/httpd.conf
DocumentRoot "/usr/local/apache2.4/htdocs"
准备工作,
# vim /usr/local/apache2.4/conf/httpd.conf
搜索
Virtual hosts,把#Include conf/extra/httpd-vhosts.conf的#去掉,修改如下
编辑虚拟主机的配置文件
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
上述配置是,
格式***是一个虚拟主机了
每一个虚拟主机,代表着一个网站。
**内容可以是,
DocumentRoot 后面网页的路径,核心参数。
ServerName 网页的地址,只可以输入一个
ServerAlias 网页的别名,支持输入多个,
接下来,创建网站,
具体操作,创建目录,使其配置生效。
创建三个网站的父目录,
[root@centos7-01 conf]# mkdir /data/wwwroot/
[root@centos7-01 conf]# mkdir /data/wwwroot/abc.com
[root@centos7-01 conf]# mkdir /data/wwwroot/111.com
在对应站点目录创建站点文件index.php
[root@centos7-01 conf]# vim /data/wwwroot/abc.com/index.php
[root@centos7-01 conf]# vim /data/wwwroot/111.com/index.php
编辑php脚本,最后最好不要留空白行,不会导致结果有所区别。
脚本最后留了空白行输出结果会是,
而无留空白行,正确输出是,
[root@centos7-01 conf]# /usr/local/apache2.4/bin/apachectl graceful
[root@centos7-01 conf]# /usr/local/apache2.4/bin/apachectl -t
Syntax OK
要想在本机访问abc.com和111.com
可以编辑/etc/hosts文件,或者使用curl -x (指定主机ip和端口)
[root@centos7-01 conf]# curl -x192.168.189.128:80 abc.com
abc.com[root@centos7-01 conf]#
前缀abc.com表示已经成功指向默认虚拟主机。
abc.com[root@centos7-01 conf]# curl -x192.168.189.128:80 www.abcd.com
abc.com[root@centos7-01 conf]#
abc.com[root@centos7-01 conf]# curl -x192.168.189.128:80 www.111.com
因为www.abcd.com没有被标记在虚拟主机里面,所以它会被指向默认虚拟主机abc.com里面。
abc.com[root@centos7-01 conf]# curl -x192.168.189.128:80 www.111.com
111.com[root@centos7-01 conf]#
因为111.com是第二个虚拟主机,已经被标住了,所以会在192.168.189.128:80指向它会进入111.com
要想宿主机(真实机windows)上登录网页,需要修改windows的hosts文件。
C:\Windows\System32\drivers\etc
打开浏览器,尝试连接。
|
|
|
|
|
|
|