热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

5月28日

11.14-11.15Apache和PHP结合Apache和PHP结合配置httpd支持php1.修改配置文件httpd.conf路径:vimusrlocalapache2.4co
11.14-11.15 Apache和PHP结合

ApachePHP结合

配置httpd支持php

1. 修改配置文件httpd.conf路径:

vim /usr/local/apache2.4/conf/httpd.conf

技术分享图片 

1.1 修改配置一:(允许所有请求访问

1.1.1修改httpd的主配置文件/usr/local/apache2.4/conf/httpd.conf

   搜索ServerName,把#ServerName www.example.com:80前面的#号删除让其生效

启动apache服务不会跳提示。

技术分享图片 

1.1.2 找到如下内容更改:

Require all denied 改为 Require all granted

技术分享图片 

修改目的:是允许所有请求访问,如果不设置该行,则我们访问的时候会报403错误。

 

1.2 修改二:(为了支持PHP,需要增加一行与PHP相关的配置)

找到如下内容, 在该行下面添加一行配置 

AddType application/x-gzip /gz .tgz

添加一行:AddType application/x-httpd-php .php

技术分享图片 

1.3 修改三:(设置默认访问页面index.php

找到如下内容更改

DirectoryIndex index.html 改为  DirectoryIndex index.html index.php

技术分享图片 

2.  临时开关80端口命令:

 iptables -I INPUT -p tcp --dport 80 -j ACCEPT  //添加规则

 iptables -D INPUT -p tcp --dport 80 -j ACCEPT  //删除规则

3. 测试配置文件是否正确,重新加载配置命令:

/usr/local/apache2.4/bin/apachectl -t  //改完配置检查配置语法是否正确,正常显示“Syntax OK

/usr/local/apache2.4/bin/apachectl start //启动服务  

/usr/local/apache2.4/bin/apachectl graceful  //不重启服务的情况下,重新加载配制文件

技术分享图片 

netstat -lntp 查看端口

技术分享图片 

3.1 刚刚启动apache服务时报错:

技术分享图片 

因为装了两个PHP57会有冲突 要做如下修改

/usr/local/apache2.4/conf/httpd.conf中的

LoadModule php5_module modules/libphp5.so注释掉加#

并添加LoadModule php7_module modules/libphp7.so,完美解决

技术分享图片 

4. 测试编辑一个PHP脚本:

vim /usr/local/apache2.4/htodcs/test.php //增加如下内容

echo 123;

?>

服务器验证:curl localhost/test.php

客户端验证:用浏览器打开网址:47.97.163.117/test.php 会在浏览器中显示php的信息。

4.1 解析报错:

技术分享图片 

解决思路:

检查php不能解析的原因:

 查看Apache有没有加载php模块 /usr/local/apache2.4/bin/apachectl -M , 如果没有加载就查看有没有这个文件,如果没有这个文件就加载不了.

         ls /usr/local/apache2.4/modules/libphp5.so;

 如果有这个文件但并没有显示,就检查配置文件里

             vim /usr/local/apache2.4/conf/httpd.conf,有没有加载libphp5.so的配置;

 检查配置文件里有没有加这一行:AddType application/x-httpd-php .php,记得在.php前要加空格;

 检查配置文件里有没有加index.php;

结果:发现以上配置都正常,最后发现是index.html用root用户建的文件,apache权限不够。注:index.html默认权限是644

解决方法:

更改文件权限;chmod 755 /usr/local/apache2.4/htdocs/index.html

5.如果是阿里云看是否开放了80端口

技术分享图片 

 

11.16-11.17 Apache默认虚拟主机

Apachehttpd)默认虚拟主机

一台服务器可以访问多个网站,每个网站都是一个虚拟主机,概念:域名(主机名)、DNS、解析域名、hosts。任何一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机。

1.修改Apache的配置文件:(开启虚拟主机配置生效)

编辑配置文件,搜索httpd-vhost,去掉#号,然后保存配置文件:

vim /usr/local/apache2.4/conf/httpd.conf

技术分享图片 

2. 编辑修改虚拟主机配置文件:

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf  (默认配置如下图)

技术分享图片 

备注:

 每个VirtualHost *:80 代表一个主机,一个主机就是一个网站,虚拟主机配置文件可以定义多个VirtualHost

 在虚拟主机里有一个默认虚拟主机(第一段VirtualHost ),就是无论任何域名解析到这个IP上都会访问这个虚拟主机。当搜索所有配置段,你发现访问的域名没有在配置里面出现,那它就会默认走虚拟主机的配置。

2.1 修改配置如下:

修改后:

  

  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 

 

   

 DocumentRoot "/data/wwwroot/111.com" 

    ServerName 111.com  

   ServerAlias www.example.com    

 ErrorLog "logs/111.com-error_log"     

CustomLog "logs/111.com-access_log" common 

技术分享图片 

2.2 内容定义说明:

 ServerAdmin:指定管理员邮箱,这个没有什么实质作用。

 DocumentRoot:为该虚拟主机站点的根目录,网站的程序就放在这个目录下面。

 ServerName:为网站的域名,不支持写多个

 ServerAlias:为网站的第二域名,只有alias可以写多个域名,用空格分隔。

 Errorlog:为站点的错误日志

 Customlog:为站点的访问日志。

3. 更改完成配置文件后需要在/data目录下创建对应的目录文件

技术分享图片 

4.在相对应的站点根目录下定义一个index.php文件

  vim /data/wwwroot/abc.com/index.php

定义内容如下:

技术分享图片 

vim /data/wwwroot/111.com/index.php

定义内容如下:

技术分享图片 

5. 修改完配置,检查配置文件语法是否正确:

 /usr/local/apache2.4/bin/apschectl -t

技术分享图片 

6. 重新加载配置文件:

/usr/local/apache2.4/bin/apschectl graceful

技术分享图片 

7. 测试结果,可以使用hosts文件里面去做域名解析,或者使用curl -x命令,示例如下

技术分享图片 

7.1 hosts指向:

技术分享图片 

 

技术分享图片 

 

技术分享图片 

总结

 1.在主配置文件中Include conf/extra/httpd-vhosts.conf生效开启了虚拟主机配置文件Vhosts.conf,那主配置其它配置文件DoucmentRootServerName都失效。

2. 虚拟主机配置文件一旦打开,它里面可以定义很多个VirtualHost虚拟机,每一个VirtualHos里面都可以定义DoucmentRootServerNameServerAlias可以写多个(可以有多个域名指向),每个VirtualHost都代表一个站点,都是一个虚拟主机。

 3.在虚拟主机里面有一个比较特殊的,就是默认虚拟主机,所谓默认虚拟主机,若有其它域名也指向该IP,但虚拟主机里面没有配制 该域名,那么 将会访问 第一个虚拟机(默认虚拟机).

 

 



5月28日


推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
author-avatar
kaiping2011
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有