PHP использует сетевой порт для подключения к сервису Redis.RedisException: нет такого файла или каталога - PullRequest
0 голосов
/ 04 июля 2019

PHP использует сетевой порт для подключения к сервису Redis.RedisException: нет такого файла или каталога.Я открыл другой redis, но проблем не было.

[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# ps aux | grep redis
root     18378  0.1  0.8 163100 16204 ?        Ssl  10:06   0:04 redis-5.0.5/src/redis-server 127.0.0.1:63306
root     22998  0.0  0.2 142952  5320 ?        Ssl  11:16   0:00 redis-server 127.0.0.1:6379
root     23130  0.0  0.0 112704   976 pts/0    R+   11:18   0:00 grep --color=auto redis
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# redis-cli -p 63306
127.0.0.1:63306> ping
PONG
127.0.0.1:63306> exit
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# redis-cli -p 6379
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> exit
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# redis-server --version
Redis server v=3.2.12 sha=00000000:0 malloc=jemalloc-3.6.0 bits=64 build=7897e7d0e13773f
[root@iZwz96u12ozbs8aqnrwvo9Z Lib]# ../../redis/redis-5.0.5/src/redis-server --version
Redis server v=5.0.5 sha=c956f3fe:0 malloc=jemalloc-5.1.0 bits=64 build=d7a4b6366565957e

Redis на 6379 работает с моим кодом, а другой не работает.

// is bad
try {
    $this->redis = new Redis();
    $this->redis->connect('127.0.0.1', 63306);
} catch (Exception $e) {
    throw new Exception("Redis 连接失败_$e");
}

// is work
try {
    $this->redis = new Redis();
    $this->redis->connect('127.0.0.1', 6379);
} catch (Exception $e) {
    throw new Exception("Redis 连接失败_$e");
}

правильный выводэто:

{"code":0,"status":"成功","data":"xxxxxxxxxxxxxxxxxx"}

ошибка вывода:

PHP Fatal error:  Uncaught Exception: Redis 连接失败_RedisException: No such file or directory in /usr/share/nginx/html/exbook/app/Lib/WeChat.php:23
Stack trace:
#0 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(23): Redis->connect('127.0.0.1', 63306)
#1 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(52): App\Lib\WeChat->__construct()
#2 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(135): App\Lib\WeChat::getWeChat()
#3 {main} in /usr/share/nginx/html/exbook/app/Lib/WeChat.php:25
Stack trace:
#0 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(52): App\Lib\WeChat->__construct()
#1 /usr/share/nginx/html/exbook/app/Lib/WeChat.php(135): App\Lib\WeChat::getWeChat()
#2 {main}
  thrown in /usr/share/nginx/html/exbook/app/Lib/WeChat.php on line 25

1 Ответ

0 голосов
/ 04 июля 2019

Я решил проблему, изменив номер порта.

На моем centos порт redis меньше 20000 и может работать с php. Он сообщит об ошибке на номер порта 20000-30000. Но любой порт, который можно использовать, например 63306, работает с php на моем manjaro.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...