Apache和PHP结合:
虽然我们已经安装了mysql apache php但是我们一直没有把这些服务全部整合到一起组成咱们的LAMP。现在我们就开始:
1. httpd主配置文件:
(一)ServerName
(二)Require all denied
(三)AddType application/x-httpd-php .php
(四)DirectoryIndex index.html index.php
(一)有时候我们在启动apache(httpd)服务的时候,发现有个警告(并不是错误)如何取消呢?
[root@zhdy-02 ~]# /usr/local/apache2.4/bin/apachectl start
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 202.102.110.203. Set the 'ServerName' directive globally to suppress this message
进入编辑httpd:vim /usr/local/apache2.4/conf/httpd.conf
去掉前面的“#”即可!
当我们使用外部主机访问我们配置的httpd,发现如下报错:
- 首先我们先确认下IP是否可以ping通!
- 再次telnet一下站点的80端口.
- 检查服务器内的iptables,要么对所有的80端口的数据包全部放行,要么就禁掉firewall
[root@zhdy-02 ~]# iptables -I INPUT -p tcp --dport 80 -j ACCEPT 放行80端口
然后再次访问!
(二)有时候也会有这种情况:出现 403 forbidden
搜索 /Require,更改Denied 为如下granted
每次配置完成之后建议一定要使用如下命令去检查有没有错误
/usr/local/apache2.4/bin/apachectl -t 可以检查配置文件语法是否错误
显示Syntax即没有问题!! 然后再次加载配置文件!
/usr/local/apache2.4/bin/apachectl graceful =重新加载配置文件并不会重启服务 graceful
(三)因为需要支持PHP所以我们要在配置文件中增加一行与PHP相关的配置:
搜索 /AddType, 增加一行如下,注意点前面的空格!(如果不增加则PHP无法解析)
AddType application/x-httpd-php .php
(四)增加一个索引页面
搜索 /Index, 在原有基础上增加一个index.php
然后再次的检查,加载即可!
为了验证我们的PHP支不支持解析我们需要一个测试页
然后我们编写一个测试页:vim /usr/local/apache2.4/htdocs/1.php
再次输入IP地址例:192.168.209.128 就可以显示一个很规整的PHP页面信息,如果不可以加载,分析如下:
/usr/local/apache2.4/bin/apachectl -M 确认下没有加载PHP模块,如果没有输入如下去查看一下
ls /usr/local/apache2.4/modules/libphp5.so
/usr/local/apache2.4/modules/libphp5.so
如果还是不可以那就检查一下httpd配置文件中有没有加载
vim /usr/local/apache2.4/conf/httpd.conf 里面是否加入了php解析行
小提示:
当我们需要查找一个已经输入的命令的时候,可以尝试 ctrl r 然后输入关键字即可查找!
Apache默认虚拟主机:
Windows系统hosts管理
Windows系统中hosts位置“C:WindowsSystem32driversetchosts”。 用记事本打开该文件:
说明: 在此可以自定义匹配本地IP和域名,目的是添加临时访问地址(在DNS未生效的时候使用)。
添加虚拟主机
在hosts文件中添加“192.168.8.131 www.adai.com”即可将本地虚拟主机添加到Windows系统,访问该域名时会自动解析到本地虚拟主机“ServerName www.example.com:80”。
LinuxApache虚拟主机管理
在物理机访问的域名“www.adai.com”并未在虚拟机Apache配置文件中定义,虚拟机中只定义了“ServerName www.example.com:80”一个域名,该域名即为Apache的默认主机,此时通过任何一个绑定该虚拟机IP的域名进行访问都会跳转到该主机。 因为一台服务器可以跑多个域名,为了方便管理,需要对虚拟主机进行配置
配置虚拟主机
- 编辑Apache配置文件: 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
<VirtualHost *:80> 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/ =创建网站主目录
mkdir /data/wwwroot/abc.com =创建根目录abc.com
mkdir /data/wwwroot/111.com = 创建根目录111.com
mkdir /data/wwwroot/abc.com/index.php = 给对应根目录下面写一个PHP测试文件
mkdir /data/wwwroot/111.com/index.php = 给对应根目录下面写一个PHP测试文件
然后检测php测试文件的语法是否错误,如果没问题那么重启服务。
虚拟主机测试
在此使用浏览器和curl命令分别进行测试。
如果不在虚拟机中进行本地域名配置(hosts),在进行ping命令测试虚拟主机域名时会访问到外网。
如果想在访问“abc.com”时指向到本地虚拟机IP,可以在/etc/hosts文件中指定域名,或者使用curl命令进行访问,如下:
eg:
- curl -x 指定访问IP和端口
注意: 此时访问所有未定义的域名都会将访问地址指向到默认虚拟主机,因为已经自定义添加了虚拟主机,所以此时的默认虚拟主机为配置文件“httpd-vhosts.conf”中的第一个虚拟主机(在此为abc.com),效果如下:
打开虚拟主机文件以后那么http主配置文件失效。
注: 使用浏览器访问本地虚拟主机IP时会将IP指向到默认虚拟主机,即 abc.com。(如果想回到原来的地址那么把虚拟主机配置文件中的#号加上注释掉配置文件即可)