我的服務器上部署了一個API,該服務器現在使用基本身份驗證進行保護。PHP:調用使用基本身份驗證保護的API
我也有一個腳本運行在SAME服務器上,運行的APi需要調用API。
腳本:test.php的
<?php
$url = 'https://my_site.myapi/account/add/{"account_id":"1234555"}
$username = 'myname';
$password = 'mypassword';
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERPWD, $username.":".$password);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
$data = curl_exec($ch);
curl_close($ch);
當我嘗試從瀏覽器中調用test.php的:
https://my_site.myapi/test.php
我提拔了用戶名和密碼。我沒有收到錯誤消息。有任何想法嗎?
虛擬主機節
DocumentRoot /var/www/mysite/web/
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/api_section_1">
Options Indexes MultiViews FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /usr/local/apache/passwd/passwords
</Directory>
Alias /winapi /var/www/another_section/
<Directory "/var/www/another_section">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
AuthType Basic
AuthName "Restricted Access"
AuthUserFile /usr/local/apache/passwd/passwords
</Directory>
@EastsideDeveloper我假設你在做出這些改變後重新啓動了Apache?它是否提示輸入同一目錄中的其他腳本的憑據? – dearlbry
是的,我重新啓動Apache。我刪除了密碼文件並重新創建它。這解決了問題。 – EastsideDeveloper
但是,我最初也有主文檔目錄保護(除了損壞的密碼文件) – EastsideDeveloper