2012-09-28 111 views
0

我目前正試圖設置一個使用php的推送通知服務器。我有一些代碼,如果我在命令行上運行它的作品。但是,當我通過Web瀏覽器訪問相同的php文件來測試它給我一個權限被拒絕的錯誤。PHP推送通知權限被拒絕IOS

什麼可能導致這一點,我相信它一定是錯誤的Apache,但我不知道是什麼。

編輯: 我相信它是一個SELinix問題,因爲當我嘗試運行腳本時,這些錯誤出現在審計日誌中。

type=AVC msg=audit(1348856835.712:48079): avc: denied { name_connect } for pid=587 comm="httpd" dest=2195 scontext=unconfined_u:system_r:httpd_t:s0 tcontext=system_u:object_r:port_t:s0 tclass=tcp_socket 
type=SYSCALL msg=audit(1348856835.712:48079): arch=40000003 syscall=102 success=no exit=-13 a0=3 a1=bfb8c910 a2=4514ad8 a3=10 items=0 ppid=584 pid=587 auid=0 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) ses=2395 comm="httpd" exe="/usr/sbin/httpd" subj=unconfined_u:system_r:httpd_t:s0 key=(null) 
+0

顯示一些代碼? – Dave

回答

0

這是幾乎可以肯定在沒有足夠的權限做任何PHP腳本應該做的事你的機器在Apache(或個人)用戶的結果。你在談論服務器端的權利?如果是這樣,請刪除這些蘋果和iOS標籤,因爲它們是不相關的。

+0

經過更多的討論後,它似乎可能是一個SELinix問題。 –

0

你的VHOST配置是什麼?您是否允許訪問您的DocRoot目錄?示例配置如下:

<VirtualHost *:80> 
    ServerName your.server.com 
    DocumentRoot /var/www/ 

    <Directory /var/www/> 
     DirectoryIndex index.php 
     AllowOverride All 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 
1

原來,服務器有關閉SELinux布爾httpd_can_network_connect。一旦我把它打開,腳本按預期工作。