請問先進,我寫的 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;
} ** // 在這裡出錯
**