2018-3-1 Linux学习笔记[疑难]
2018-03-01 18:23
232 查看
11.14/15 Apache和PHP结合
httpd的主配置文件是/usr/local/apache2.4/conf/httpd.confvim /usr/local/apache2.4/conf/httpd.conf #修改以下4个地方
(1)搜索www.example.com:80 ,去掉#
ServerName #ServerName
(2)搜索Require all denied,改为Require all granted
Require all denied
(3)在AddType application/x-gzip .gz .tgz下面加上如下一行
AddType application/x-httpd-php .php #注意php .php中需有一个空格
(4)搜索DirectoryIndex index.html,改为如下:
DirectoryIndex index.html index.php
验证apache是否支持解析PHP(测试PHP脚本)
vim /usr/local/apache2.4/htodcs/test.php //增加如下内容
<?php
echo 123;
?>
在浏览器中输入PHP所在虚拟机IP,如果能顺利打打页面则说明apache支持解析PHP
curl localhost/test.php
遇到PHP解析不了问题的排查方法:
(1)查看apache是否有加载PHP模块
/usr/local/apache2.4/bin/apachectl -M
(2)查看是否有这个PHP模块
ls /usr/local/apache2.4/modules/libphp5.so
(3)检查配置文件里是否有加载PHP模块的语句
vim /usr/local/apache2.4/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
(4)检查配置文件里是否有AddType..的语句
vim /usr/local/apache2.4/conf/httpd.conf
AddType application/x-httpd-php .php
知识点:
/usr/local/apache2.4/bin/apachectl -t #检查配置文件httpd.conf语法是否正确
/usr/local/apache2.4/bin/apachectl graceful #重新加载配置文件(不会重启服务)
/usr/local/apache2.4/bin/apachectl start //启动服务
iptables -I INPUT -p tcp --dport 80 -j ACCEPT #开放80端口
iptables -D INPUT -p tcp --dport 80 -j ACCEPT #关闭80端口
netstat -lntp #查看系统监听的端口
遇到的问题:
1.用命令打开80端口显示成功,但实际并没打开.
解决:用iptables -F 清空规则后能访问,尽管firewall-cmd --query-port=80/tcp查询仍显示no.
注意事项: 测试时要确保httpd服务有开启,可用以下命令先检查下:
ps aux | grep httpd
11.16/17 Apache默认虚拟主机 [疑难]
一台服务器可以有多个网站,每个网站都是一个虚拟主机.概念:域名(主机名)、DNS、解析域名、hosts.
任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机(默认是列表中的第一个).
vim /usr/local/apache2.4/conf/httpd.conf #搜索httpd-vhost,去掉#号
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf #改为如下:
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/abc.com"
ServerName abc.com
ServerAlias www.abc.com www.123.com
ErrorLog "logs/abc.com-error_log"
CustomLog "logs/abc.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "/data/wwwroot/111.com"
ServerName 111.com
ServerAlias www.111.com
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>
mkdir -p /data/wwwroot/abc.com /data/wwwroot/www.111.com
echo "abc.com" > /data/wwwroot/abc.com/index.html #网站默认的主页就是index.html
echo "111.com" > /data/wwwroot/www.111.com/index.html
/usr/local/apache2.4/bin/apachectl –t
/usr/local/apache2.4/bin/apachectl graceful
curl -x127.0.0.1:80 abc.com #这样会去访问abc.com/index.html
curl -x127.0.0.1:80 www.111.com #访问www.111.com
curl -x127.0.0.1:80 www.abc.com #访问www.abc.com
结论:
在主配置文件/usr/local/apache2.4/conf/httpd.conf中把#Include conf/extra/httpd-vhosts.conf中的#去掉后,这时候虚拟主机配置文件就生效了.
![](http://i2.51cto.com/images/blog/201803/01/3c9dc391bdf011e8422c5ebb9e62adf8.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
虚拟主机配置文件一旦生效,那主配置文件中DocumentRoot和ServerName定义的配置就失效了.
![](http://i2.51cto.com/images/blog/201803/01/567e027e1389daae9d408b5fefa64deb.jpg?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
虚拟主机配置文件生效后,在该配置文件中可定义多个<VirtualHost:80></VirtualHost>对,每一对都有
DocumentRoot和ServerName,其中ServerName可以写多个.每一对<VirtualHost:80></VirtualHost>都代表一个站点
,都是一个虚拟主机.其中有一个比较特殊叫默认虚拟主机,所谓默认虚拟主机就是无论任何域名解析到这个IP上,它都会去访问这个默认虚拟主机.
![](http://i2.51cto.com/images/blog/201803/01/c62e80f7cb059e624eaa628733201543.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
相关文章推荐
- Linux学习笔记(二)2015.4.14
- Linux学习笔记 (四)归档和压缩
- linux学习笔记之(二)---文件与文件夹操作
- Linux进程学习笔记(二、创建进程)
- linux学习笔记--常见问题解决方法
- R语言学习笔记之<在Linux上遇到的问题集锦>
- Linux学习笔记一 linux常用命令
- [linux驱动]linux块设备学习笔记(三)——程序设计
- Linux学习笔记03:linux压缩文件与备份还原
- Linux 多线程编程(Pthread 库)学习笔记
- linux 学习笔记四
- Linux学习笔记-----Linux服务管理------RPM服务管理-----独立服务管理
- linux命令学习笔记
- linux学习笔记
- Linux学习笔记_基本命令复习(seq sed awk)
- 【linux学习笔记】linux作业
- Linux运维学习笔记之十八:WEB架构深度优化之PHP
- Unix学习笔记-------目录遍历实例----Linux下判断是否是一个目录还是一个文件的方法
- 01. Tensorflow学习笔记_Linux基础 (补充)
- Linux netfilter 学习笔记 之五 ip层netfilter的table中规则的匹配检查