在 CentOS 系统中,要实现 PHP 跨域访问,可以通过修改 PHP 配置文件或者使用 Apache/Nginx 服务器配置来实现。下面分别介绍这两种方法。
方法一:修改 PHP 配置文件
- 打开 PHP 配置文件
php.ini
。通常位于/etc/php.ini
或/etc/php/7.x/apache2/php.ini
(其中 7.x 是 PHP 版本号)。
sudo vi /etc/php.ini
- 在
php.ini
文件中找到以下两行:
;headers.allowed_headers = "Content-Type, X-Requested-With, Accept, Origin, Authorization" ;access.control_allow_origin = "*"
- 取消这两行的注释(删除行首的分号),并将
access.control_allow_origin
的值设置为*
,表示允许所有域名访问。如果需要限制特定域名访问,可以将其替换为相应的域名,例如:
headers.allowed_headers = "Content-Type, X-Requested-With, Accept, Origin, Authorization" access.control_allow_origin = "http://example.com"
-
保存并关闭
php.ini
文件。 -
重启 Apache 或 PHP-FPM 服务使更改生效:
sudo systemctl restart httpd
或者
sudo systemctl restart php-fpm
方法二:使用 Apache/Nginx 服务器配置
如果你使用的是 Apache 服务器,可以通过修改 .htaccess
文件来实现跨域访问。
-
在你的项目根目录下创建或编辑
.htaccess
文件。 -
添加以下内容:
Header set Access-Control-Allow-Origin "*" Header set Access-Control-Allow-Methods "GET, POST, PUT, DELETE, OPTIONS" Header set Access-Control-Allow-Headers "Content-Type, X-Requested-With, Accept, Origin, Authorization"
- 保存并关闭
.htaccess
文件。
如果你使用的是 Nginx 服务器,可以通过修改 Nginx 配置文件来实现跨域访问。
-
打开 Nginx 配置文件,通常位于
/etc/nginx/nginx.conf
或/etc/nginx/sites-available/your_domain.conf
。 -
在
server
块中添加以下内容:
location / { add_header 'Access-Control-Allow-Origin' '*' always; add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS' always; add_header 'Access-Control-Allow-Headers' 'Content-Type, X-Requested-With, Accept, Origin, Authorization' always; }
-
保存并关闭 Nginx 配置文件。
-
重启 Nginx 服务使更改生效:
sudo systemctl restart nginx
现在,你的 PHP 应用应该可以实现跨域访问了。