免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7469 | 回复: 1
打印 上一主题 下一主题

[其他] 测试webserver的api和网站遇到的问题及解决办法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-09 18:02 |只看该作者 |倒序浏览
本帖最后由 kernel359 于 2013-10-15 10:39 编辑

Web服务器:Tomcat
数据库:mysql

  在linux下,搭了一个webserver,用http://localhost:8080,能出再相应的tomcat页面,并在点击进入services后,能看到写的API
  现在在同一PC上,搭了一个网站,通过这个网站访问webserver,再由webserver访问数据库,并返回结果

现象:
       数据库的数据,也在同一PC上,并能正常访问,但通过 网站--》webserver--》数据库,却没有返回结果,显示的是网站主页

问题:
       有什么方法可以测一下,网站是否成功调用webserver中的API?


不知哪位对此有些了解,望指导一下,先行谢过!!

论坛徽章:
0
2 [报告]
发表于 2013-10-15 10:37 |只看该作者
回复 1# kernel359


    这个问题最后得到了解决,下面是我的总结:


    环境:操作系统为centos6.3,64位的一台PC
    数据库(mysql)、dns服务器(bind9)、webservice(axis2)和网站(php)在同一台机器上,dns用53端口,webservice用8080口,webserver(网站)用80口。


   1、因为要用到这端口,所以要么关闭防火墙sudo service iptables stop,要么在/etc/sysconfig/iptables进行配置,然后重启sudo service iptables restart
     sudo vim /etc/sysconfig/iptables
     ==============================
       -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT //开80口,此处80可改为其它端口号,且tcp也可改为udp
       -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j DROP    //关80口
     ==============================
     sudo service iptables restart


   2、因为dns服务器,要访问数据库,所以必须在dns服务器的/etc/hosts最后一行加上,加上数据库的域名解析
     sudo vim  /etc/hosts
    ===================
     111.111.111.111    database-ip
    ===================

   3、当检查webservice是否正常工作时,有两种办法
       (1)dig @webserviceIP  xxxx   //@必不可少,xxxx为要查的数据,在数据库中,同时还可以加 -t naptr参数,可以查naptr类型的数据,当返回的answer为实际记录的个数时,说明正确
       (2)在浏览器中,http://webserviceip:8080/xxxxx/xxxx这样也可以。因我所有的在同一台pc上,所以必须加上8080,要不然浏览器会访问80口,导致出现的一直是网站主页

   4、用上述方法检查webservice能正常工作,但从网站却不能查询到数据
       我最开始是怀疑网站与webservice之间的问题,因为在网站代码中,传给php代码的url,如http://webserviceIP:8080/xxxx,这样查询不到结果,可把同样的url放到浏览器中(也就是直接用webservice查),能返回正确结果,正因为这样,一直没找到原因
       最后发现是mysql的授权问题,如果把传给php代码中url改为http://localhost:8080/xxxx,这样就能得到正确结果了,因在mysql中相应localhost授权了,而IP没有
      //注:mysql授权不光指用户名,还包括访问时的ip,比如有一台PC,ip为111.111.111.111,则111.111.111.111、127.0.0.1、localhost这三者是不一样的,除非你给他们的授权一样



      除了上述外,还有几点注意的:
      1、关闭selinux
       sudo vim  /etc/selinux/config
      ======================
      SELINUX=disabled
      ======================

      2、配置/etc/php.ini
      sudo vim /etc/php.ini
      ==================
      allow_url_fopen = On //这样才能正确解析php代码中的url,并得到结果
       ……
      allow_url_include = On //这个我也开了,具体用处不知道
      ==================

      3、因为webserver用的是apache,所以html文件夹(所有网站代码)放在/var/www/下
        在/var/www/html中,会有一个.htaccess文件,具体怎么写,以及怎么用,不清楚



      

   以上的是我的个人总结,还有一些不太明白或者可能错误的地方,如果有哪位能批评指正将非常感谢,在此先行谢过!

   希望大家互相交流学习,共同进步!
      

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP