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

[经验分享] 四十、Apache和PHP结合、Apache默认虚拟主机

[复制链接]

尚未签到

发表于 2018-11-17 12:53:32 | 显示全部楼层 |阅读模式
  一、Apache和PHP结合(配置httpd支持PHP)
  httpd主配置文件:/usr/local/apache2.4/conf/httpd.conf
  # vim /usr/local/apache2.4/conf/httpd.conf  修改4个地方
  (一)ServerName
  ServerName www.example.com:80  将这行首的#去掉,打开这个功能。
  LoadModule php5_module        modules/libphp5.so
  #LoadModule php7_module        modules/libphp7.so PHP7注释掉,只能用一个PHP5。
  注释掉ServerName后
  # /usr/local/apache2.4/bin/apachectl start

  AH00558: httpd: Could not>  start时这一段就不会再显示了。
  启动后,ps aux |grep httpd确认进程ok。
  (二) Require all denied
  这行如果不改那浏览器就访问不了你的服务器
  遇到这种情况,排查方法:
  1.先检查IP是否通畅
  2.检查IP的80端口,telnet命令
  telnet 192.168.93.130 80
  如果telnet没打开就用不了这个命令,打开步骤:
  1)进控制面板
  2)进程序,启动或关闭Windows功能
  3)找到Telnet客户端,勾上
  再检查80端口,此时这里是不通的,因为Linux服务器上的80端口没打开。此时需要在iptables里加一条,先临时加一条开启80的规则。
  # iptables -I INPUT -p tcp --dport 80 -j ACCEPT
  80端口通了以后,再检查显示的是空白,代表通畅。
  Ctrl+]退出,再输入quit退出来,也可以直接关掉这个命令提示符窗口再打开。
  默认是没有禁止所有端口的,这条规则加不加都可以telnet通,也可以访问服务器IP。
  再访问服务器就可以成功了,显示It works。
  文件内Require all denied改为Require all granted
  
  AllowOverride none
  Require all granted
  服务器能访问是因为:有这两行指定了Directory,后面的是granted。
  DocumentRoot "/usr/local/apache2.4/htdocs"
  
  Require all granted 这里如果改为了denied,服务器就不允许访问了,显示403错误,Forbidden。正常状态码是200.
  先检查配置文件的语法是否正确:/usr/local/apache2.4/bin/apachectl -t
  如果有错误会显示出来。
  正确显示Syntax OK。
  再重新加载配置文件,不会重启服务:
  # /usr/local/apache2.4/bin/apachectl graceful
  (三)AddType application/x-httpd-php .php
  先找到这两行,在下面再增加一行php的。
  AddType application/x-compress .Z
  AddType application/x-gzip .gz .tgz
  AddType application/x-httpd-php .php
  不加这行,你的php就没法解析。
  (四)DirectoryIndex index.php
  增加索引页:
  
  DirectoryIndex index.htm index.php
  再重新加载# /usr/local/apache2.4/bin/apachectl graceful
  验证Apache是否支持PHP解析:
  # vi /usr/local/apache2.4/htdocs/1.php  写一个PHP脚本测试
  
  然后再浏览器访问192.168.93.130/1.php,能出现图形的界面就表示你的PHP支持解析。
DSC0000.jpg

  DirectoryIndex index.php,如果没加这个索引,访问出来的就是源代码。
  如果PHP解析不了,检查方法:
  1)检查PHP5模块有没有加载:/usr/local/apache2.4/bin/apachectl -M
  2)检查有没有libphp5.so这个文件
  /usr/local/apache2.4/modules/libphp5.so
  3)检查主配置文件里有没有加载libphp5.so和AddType这两行配置。
  /usr/local/apache2.4/conf/httpd.conf
  LoadModule php5_module        modules/libphp5.so
  AddType application/x-httpd-php .php
  4)索引页:DirectoryIndex index.php
  把PHP5改PHP7,在配置文件里把php5.so加#注释,再把php7去掉#,再保存重新加载,访问出来的就是PHP7.1.6了。
  快捷键:Ctrl+r,按了以后输入命令历史里你输入过的命令,就可以搜出来。
  (reverse-i-search)`grace': /usr/local/apache2.4/bin/apachectl graceful
  这个图形加载出来的和# /usr/local/php7/bin/php -i |less出来的基本一致,只是显示方式不同,一个文本,一个图形,实际就是一个东西。
  二、Apache默认虚拟主机
  一台服务器可以访问多个网站,每个网站都是一个虚拟主机。
  概念:域名(主机名)、DNS、解析域名、hosts。
  任何有一个域名解析到这台机器,都可以访问的虚拟主机就是默认虚拟主机。
  之所以能访问到1.php,是因为主配置文件里的这两行指定了它的根目录。
  DocumentRoot "/usr/local/apache2.4/htdocs"
  
  域名就是ServerName www.example.com:80
  DNS还没生效的情况下,就在Windows的hosts修改,临时将域名指向服务器IP。
  Windows下写hosts:
  路径:c/windows/system32/dirvers/etc/hosts
  可以指定IP和域名,格式:IP  域名。
  192.168.93.130 www.abc.com
  Apache的默认虚拟主机:ServerName www.example.com:80(任何域名访问这个IP都会访问到这个站点)
  虚拟主机配置文件:文件内搜索extra,找到这两行,把下面httpd的那行行首的#去掉,代表启用这个配置文件。
  # vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  # Virtual hosts
  Include conf/extra/httpd-vhosts.conf
  虚拟主机配置文件:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf
      每一段这个都代表一台主机
  ServerAdmin webmaster@dummy-host.example.com定义管理员的邮箱,可以不要。
  DocumentRoot "/usr/local/apache2.4/docs/dummy-host.example.com"定义网站的根目录
  ServerName dummy-host.example.com定义域名,只能写一个
  ServerAlias www.dummy-host.example.com定义别名,可写多个
  ErrorLog "logs/dummy-host.example.com-error_log"定义错误日志
  CustomLog "logs/dummy-host.example.com-access_log" common定义访问日志
  
  定义完就是定义完一个网站了。
  常识:一旦虚拟主机配置文件生效了,那默认虚拟主机配置文件里的ServerName www.example.com就会失效了。
  示例:
  
  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
  
  设置完以后创建对应的目录。
  # mkdir /data/wwwroot/
  # mkdir /data/wwwroot/abc.com
  # mkdir /data/wwwroot/111.com
  # vim /data/wwwroot/abc.com/index.php
          可以简写不要这行
  # vim /data/wwwroot/111.com/index.php
  

运维网声明 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-636243-1-1.html 上篇帖子: LAMP环境搭建之apache与php结合 下篇帖子: 11.14-11.17 Apache和PHP结合 ,httpd的默认虚拟主机
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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