day 41 Apache和PHP结合及Apache虚拟主机

11.14~11.15 Apache和PHP结合

配置httpd支持PHP:
  • httpd的主配置文件:/usr/local/apache2.4/conf/httpd.conf
  • vim /usr/local/apache2.4/conf/httpd.conf #编辑httpd的配置文件,修改/增加以下4个地方,如果报错(比如79行有错),注意不要加载两个PHP模块(PHP5和PHP7),需要注释掉一个PHP模块(如PHP7)
ServerName #将对应字段前的注释符号去掉
Require all denied #将几处“denied”改成“granted”。在Linux虚拟机上打开80端口:iptables -I INPUT -p tcp --dport 80 -j ACCEPT,此时在Windows机器网页输入虚拟机IP可显示“It Works”,如果是“Require all denied”,那么网页会显示“403 Forbidden”,在Windows机器的控制面板--程序和功能--启用或关闭Windows功能--勾选Telnet客户端,然后在cmd下运行命令:telnet 虚拟机IP 80,可在Windows机器上telnet到Linux机器上,输入“Ctrl+]”,再输“quit”退出telnet登录。
AddType application/x-httpd-php .php #增加这一行内容可解析PHP,配置文件里搜索关键词“AddType”
DirectoryIndex index.html index.php #增加PHP索引页
  • /usr/local/apache2.4/bin/apachectl -t #检查配置文件的语法,结果显示“Syntax OK‘表示正常
  • /usr/local/apache2.4/bin/apachectl graceful #重新加载配置文件,并不会重启服务
  • /usr/local/apache2.4/bin/apachectl start                #启动apache服务
  • netstat -lntp
  • curl localhost
  • vim /usr/local/apache2.4/htodcs/test.php              #增加测试文件test.php,添加如下测试内容,并进行网页测试
<?php
echo 123; # 或者 "phpinfo();", PHP解析成功则网页上可把PHP的相关信息打印出来
?>

  • curl localhost/test.php #命令行测试

注:在Windows机器上只输入Linux虚拟机上的IP能显示“It Works”,实际上访问的是/usr/local/apache2.4/htodcs/目录下的“index html”文件
如果遇到PHP解析不了的问题,通常要检查Apache的配置文件,主要检查以下几项:
  • /usr/local/apache2.4/bin/apachectl -M                               #查看Apache是否加载了PHP模块
  • 若没有加载PHP模块,通过如下命令查看是否有该PHP模块文件: ls /usr/local/apache2.4/modules/libphp5.so
  • 如果有PHP模块文件,要检查Apache配置文件里是否有加载PHP文件的配置:“LoadModule php5_module modules/libphp5.so” 
  • 继续检查Apache配置文件里是否添加了"AddType application/x-httpd-php .php"这一行内容,注意“.php”前有一个空格,可通过语法检查命令检查出来
11.16~11.17 Apache默认虚拟机

  •  一台服务器可以访问多个网站,每个网站都是一个虚拟主机
  • 任何一个域名解析(指向)到一台Linux机器,都可以访问的虚拟主机就是默认虚拟主机
  • vim /usr/local/apache2/conf/httpd.conf                                                                      #搜索httpd-vhost,去掉注释符号"#"
  • vim /usr/local/apache2/conf/extra/httpd-vhosts.conf                                                 #编辑虚拟主机配置文件,配置两个网站,原内容改为如下。虚拟主机配置文件一旦启用生效,那么httpd的配置文件里定义的DocumentRoot和ServerName就失效
<VirtualHost *:80> #一个VirtualHost代表一个站点
    ServerAdmin admin@aminglinux.com
    DocumentRoot "/data/wwwroot/aming.com" #该参数定义了访问网站的根目录
    ServerName aming.com #网站的域名,可以定义多个
    ServerAlias www.aming.com #网站域名的别名
    ErrorLog "logs/aming.com-error_log" #指定错误日志的路径
    CustomLog "logs/aming.com-access_log" common
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/data/wwwroot/www.123.com"
    ServerName www.123.com
</VirtualHost>

  • mkdir /data/wwwroot/aming.com   
  • mkdir /data/wwwroot/www.123.com                                #创建网站对应的根目录
  • vim /data/wwwroot/aming.com/index.php                       #在网站对应的根目录下创建php测试文件
  • vim /data/wwwroot/www.123.com/index.php                  #需要先编辑下index.php配置文件
  • /usr/local/apache2/bin/apachectl –t
  • /usr/local/apache2/bin/apachectl graceful
  • curl -x127.0.0.1:80 aming.com                                       #会去访问aming.com/index.php
  • curl -x127.0.0.1:80 www.123.com                                  #会去访问www.123.com/index.php

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值