导航:首页 > 编程语言 > nginxphpsock

nginxphpsock

发布时间:2022-11-21 15:28:34

① Nginx+php(FastCGI)高性能服务器怎么搭建呢

Nginx+php(FastCGI)+Memcached+Mysql+APC Nginx高性能web服务器安装 APC模块安装 linux apc 配置安装
参考资料 http://wgkgood.gicp.net问题补充:

不是 主要是网络不收录 他们说经常在网络知道什么的提问题,然后发表一些好文章附带自己的网站,这样会收录快一些,谢谢一楼!谢谢大家的支持!

最佳答案 Nginx+php(FastCGI)+Memcached+Mysql+APC Nginx高性能web服务器安装 APC模块安装 linux apc 配置 fastCGI安装配置3前言*
Nginx+php(FastCGI)+Memcached+Mysql+APC 是目前主流的高性能服务器搭建方式!适合大中型网站,小型站长也可以采用这种组合!

Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多,其中包括国内最大的电子地图MapBar、新浪博客、新浪播客、网易新闻等门户网站频道,六间房、56.com等视频分享网站,Discuz!官方论坛、水木社区等知名论坛,豆瓣、YUPOO相册、海内SNS、迅雷在线等新兴Web 2.0网站,更多的网站都在使用Nginx配置。

【Nginx+php(FastCGI)+Memcached+Mysql+APC Nginx高性能web服务器安装 APC模块安装 linux apc 配置 fastCGI安装配置】

下载所需的安装包:这里采用源码编译安装:本博客集成下载
http://wgkgood.gicp.net/download/nginx-0.7.61.tar.gz
http://wgkgood.gicp.net/download/pcre-8.01.tar.gz
http://wgkgood.gicp.net/download/memcache-2.2.5.tgz
http://wgkgood.gicp.net/download/libevent-1.4.12-stable.tar.gz
http://wgkgood.gicp.net/download/APC-3.1.4.tgz

下载到 /usr/src下

另外还有两个包mysql-5.1.41.tar.gz、php-5.3.5.tar.gz 【其他相似版本也可以!】可以在官网下载。

一、正式安装Nginx、【安装nginx之前需要安装pcre包和zlib以支持重写,正则以及网页压缩等等】

(1)首先安装pcre:

cd /usr/src &&tar xzf pcre-8.01.tar.gz &&cd pcre-8.01 && ./configure –prefix=/usr/local/pcre &&make &&make install

(2)、然后再安装nginx :

useradd www && cd /usr/src && tar xzf nginx-0.7.61.tar.gz &&cd nginx-0.7.61 && ./configure –prefix=/usr/local/nginx –with-http_stub_status_mole –with-openssl=/usr/ –with-pcre=/usr/src/pcre-8.01 –user=www –group=www &&make &&make install

【nginx注意* –with-pcre=/usr/src/pcre-8.01指向的是源码包解压的路径,而不是安装的路径,否则会报

make[1]: *** [/usr/local/pcre/Makefile] Error 127 错误】
二、接下来安装mysql

cd /usr/src && tar xzf mysql-5.1.41.tar.gz && cd mysql-5.1.41 && ./configure –prefix=/usr/local/mysql/ –enable-assembler –with-extra-charsets=complex –enable-thread-safe-client –with-big-tables –with-readline –with-ssl –with-embedded-server –enable-local-infile –with-plugins=innobase && make &&make install

(2)、mysql安装完毕,创建mysql用户和组并初始化数据库,并启动数据库。

cd /usr/local/mysql && useradd mysql && chown -R mysql:mysql /usr/local/mysql && /usr/local/mysql/bin/mysql_install_db –user=mysql && chown -R mysql:mysql var/ && ./bin/mysqld_safe –user=mysql &

即可。【如果mysql启动报错,请检查 /usr/local/mysql/var 目录,mysql是否有权限】

三、安装 php :

cd /usr/src &&tar xzf php-5.3.5.tar.gz && cd php-5.3.5 && ./configure –prefix=/usr/local/php –with-config-file-path=/usr/local/php/etc –with-mysql=/usr/local/mysql –with-mysqli=/u
sr/local/mysql/bin/mysql_config –with-iconv-dir=/usr/local –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-li
bxml-dir=/usr –enable-xml –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –enable-shmop –enable-sysvsem
–enable-inline-optimization –with-curl –with-curlwrappers –enable-mbregex –enable-fpm –enable-sockets && make &&make install

安装完毕!【注意这个参数在此可以不加–enable-fastcgi;其他之前版本需要加上,以上安装根据自己的选择添加,如果报错,根据具体报错找原因】

四、整合Nginx和php(FastCGI)安装完php-5.3.5后支持fastCGI

(1)、配置nginx ,拷贝nginx配置文件:
user www www;

worker_processes 8;

error_log /usr/local/logs/nginx/error.log crit;

pid /usr/local/nginx/nginx.pid;

#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;

events
{
use epoll;
worker_connections 51200;
}

http
{
include mime.types;
default_type application/octet-stream;

#charset gb2312;

server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 8m;

sendfile on;
tcp_nopush on;

keepalive_timeout 60;

tcp_nodelay on;

fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 128k;

gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on;

#limit_zone crawler $binary_remote_addr 10m;

server
{
listen 80;
server_name wgkgood.gicp.net;
index index.php index.htm index.html;
root /usr/webapps/www;

#limit_conn crawler 20;

location ~ .*\.(php|php5)?$
{
#fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fcgi.conf;
}

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

location ~ .*\.(js|css)?$
{
expires 1h;
}

log_format access ‘$remote_addr – $remote_user [$time_local] “$request” ‘
‘$status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” $http_x_forwarded_for’;
access_log /usr/local/logs/nginx/access.log access;
}

}

Nginx配置完毕!启动nginx ;/usr/local/nginx/sbin/nginx 即可,重启nginx命令如下/usr/local/nginx/sbin/nginx –s reload

此配置文件仅供参考,感谢张宴老师!

(2)、配置fcgi.conf文件如下

fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;

fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with –enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;

五、配置php配置文件:

cd /usr/local/php5/etc/ && cp

php-fpm.conf.default php-fpm.conf 然后根据提示修改php-fpm.conf里面的选项。

配置完毕后,启动php-fpm

cp /usr/src/php-5.3.5/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm 然后启动 /etc/init.d/php-fpm start 即可。

六、安装apc配置:

cd /usr/src && tar xzf APC-3.1.4.tgz &&cd APC-3.1.4

/usr/local/php5/bin/phpize 【增加扩展模块】

./configure –enable-apc –enable-apc-mmap –with-php-config=/usr/local/php5/bin/php-config

&&make&& make install

安装完后会生成一个apc.so在/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/里面。

七、安装memcached,使fastcGI支持memcached

首先安装libevent,

cd /usr/src && tar xzf libevent-1.4.12-stable.tar.gz && cd libevent-1.4.12-stable && ./configure –prefix=/usr/local/libevent &&make && make install

然后安装memcached

tar xzf memcache-2.2.5.tar.gz && cd memcache-2.2.5 && /usr/local/php5/bin/phpize && ./configure –prefix=/usr/local/memcached –with-libevent=/usr/local/libevent –with-php-config=/usr/local/php5/bin/php-config &&make &&make install

安装完后,会在/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/里生成一个memcache.so 这个模块:

八、接下来修改php.ini

默认的php.ini在/usr/local/php5/lib/php.ini 你也可以指定:

extension_dir = “./”

修改为

extension_dir=”/usr/local/php5/lib/php/extensions/no-debug-non-zts-20090626〃

把下面这些添加到最后:

extension = apc.so

extension=memcache.so //这里引用缓存模块

[APC]

apc.enabled = 1

apc.shm_segments = 1

apc.shm_size = 64M

apc.optimization = 1

apc.num_files_hint = 0

apc.ttl=7200

apc.user_ttl=7200

apc.gc_ttl = 3600

apc.cache_by_default = on

安装到此已经完成!

重新启动nginx和php-fpm ,用测试页面访问。

此文章仅供参考!有不妥之处欢迎指正!共同学习!

http://wgkgood.gicp.net 本博客采用的nginx+fastcGI+mysql+memcached+apc完美架构整合!

感谢张宴老师

http://blog.s135.com/nginx_php_v6/

② php-fpm 找不到 php-cgi.sock 怎么办

如果php-fpm已经启用了,那么就是你的nginx或者apache是通过使用tcp方式连接php-fpm的

如果要用socket方式连接,就是php-cgi.sock,要修改php-fpm配置文件并且重启
php-fpm配置中有(还有种配置文件时xml格式的,你可以看下参考)
#listen = 127.0.0.1:9000
#找到并改为
listen=/tmp/php-fpm.sock
详细信息可以参考:
http://www.tocus.com.cn/?send=article_show&id=228&class=2
希望对你有帮助

③ 了解PHP-FPM

在服务器上,当我们查看php进程时,全都是php-fpm进程,大家都知道这个就是php的运行环境,那么,它到底是个什么东西呢?

PHP-FPM,就是PHP的FastCGI管理器,用于替换PHP FastCGI的大部分附加功能,在PHP5.3.3后已经成为了PHP的标配。

有小伙伴要问了,FastCGI又是什么鬼?CGI程序又叫做“通用网关接口”,就是让Web服务器和你的应用程序进行交互的一个接口。就像nginx中需要配置的fastcgi_pass,一般我们会使用127.0.0.1:9000或者unix:/tmp/php-cgi.sock来配置这个参数。它的意思就是告诉nginx,过来的请求使用tcp:9000端口的监听程序来处理或者使用unix/socket来处理。它们都是指向的PHP运行程序。

再说得通俗一点,我们运行php脚本用的是

php-fpm就相当于是这个php命令。nginx通过fastcgi_pass来运行php $nginx_root(nginx配置文件中网站根目录root配置)下的index.php。所以,如果你用的是python或者其他什么语言,都可以用它们的cgi程序来让nginx调用。

FastCGI和CGI又有什么不同呢?FastCGI是启动一个socket接口,服务器应用不需要自己去运行php,只需要向这个socket接口提交请求就可以了。

php-fpm在编译php时需要添加--enable-fpm。一些通用的集成安装包如lnmp、phpStudy等都会默认编译并使用php-fpm,毕竟是标配。

上文中说过nginx可以使用127.0.0.1:9000和unix:/tmp/php-cgi.sock这两种方式来调用php-fpm。它们有什么区别呢?

前者,一般带9000端口号的,是tcp形式的调用。也就是php-fpm启动了一个监听进程对9000端口进行监听。它会调起一个tcp/ip服务,nginx在调用的时候会走一次tcp请求流程,也就是3次握手4次挥手,会走到网络七层中的第四层传输层。相对来说这种方式性能会稍差一点,启动php-fpm后使用nestat查看端口中会出现9000端口的占用。

后者,使用的是unix套接字socket服务,通过sock文件来交换信息,性能相对好一些,因为它没有tcp连接过程,也不会有9000端口的占用。

对于高负载大访问量的网站还是推荐使用unix方式,对于普通小网站来说,无所谓使用哪个都可以,tcp方式反而更容易配置和理解,也是php-fpm.conf中默认的监听方式。

php-fpm.conf配置中的listen属性用来配置监听,这里的配置要和nginx中的一致,使用tcp的就监听127.0.0.1:9000,使用unix的就设置成/tmp/php-cgi-56.sock。

以下内容摘自官方文档:

===========

各自媒体平台均可搜索【硬核项目经理】

④ Nginx跟php和mysql数据库怎么连接的

nginx 通过libevent 建立了网络连接池,通过nginx的 fast_cgi配置 (fastcgi_pass ip:port),用tcp 127.0.0.1:9000 方式连接 或者 unix socket unix:///var/run/unix.sock 方式 连接,php 与mysql 通过 php _ mysql* 扩展,实现的tcp连接 (可以持久连接或非持久连接)

⑤ ubuntu nginx可否使用php

能用,具体的1.安装Nginx
apt-get install nginx
2.启动Nginx
service nginx start
3.访问服务器IP
如果看到“Welcome to nginx!”说明安装好了。
4.安装PHP
apt-get install php5-fpm
5.配置Nginx
找到下列代码,去掉相应注释
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php5-fpm.sock;
}希望能帮到你,我还要自己在后盾人平台努力学习呢,一起加油吧😄∠( ᐛ ”∠)_

⑥ 502 Bad Gateway的可能原因,及解决方法

一:可能的原因是php-fpm未开启,查看php-fpm状态,若未开启,开启后重试

开启php-fpm,查看状态

systemctl start php73-php-fpm

systemctl status php73-php-fpm

重新打开网页

第二次遇到502

第二次遇到502,上面的方法试了,但是问题没有解决

感觉有可能是配置问题,最终参照  https://blog.csdn.net/ucmir183/article/details/80240112  的解决方法,解决了

我的配置里面是这样的

location ~* \.php$ {

fastcgi_pass     127.0.0.1:9000;

fastcgi_index     index.php;

include              fastcgi_params;

fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name;

fastcgi_param   SCRIPT_NAME    $fastcgi_script_name;

}

输入命令   netstat -tlnp | grep 9000     并没有监听9000的程序

Nginx和PHP-FPM的进程间通信有两种方式,一种是TCP,一种是UNIX Domain Socket.

其中TCP是IP加端口,可以跨服务器.而UNIX Domain Socket不经过网络,只能用于Nginx跟PHP-FPM都在同一服务器的场景.用哪种取决于你的PHP-FPM配置:

方式1:

php-fpm.conf: listen = 127.0.0.1:9000

nginx.conf: fastcgi_pass 127.0.0.1:9000;

方式2:

php-fpm.conf: listen = /tmp/php-fpm.sock

nginx.conf: fastcgi_pass unix:/tmp/php-fpm.sock;

在配置文件中看了一下,发现初始化时就有一个文件

查阅了自己以前的配置,以前使用php7.2与php7.3时是没有这个文件的

于是把这个文件删除是了一下,重启nginx报错

好奇心驱使,进入文件看了一下

于是进入自己配置的文件中,修改

重启nginx服务器,问题解决

参考地址:https://blog.csdn.net/ucmir183/article/details/80240112

⑦ php-fpm 找不到 php-cgi.sock 怎么办

php-fpm有两种listen方式,一种是通过端口来操作,一种是sock文件。
在nginx的server配置当中,如果设置为fastcgi_pass unix:/tmp/php-cgi.sock的话,有可能会出现502错误,这是以为nginx此项没有找到php-cgi.sock文件或者权限问题导致的,我们也可以改成fastcgi_pass:127.0.0.1:9000来修正这个错误 。
当我们用php-fpm来管理我们的php启动时,按照如下的配置,就会自动生成/tmp/php-cgi.sock文件,然后再访问的话就不回出现502 Gateway错误了。配置如下:
[global]
pid = /var/run/php-fpm.pid
error_log = /var/log/php-fpm.log
log_level = notice
[www]
listen = /tmp/php-cgi.sock
user = www
group = www
pm = dynamic
pm.max_children = 20
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
注:将php.ini里的cgi.fix_pathinfo设置为0,不然会有漏洞~

⑧ linux配置nginx+php,但是无法访问PHP文件,能访问html

nginx调用PHP有sock方式和端口方式

1、确认nginx已经调用了php;
2、先确认你的nginx使用什么方式调用PHP;
3、如果使用端口方式,端口对不对应,如果使用SOCK方式,那么路径对不对;

⑨ nginx 只让php入口文件访问,其他php文件禁止直接访问

你用的系统是微擎吗?

正常来说,除了这两个php文件,和回调用的接口外,其它php都是不能直接访问的,文件头有常量判断,未定义就退出了。

所以你的系统有上传漏洞,应该检查是哪里出了问题,并去修复一下。可以从以下几点着手:

  1. 上传权限仅提供给已登录会员,在上传接口中判断未登录状态的,直接返回错误信息

  2. 上传文件类型限制,如果需要的是图片,严格限制图片类型,并做图片规格检测(gd库就可以处理),不符合的不保存文件

  3. 文件名处理,不要使用客户端上传的文件名保存,而是根据规则 生成一个随机的名字保存

  4. 上传频率限制(根据会员限制),比如,一个小时内限制上传5张,一天限制100张,可以有效防止黑客利用上传接口填充垃圾文件到你的服务器

  5. 如果可行,对上传文件做一个临时机制,如上传的文件先放到临时文件夹,资料保存的时候,把文件处理一下,移动到正常的附件目录。这样就可以定期清理临时文件夹,防止上传后没使用的文件过多占用服务器空间。

    不过这个功能改起来会复杂一点,要处理所有使用到上传功能的接口。

以上几点处理好,被上传可执行文件的问题基本上可以杜绝了

而你的解决方案,是只治标不治本的方案

⑩ 如何正确配置 Nginx 和 PHP

直接贴上代码逐行进行讲解,此处贴出一个能正常启动php脚本的最简nginx vhost配置:

[plain] view plain
server {
listen 8011;
server_name test.cn;
location ~ \.php?.*$ {
root /share/test;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

1、第一个大括号 server{ }:不必多说,代表一个独立的server,

2、listen 8011:代表该server监听8011端口

3、location ~ \.php?.*${
}:代表一个能匹配对应uri的location,用于匹配一类uri,并对所匹配的uri请求做自定义的逻辑、配置。这里的location,匹配了所有带.php的uri请求,例如:http://192.168.244.128:8011/test.php/asdasd
http://192.168.244.128:8011/index.php等

4、root /share/test:请求资源根目录,告诉匹配到该location下的uri到/share/teset文件夹下去寻找同名资源。

5、fastcgi_pass 127.0.0.1:9000:这行开始是本文的重点:这行代码的意思是,将进入到该location内的uri请求看做是cgi程序,并将请求发送到9000端口,交由php-fpm处理。

6、fastcgi_param SCRIPT_FILENAME
$document_root$fastcgi_script_name;
:这行配置意思是:动态添加了一行fastcgi配置,配置内容为SCRIPT_FILENAME,告知管理进程,cgi脚本名称。由于我的nginx中只有fastcgi_params文件,没有fastcgi.conf文件,所以要使php-fpm知道SCRIPT_FILENAME的具体值,就必须要动态的添加这行配置。

7、include fastcgi_params; 引入fastcgi配置文件

以上就是最简洁版的nginx启动php脚本的最简配置,当重启nginx之后,在/share/test目录下创建一个xx.php文件,输入<?php
echo "hello world"; ?>保存,然后在浏览器中访问localhost:8011/xx.php
就可以在网页上显示hello world了。

阅读全文

与nginxphpsock相关的资料

热点内容
怎么把电脑里文件夹挪出来 浏览:693
java流程处理 浏览:683
ftp创建本地文件夹 浏览:659
腰椎第一节压缩 浏览:738
xp去掉加密属性 浏览:117
2345怎么压缩文件 浏览:982
迷你夺宝新算法 浏览:407
服务器如何防止木马控制 浏览:715
压缩空气用电磁阀 浏览:742
微信为什么不能设置加密认证 浏览:672
邓伦参加密室逃脱视频 浏览:391
音频压缩编码标准 浏览:300
常提到的app是表示什么 浏览:261
天津程序员传销 浏览:349
下班之后的程序员 浏览:73
检测支持ssl加密算法 浏览:344
衢州发布新闻什么APP 浏览:85
中国移动长沙dns服务器地址 浏览:252
wifi密码加密了怎么破解吗 浏览:599
linux命令cpu使用率 浏览:70