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

第一种思路是从全局层面搞定CORS,适合整个站点都需要跨域支持的情况。具体步骤不复杂:
先找到PHP的配置文件。通常叫php.ini,但具体路径取决于PHP版本和Web服务器。比如用Apache和PHP 7.4,可以这样打开:
sudo nano /etc/php/7.4/apache2/php.ini
如果是Nginx或者不同PHP版本,路径会略有差异,别硬套。
在文件里找到header("Access-Control-Allow-Origin: *");这一行,把前面的分号去掉,就启用了。当然,*意味着允许所有域名访问,生产环境最好改成具体的域名,比如:
header("Access-Control-Allow-Origin: https://example.com");
如果还需要控制允许的HTTP方法或请求头,可以一并加上:
header("Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Authorization");
保存退出(Ctrl+X,然后Y确认,Enter确认)。
最后别忘了重启Web服务器,让配置生效。Apache用:
sudo systemctl restart apache2
Nginx同理:
sudo systemctl restart nginx
如果只想让特定API端点开放跨域,或者需要更灵活的控制,直接在PHP脚本里设置头信息会更方便。比如在一个控制器或入口文件里写:
注意这里有个细节:对于复杂请求(比如带自定义头或非简单HTTP方法),浏览器会先发一个OPTIONS预检请求。如果脚本里不处理这个请求,直接返回业务逻辑,那跨域就会失败。所以上面代码里专门用了一个if判断,收到OPTIONS就直接退出,让浏览器知道“服务器支持这个跨域配置”。
*,尤其是生产环境。指定具体的域名能有效防止恶意站点盗用你的接口。两种方法各有适用场景:全局配置省心,适合整个站点;脚本内设置灵活,适合微服务或特定接口。根据项目需求选一个就行,别纠结。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8