商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > 如何在Ubuntu上配置PHP的跨域资源共享

如何在Ubuntu上配置PHP的跨域资源共享

  发布于2026-07-14 阅读(0)

扫一扫,手机访问

在Ubuntu上配置PHP的跨域资源共享(CORS),说白了就是告诉浏览器:“嘿,这个请求可以放行。”这事儿听着简单,但实际操作中,很多开发者会卡在配置路径或预检请求上。今天咱们就聊两种最常见的做法,你可以根据项目场景灵活选。

如何在Ubuntu上配置PHP的跨域资源共享

方法一:修改PHP配置文件

第一种思路是从全局层面搞定CORS,适合整个站点都需要跨域支持的情况。具体步骤不复杂:

  1. 先找到PHP的配置文件。通常叫php.ini,但具体路径取决于PHP版本和Web服务器。比如用Apache和PHP 7.4,可以这样打开:

    sudo nano /etc/php/7.4/apache2/php.ini

    如果是Nginx或者不同PHP版本,路径会略有差异,别硬套。

  2. 在文件里找到header("Access-Control-Allow-Origin: *");这一行,把前面的分号去掉,就启用了。当然,*意味着允许所有域名访问,生产环境最好改成具体的域名,比如:

    header("Access-Control-Allow-Origin: https://example.com");
  3. 如果还需要控制允许的HTTP方法或请求头,可以一并加上:

    header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
    header("Access-Control-Allow-Headers: Content-Type, Authorization");
  4. 保存退出(Ctrl+X,然后Y确认,Enter确认)。

  5. 最后别忘了重启Web服务器,让配置生效。Apache用:

    sudo systemctl restart apache2

    Nginx同理:

    sudo systemctl restart nginx

方法二:在PHP脚本中设置CORS头

如果只想让特定API端点开放跨域,或者需要更灵活的控制,直接在PHP脚本里设置头信息会更方便。比如在一个控制器或入口文件里写:

注意这里有个细节:对于复杂请求(比如带自定义头或非简单HTTP方法),浏览器会先发一个OPTIONS预检请求。如果脚本里不处理这个请求,直接返回业务逻辑,那跨域就会失败。所以上面代码里专门用了一个if判断,收到OPTIONS就直接退出,让浏览器知道“服务器支持这个跨域配置”。

注意事项

  • 安全第一:别图省事直接用*,尤其是生产环境。指定具体的域名能有效防止恶意站点盗用你的接口。
  • 预检请求别忽略:很多新手踩坑就是因为没处理OPTIONS请求。如果你的API有自定义头或者PUT/DELETE等方法,务必在代码里加上预检请求的处理逻辑。

两种方法各有适用场景:全局配置省心,适合整个站点;脚本内设置灵活,适合微服务或特定接口。根据项目需求选一个就行,别纠结。

本文转载于:https://www.yisu.com/ask/71211065.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注