請問先進,我寫的 PHP程式在連接tcp server時遇到Permission denied,無法透過 socket連上 tcp server,請問該如何解決?是否需要修改或設定 PHP-fpm或是 nginx權限?
問題環境描述:
我的 tcp server 是從一般 user account 帶起來執行的.在 socket_connect 時出現錯誤.請問是否 nginx或 php 權限有需要修改的地方?
查看 nginx.conf:
root        1031       1  0 09:01 ?        00:00:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data    1032    1031  0 09:01 ?        00:00:00 nginx: worker process
www-data    1033    1031  0 09:01 ?        00:00:00 nginx: worker process
calvint+    2277    2263  0 09:06 pts/0    00:00:00 grep --color=auto nginx
php 資料如下:
root         911  0.0  0.7 227544 29168 ?        Ss   09:01   0:00 php-fpm: master process (/etc/php/7.4/fpm/php-fpm.conf)
www-data    1075  0.0  0.2 227992 10920 ?        S    09:01   0:00 php-fpm: pool www
www-data    1076  0.0  0.2 227992 10920 ?        S    09:01   0:00 php-fpm: pool www
calvint+    2695  0.0  0.0   9380   656 pts/0    S+   09:31   0:00 grep --color=auto php
php 相關程式如下:
$socket = socket_create(AF_UNIX, SOCK_STREAM, 0);
if ($socket === false) {
echo "socket_create() failed: reason: "
. socket_strerror(socket_last_error($socket));
return;
}
$result = socket_connect($socket, $SERVER_PATH);
if ($result === false) {
echo "socket_connect() failed: reason: "
.socket_strerror(socket_last_error($socket));
return;
}  ** // 在這裡出錯
**