设为首页 收藏本站
查看: 1228|回复: 0

[经验分享] LAMP(4)Apach和php结合、Apache默认虚拟主机

[复制链接]

尚未签到

发表于 2018-11-17 13:33:15 | 显示全部楼层 |阅读模式
  Apach和php结合
   DSC0000.jpg
  
  1.修改apache配置文件
  vim /usr/local/apache2.4/conf/httpd.conf
   DSC0001.jpg
  (1)修改ServerName  把前面注释的#取消
   DSC0002.jpg
  (这里在启动httpd的时候,会提示要定义一个ServerName,若定义了则在启动时就不会再提示)
   DSC0003.jpg
  
  在window浏览器中访问我们的linux机器的ip:
   DSC0004.jpg
  出现这种问题的时候:我们首先排查网络的原因(在window测试)
  第一步:ping 192.168.136.133
  第二步:检查80端口:
  telnet 192.168.136.133 80
  (若无telnet工具,则在 控制面板-->程序-->启动或关闭window功能->选中telnet客户端)
  若出现这种提示:
   DSC0005.jpg
  说明我们根本没有开启80端口 (iptables -nvL可以查看到)
  添加80端口:
  临时添加开启80:iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  添加了以后则可以在浏览器中访问到了
   DSC0006.jpg
  (2)修改Require (不修改的话,在浏览器访问时会出现403错误)
DSC0007.jpg

   DSC0008.jpg (修改了这里就不能在浏览器访问了)
  修改完配置文件后执行命令:
  (1)检查配置文件语法是否正确:
  /usr/local/apache2.4/bin/apachectl -t
   DSC0009.jpg
  重新加载配置文件命令:(即使配置文件修改不成功时也不会杀死我们的进程)
  /usr/local/apache2.4/bin/apachectl graceful
  
  (2)重启apache服务
  /usr/local/apache2.4/bin/apachectl restart
  
  (3)添加一行和php相关的内容(不添加php无法解析)
  AddType application/x-httpd-php .php
   DSC00010.jpg
  
  (4)修改一行索引页语句(加上了index.php时在访问地址时。可以省略地址栏的index.php)
  DirectoryIndex index.html index.php
   DSC00011.jpg
  修改完测试下是否我们的php能正常解析:
  创建一个php测试文本:vi /usr/local/apache2.4/htdocs/1.php
  
  在修改完成以后在浏览器访问:http://192.168.136.133/1.php,出现不能解析,只是出现源代码:
DSC00012.jpg

  检查错误:
  第一步: 查看php5模块是否加载
  /usr/local/apache2.4/bin/apachectl -M
   DSC00013.jpg
  第二步:查看是否有libphp5.so文件:
  ls /usr/local/apache2.4/modules/libphp5.so
DSC00014.jpg

  
  第三步:配置文件是否加了
  AddType application/x-httpd-php .php (.php前面有个空格)
  
  第四步:
   DSC00015.jpg
  是否修改成这样(其实这步不是最重要)
  /usr/local/apache2.4/bin/apachectl -t
  
  (在修改完配置文件后,执行 /usr/local/apache2.4/bin/apachectl -t
  判断配置文件是否修改正确)
  
  (我在实验的时候所有的步骤都正确,但是在访问测试网页的时候,php无法解析
  解决方法:重启php服务: /usr/local/apache2.4/bin/apachectl restart
  
  这样我们的php才是解析成功 的:
   DSC00016.jpg
  
  Apache默认虚拟主机
   DSC00017.jpg
  问题:为什么我们在创建一个php测试文本:vi /usr/local/apache2.4/htdocs/1.php
  把定义的测试网页放在 htdocs下,我们就能在浏览器访问到1.php呢?
  答:原因是: vim /usr/local/apache2.4/conf/httpd.conf
  配置文件中: DSC00018.jpg
  则它 的域名就是上面定义的ServerName
   DSC00019.jpg
  这个就是apache的默认主机,当任意一个域名指向到机器的ip就可以访问到我们机器的站点
  
  
  
  window下hosts的使用:
  
Hosts文件是什么?
  Hosts文件主要作用是定义IP地址和主机名的映射关系,是一个映射IP地址和主机名的规定。可以用文本文件打开!当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,浏览器会立即打开对应网页,如果没有找到,则浏览器会将网址提交DNS服务器进行IP地址解析。这也是提高快速打开网页的方法!
  host路径:C:\Windows\System32\drivers\etc
  在hosts文件定义一个域名让它解析到我们的ip
   DSC00020.jpg
  检测是否域名正确的解析到所指向的ip
  ping 域名  看看显示是不是指向到我们的定义ip中
  (这个是临时的让 定义的域名访问到我们ip服务器上,仅是在DNS未启用时有效)
  
  默认虚拟主机的步骤:(可以定义多个ServerName)
  好处是我们的一台服务器可以跑多个域名,不用局限所有域名都是解析到我们的同一个地方,一个配置文件只能定义到一个ServerName
  1.打开默认虚拟主机
   DSC00021.jpg
  当我们打开了虚拟主机,则 原来httpd.conf这个文件下的
  
  DocumentRoot就不会再生效,原来的ServerName也不会生效。
  
  2.打开虚拟主机配置文件
  vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
   DSC00022.jpg
  (每一组都代表一个主机,一个网站)
  ServerAdmin:服务邮箱(可删除)
  DocumentRoot:定义网站的根目录
  ServerName   :网站域名  (这里只能定义一个)
  ServerAlias  :网站域名别名(别名可多个,都是访问到同一个网站域名,访问内容哦都一样)
  ErrorLog    :错误日志
  CustomLog:访问日志
   DSC00023.jpg
  
  3.创建对应的网站根目录
   DSC00024.jpg
  
  4.在对应的网站根目录创建一个站点
  vim /data/wwwroot/abc.com/index.php
   DSC00025.jpg
  vim /data/wwwroot/111.com/index.php
   DSC00026.jpg
  配置完执行下面两条命令:
  /usr/local/apache2.4/bin/apachectl -t  检查配置文件语法是否正确:
  /usr/local/apache2.4/bin/apachectl graceful  重新加载配置文件命令:(即使配置文件修改不成功时也不会杀死我们的进程)相当重启服务一样
   DSC00027.jpg
  
  测试虚拟主机
   DSC00028.jpg
  此时我们直接ping 指定域名,并无解析访问到我们定义 abc.com在本机上。
  1.编辑 hosts 文件 vim /etc/hosts
  (如: 添加 192.168.136.133:80  abc.com )
  2.使用  命令 curl  (这个命令就是浏览器的地址栏,可在命令行中看到虚拟主机内容))
  curl -x192.168.136.133:80 abc.com
   DSC00029.jpg
  
  
   DSC00030.jpg
  这里可以看出,当我们的一个域名,有定义的别名或无定义过的一个域名,当它在
  解析的时候如果指向到我们服务器的ip,它都会解析到我们的默认虚拟主机
  如果我们在相应的虚拟主机上定义了访问的域名,那么域名在解析ip时就会去访问被定义有该访问域名的虚拟主机。
   DSC00031.jpg
  http://192.168.136.133/index.php
  那么在地址栏中怎么去访问到111.com这台虚拟主机的index.php
  首先要在window下的hosts文件
  增加  记录   192.168.136.133  111.com
  
  
  Apache的用户认证
  (类似访问一个网站时,在显示内容前需要输入用户名密码后成功才显示内容)
  
DSC00032.jpg

  vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把111.com那个虚拟主机编辑成如下内容
  
  DocumentRoot "/data/wwwroot/111.com"
  ServerName 111.com
   //指定认证的目录
  AllowOverride AuthConfig //这个相当于打开认证的开关
  AuthName "111.com user auth" //自定义认证的名字,作用不大,可自定
  AuthType Basic //认证的类型,一般为Basic
  AuthUserFile /data/.htpasswd  //指定密码文件所在位置
  require valid-user //指定需要认证的用户为全部可用用户,就是密码文件定义的用户
  
  
  /usr/local/apache2.4/bin/htpasswd -cm /data/.htpasswd cansheng
  重新加载配置:
  /usr/local/apache2.4/bin/apachectl -t
  /usr/local/apache2.4/bin/apachectl graceful
  绑定hosts,浏览器测试
  curl -x192.168.136.133:80 111.com //状态码为401,则为需用户验证
  curl -x192.168.136.133:80  -ucansheng:123456 111.com //状态码为200,表示正常
  (-ucansheng:123456  表示用户名和密码)
  
  步骤:
  1.vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf //把111.com那个虚拟主机编辑成如下内容
   DSC00033.jpg
  
  2.生成密码文件(/data/.htpasswd),和创建用户和密码:
  /usr/local/apache2.4/bin/htpasswd -c -m /data/.htpasswd cansheng
   DSC00034.jpg
  在增加一个用户(此时不用加 -c ,因为密码文件已创建)
  /usr/local/apache2.4/bin/htpasswd  -m /data/.htpasswd zhangcansheng
   DSC00035.jpg
  
  测试:
  测试前执行:(加载)
  (1)/usr/local/apache2.4/bin/apachectl -t
  (2)/usr/local/apache2.4/bin/apachectl graceful
   DSC00036.jpg
  1.curl -x192.168.136.133:80 111.com
   DSC00037.jpg
  
  
  curl -x192.168.136.133:80 -ucansheng:123456 111.com
   DSC00038.jpg
  
  
  
   DSC00039.jpg
  1.修改配置文件:
   DSC00040.jpg
  2.创建要用户认证的文件:
  vim /data/wwwroot/111.com/admin.php
   DSC00041.jpg
  
  测试前执行:(加载)
  (1)/usr/local/apache2.4/bin/apachectl -t
  (2)/usr/local/apache2.4/bin/apachectl graceful
  
   DSC00042.jpg
  此时访问111.com不用验证了,应为现在针对111.com下的admin.php 才要认证:
   DSC00043.jpg
  
  制定用户名密码:
   DSC00044.jpg
  成功验证登录
  


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-636278-1-1.html 上篇帖子: apache2.2 和 2.4 虚拟主机配置文件 下篇帖子: apache的学习笔记
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表