一次php涉及跨域功能的麻烦及解决方案

一,功能及描述

  1,在后台管理网站(php)admin.xxx.com(以下简称admin),拉取并编辑aaa.xxx.com(php,以下简称aaa)上的图片及文件

  2,file_get_contents、getimageinfo:admin查询aaa上layout.php文件及查询img是否存在

  3,fwrite:admin写入index.php文件到aaa

二,初步方案

  在admin的/data/fs与aaa的/data/aaa/fs运用mount命令挂载到一起,从而实现admin直接写文件到/data/fs后aaa就可在/data/aaa/fs实时更新到文件

三,遇到的麻烦

  1,admin通过执行file_get_contents( 'aaa.xxx.com/layout' )、getimageinfo()时在正式服务器上被配置为禁止了,但是开发服务器上是开放的

  2,admin上传同名文件覆盖到挂载目录后aaa无法实时更新,但是在目录下执行ls或者ll命令后就能更新到

四,解决方案

  1,admin通过执行file_get_contents( '/data/fs/layout.php' )绝对路径的方式来执行后发现layout.php依赖了config.php,mysql.php等文件,依赖文件也需要用绝对路径的方式来引用,发现行不通,

    因为依赖文件在aaa上不在admin上, 解决方案后来更改为采用admin通过ajax的方式访问aaa.xxx.com/layout.php后解决

  2,挂载目录文件无法实时更新的解决方案为上传文件名加上时间戳(bg_img1501535156.jpg)的文件来解决,但是同名文件为什么不更新的问题没查到原因,知道的请告知一下

  

原文地址:https://www.cnblogs.com/gz-fenglang/p/7940954.html