配置Nginx和php-fpm用Sock套接字连接时,找不到php-fpm.sock的原因

转载:http://www.cnblogs.com/zzyyxxjc/p/4361282.html

php5.3之后的版本,php-fpm.conf里的listen的默认配置是127.0.0.1:9000,就不会生成php-fpm.sock,因此如果需要Nginx里的配置有链接tmp/php-fpm.sock的话,需要将listen的地址配置成和nginx的配置文件一致,同时保证这个路径已经存在,这样在启动./php-fpm的时候,会在对应路径上自动生成php-fpm.sock,例如:

让PHP-FPM使用Unix套接字

默认情况下监听端口 9000 。 另外,也可以使PHP-FPM使用Unix套接字,这避免了TCP的开销。要做到这一点,打开 /etc/php-fpm.d/www.conf…

vi /etc/php-fpm.d/www.conf

… 修改后如下:

[...]
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php5-fpm.sock
[...]

然后重新加载 PHP-FPM:

systemctl restart php-fpm.service

接下来通过你的nginx的配置和所有的虚拟主机和改线 fastcgi_pass 127.0.0.1:9000; to fastcgi_pass unix:/tmp/php5-fpm.sock;,像这样:

vi /etc/nginx/conf.d/default.conf

[...]
    location ~ .php$ {
        root           /usr/share/nginx/html;
        try_files $uri =404;
        fastcgi_pass   unix:/var/run/php-fpm/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
[...]

最后重新加载 nginx:

systemctl restart nginx.service

这样配置好后,就会在/var/run/php-fpm/目录下自动生成一个php5-fpm.sock文件,然后一切OK。

时间: 2024-11-08 09:36:38

配置Nginx和php-fpm用Sock套接字连接时,找不到php-fpm.sock的原因的相关文章

nginx源码分析--监听套接字的创建 套接字的监听 HTTP请求创建连接

作为一个web服务器,那么肯定是有监听套接字的,这个监听套接字是用于接收HTTP请求的,这个监听套接字的创建是根据配置文件的内容来创建的,在nginx.conf文件中有多少个地址就需要创建多少个监听套接字.这里不说各个结构体的构造 只说大体情况! 1).首先在main函数中调用了ngx_init_cycle()函数,在这个函数的最后调用了ngx_open_listening_sockets函数,这个函数负责将创建的监听套接字进行套接字选项的设置(比如非阻塞.接受发送的缓冲区.绑定.监听处理) 2

TCP/IP网络编程 学习笔记_8 --优雅地断开套接字连接

基于TCP的半关闭 TCP中的断开连接过程比建立连接过程更重要,因为建立连接过程一般不会出现什么大的变数,但断开过程就有可能发生预想不到的情况,因此要准确的掌控. 单方面断开连接带来的问题 Linux的close函数和Windows的closesocket函数是完全断开连接.完全断开是指无法传输数据也不能接收数据.因此,一方这样直接断开连接就显得不太优雅了.如:主机A发送完最后的数据后,调用close函数单方断开了连接,那么最终,由主机B传输的,主机A必须接收的确认数据也销毁了(四次握手). 为

Linux/UNIX套接字连接

套接字连接 套接字是一种通信机子.凭借这样的机制.客户/server系统的开发工作既能够在本地单机上进行.也能够夸网络进行. 套接字的创建和使用与管道是有差别的.由于套接字明白地将客户和server区分开来. 套接字连接: 首先,server应用程序用系统调用socket来创建一个套接字,它是系统分配给该server进程的类似文件描写叙述符的资源,它不能与其它进程共享. 接下来.server进程会给套接字起个名字.本地套接字的名字是Linux文件系统中的文件名称,对于网络套接字它的名字是与客户连

PHP Socket(套接字连接)扩展简介和使用方法

PHP socket扩展是基于流行的BSD sockets,实现了和socket通讯功能的底层接口,它可以和客户端一样当做一个socket服务器. 使用这些函数时请注意,虽然他们中有很多和C函数同名的,但声明却很可能不同.未避免混淆,请仔细阅读函数描述. 不熟悉socket编程的可以在Unix手册上找到很多有用的信息,网上也有很多C socket编程方面的教程,简单修改一下就可以应用于PHP socket编程. 第一步:开启socket 到php.ini开启extension=php_socke

VMware报错:无法连接 MKS: 套接字连接尝试次数太多;正在放弃

环境: win10    VMware pro 14   Cent OS 7 问题详情: 报错:无法连接 MKS: 套接字连接尝试次数太多:正在放弃 解决方案: 1.关闭报错的虚拟机 2.打开控制面板->系统和安全->管理工具->服务 3.找到VMware Authorization Service,鼠标右键选择启动,然后就可以看到状态的改变 4.选中后鼠标右键属性中启动类型设置为自动.下次就会自启动 5.重新打开虚拟机,测试 原文地址:https://www.cnblogs.com/s

虚拟机VMware无法打开,提示无法连接MKS:套接字连接次数太多,正在放弃

问题:虚拟机VMware无法打开,提示无法连接MKS:套接字连接次数太多,正在放弃解决方法:我的电脑- 管理- 服务和应用程序- 服务- (右键)启动下面5个服务:Vmware Authorization ServiceVmware DHCP ServiceVmware NAT ServiceVmware USB Arbitration ServiceVmware Workstation Server 原文地址:https://blog.51cto.com/zhaoshilei/2444078

【TCP/IP网络编程】:07优雅地断开套接字连接

本篇文章简单讨论了TCP套接字半关闭的相关知识. 通常来说,TCP建立连接的过程相对稳定,因为此时并未开始进行数据交换:而断开连接的过程由于已发生了数据交换,可能会发生一些预想不到的情况. 单方面断开连接带来的问题 前文所述的内容中,我们直接调用了close函数进行了完全断开连接,这就意味着本端既无法再发送数据,也不能再接收数据了.而如果本端仅仅希望不再发送数据,还能够接收数据的话,直接调用close完全断开连接则显得不够优雅.因此,我们需要一种“只关闭一部分数据交换中使用的流”(Half-cl

监听套接字 连接套接字

摘要:对于服务器编程中最重要的一步等待并接受客户的连接,那么这一步在编程中如何完成,accept函数就是完成这一步的.它从内核中取出已经建立的客户连接,然后把这个已经建立的连接返回给用户程序,此时用户程序就可以与自己的客户进行点到点的通信了. accept函数等待并接受客户请求: #include<sys/socket.h> int accept(int sockfd, struct sockaddr* addr, socklen_t* len) 返回:非负描述字——成功, -1——失败 ac

Nodejs简单的套接字连接不工作

每2秒客户机请求的数据app.get("/query_data"..我是连接到一个特定的IP地址+端口. 连接后,我发送一个字符串到这个地址来接收数据. 这工作得很好,但只有一次. var socket = new net.Socket();app.get("/query_data", function (req, res) {socket.connect(2711, '192.168.1.173', function (err) {if (err) {consol