Nginx + PHP-FPM重定向到静态PHP文件

Some details about my setup first:

  • I am serving a static webapp (HTML + JS) from default Nginx webroot
  • I have a PHP-FPM server running on localhost:9000
  • The destination file should be /api/webroot/index.php for FPM (always, no need to try_files etc.)
  • I need to forward all /api and /api-debug calls to arrive at localhost:9000, and the /app/webroot/index.php should handle all these requests.

I have the following working Nginx configuration:

upstream fastcgi_backend {
    server localhost:9000;
    keepalive 30;
}

server {
    listen   80;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;

        location ~ ^/(api|api-debug)/ {
            root       /app/webroot;
            index      index.php;
            try_files  $uri /api/index.php$is_args$args;

            location ~ \.php$ {
                fastcgi_pass   fastcgi_backend;

                fastcgi_split_path_info ^(?:\/api\/)(.+\.php)(.*)$;
                fastcgi_param  SCRIPT_FILENAME /app/webroot/$fastcgi_script_name;

                include        fastcgi_params;
            }
        }
    }
}

I just want to make it more simple and efficient, because as I see it now it's a mess. I tried to adjust for example

try_files $uri /api/index.php$is_args$args;

to

try_files $uri /api/webroot/index.php$is_args$args;

and it failed... The only reason that it works is that /api/index.php includes /api/webroot/index.php, but I see it's inefficient.

I found debugging nginx config hard, because it's not easy to test.

Thank you very much for your help in advance!

展开翻译

译文

有关我的设置的一些详细信息:</ p>


  • I 我从默认的Nginx webroot提供静态webapp(HTML + JS)</ li>
  • 我有一个在localhost上运行的PHP-FPM服务器:9000 </ li>
  • 目标文件应该是/ FPM的api / webroot / index.php(总是</ strong>,不需要try_files等。)</ li>
  • 我需要转发所有 / api </ strong>和 / api-debug </ strong>调用到达localhost:9000,而/app/webroot/index.php应该处理所有这些请求。</ li>
    </ ul>

    < p>我有以下工作</ strong> Nginx配置:</ p>

      upstream fastcgi_backend {
    server localhost:9000;
    keepalive 30;
    } \ n
    server {
    listen 80;

    location / {
    root / usr / share / nginx / html;
    index index.html index.htm;

    location~ ^ /(api | api -debug)/ {
    root / app / webroot;
    index index.php;
    try_files $ uri / api / in dex.php $ is_args $ args;

    位置〜\ .php $ {
    fastcgi_pass fastcgi_backend;

    fastcgi_split_path_info ^(?:\ / api \ /)(。+ \。php)(。*) $;
    fastcgi_param SCRIPT_FILENAME / app / webroot / $ fastcgi_script_name;

    包括fastcgi_params;
    }
    }
    }
    }
    </ code> </ pre>

    我只是想让它变得更简单和有效,因为我现在看到它是一团糟。
    我试图调整例如</ p>


    try_files $ uri / api / index.php $ is_args $ args; </ p>
    </ blockquote>

    到</ p>


    try_files $ uri / api / webroot / index.php $ is_args $ args; </ p>
    </ blockquote>

    它失败了...唯一的原因是/api/index.php包含/ api / webroot /index.php,但我觉得效率很低。</ p>

    我发现调试nginx配置很难,因为它不容易测试。</ p>

    非常感谢你 非常适合您的帮助!</ p>
    </ div>

dsai1991
dsai1991 好的,我没注意到fastcgi_split_path_info从URI中删除/api/前缀。
接近 2 年之前 回复
dongweng9474
dongweng9474 最终目标是让这个工作:CakePHPdocs具有以下内容:-重写规则仅适用于以/api开头的URL-s-nginx服务器主机上的文件不可用(try_files会失败,我也不会看到任何需要它,只需将所有/api请求传递给localhost:9000/app/webroot/index.php以正确的重写形式)希望我在这里做了一些澄清。谢谢你的帮助!@RichardSmith
接近 2 年之前 回复
dongyun8891
dongyun8891 嗨理查德,谢谢你的回复。这两个文件都存在:/app/index.php和/app/webroot/index.php,其中/app/index.php只是/app/webroot/index.php的include语句。请注意,这些文件位于/app/xxx磁盘上,而不是/api/xxx。/api/只是URL。
接近 2 年之前 回复
duan7664
duan7664 根据您的问题,index.php位于/app/webroot/index.php。但根据您的工作配置文件,URI/api/index.php将解析为/app/webroot/api/index.php的路径名。将webroot添加到URI没有任何意义,你想要实现什么?
接近 2 年之前 回复

1个回答

The simplest solution would be to hardwire SCRIPT_FILENAME with a value of /app/webroot/index.php and remove one of your location blocks altogether.

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;
}

location ~ ^/(api|api-debug)/ {
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME /app/webroot/index.php;
    fastcgi_pass   fastcgi_backend;
}

Alternatively, to keep the flexibility of specifying a URI with a .php extension, you could simplify the configuration with:

location / {
    root   /usr/share/nginx/html;
    index  index.html index.htm;

    rewrite ^/(api|api-debug)/ /index.php last;
}

location ~ \.php$ {
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME /app/webroot$uri;
    fastcgi_pass   fastcgi_backend;
}

展开翻译

译文



最简单的解决方案是使用值 /app/webroot/index.php </ code>对SCRIPT_FILENAME进行硬连线处理, 完全删除一个 location </ code>块。</ p>

  location / {
root / usr / share / nginx / html;
index index.html index.htm;
}

location~ ^ /(api | api-debug)/ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME /app/webroot/index.php;
fastcgi_pass fastcgi_backend;
} \ n </ code> </ pre>


或者,为了保持使用 .php </ code>扩展名指定URI的灵活性,您可以简化 配置:</ p>

  location / {
root / usr / share / nginx / html;
index index.html index.htm;

rewrite ^ /( api | api-debug)/ / index.php last;
}

location~ \ .php $ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME / app / webroot $ uri;
fastcgi_pass fastcgi_backend;
}

</ code> </ pre>
</ div>

dougou5844
dougou5844 如果你有任何@RichardSmith,我也会欣赏一些想法或一些短语来查找! 谢谢
接近 2 年之前 回复
dongtiao2066
dongtiao2066 对不起,我忘了这也应该适用于/ api-debug ...再次感谢你!
接近 2 年之前 回复
dsykx64220
dsykx64220 亲爱的理查德,经过几个小时的调试,我发现了应用程序需要的确切内容。 我之前没有详细注意这一点,因为我在框架附带的预先制作的.htaccess文件中使用了apache。 所以事实证明/ api / some / path / here?sample = querystring应该像这样结束:/app/webroot/index.php/api/some/path/here?sample=querystring,没有其他.php文件 将被处理,所以不需要第二个“位置〜\ .php $”块(我猜?)。 你能帮助我,让它尽可能干净和有效吗? 非常感谢您的慷慨帮助!
接近 2 年之前 回复
duannuochi3549
duannuochi3549 在上面的示例中,不会重写URI,因此所有FastCGI参数都是从原始请求派生的。 此外,root不在范围内,因此包含nginx默认值。 所有这些参数都在fastcgi_params文件中定义,因此您可以根据应用程序的需要覆盖它们,或使用底部示例。
接近 2 年之前 回复
douying9296
douying9296 嗨理查德,对/ api的调用在PHP-FPM上正确结束,但是我有一些重写问题,我粘贴了一个print_r($ _ SERVER); 这里。 你的配置结果在左边,我的工作配置在右边。 我唯一的问题是我不知道它是如何工作的,我不喜欢那样的东西......我应该用fastcgi_param替换所有变量吗? 还是有更清洁的解决方案? 谢谢!
接近 2 年之前 回复
dtu36380
dtu36380 谢谢理查德,我明天再试一次并报告回来!
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
【php-fpm的安装】源码安装php-fpm,最后找不到php-fpm文件
配置make时写明产生php-fpm 但是make all install之后,发现在/usr/local/php/etc/下没有php-fpm.conf.default文件,而且也没有/usr/local/php/sbin/php-fpm,请问该如何处理,在线等,急,谢谢
关闭php-fpm为什么服务端仍然可以执行PHP程序?
centos系统下nginx+php-fpm+php7 配置完之后做测试, 关闭php-fpm之后网页无法打开,但是为什么在服务端(putty)仍然可以执行php程序文件? php-fpm关闭之后PHP文件不是都不能执行吗?
问一下各位大佬,安装php-fpm和nginx不能访问php页面,会自动下载php文件
系统是centos7.安装php-fpm 和 nginx以后,php文件自动下载。安装nginx的时候也安装pcre了。
nginx+PHP利用php-fpm中php_admin_value 设置php变量的问题 【跪求大侠帮助】
nginx+PHP利用php-fpm中php_admin_value 设置php变量,修改后,php.ini配置文件中对应的参数值没有变化。 php_admin_value[post_max_size] = 4M //修改后,php-fpm中post_max_size = 4M。php.ini配置文件的值仍为原值,没有改变。 小弟菜鸟一枚,请大侠们帮忙看看!
nginx php-fpm环境下YIi2中GridView::widget使用后,nginx报错502.
电脑是mac系统 查看nginx error_log 如下 ``` [error] 5945#0: *31 kevent() reported about an closed connection (54: Connection reset by peer) while reading response header from upstream, client: 127.0.0.1, server: , request: "GET /manager/index HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "localhost:8070" ``` 把YIi2中的GridView::widget()注释掉就恢复正常,网上说Connection reset by peer是因为php执行时间过长,然后我也改过那个request_terminate_timeout=10但是并没有用,然后把代码原封不动放到服务器上运行就不报错了。求大佬解答
php-fpm no free scoreboard slot
NGINX+php-fpm 服务器停止服务 错误报告是 ERROR: [pool ] no free scoreboard slot php-fpm配置。 CPU/内存 2核4G -================== [global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log [www] listen = /tmp/php-fcgi.sock user = nobody group = nobody listen.owner = nobody listen.group = nobody pm = static pm.max_children = 200 pm.start_servers = 110 pm.min_spare_servers = 20 pm.max_spare_servers = 200 pm.max_requests = 500 rlimit_files = 1024
nginx+php-fpm 部分图片不显示
csdn上的大神们,我已经没招了。所以特来请教,拜谢。 服务器环境 linux+nginx+php-pm 之前搞过一次大型投票,被攻击后。 有过对ip访问次数限制,访问白名单。 投票结束后相关ip限制,白名单均撤销。 但是有部分客户反馈,用手机打开不显示图片,其他数据均正常。不知道从何下手, 还请各位大神,支支招。关键是手机上不显示,如何调试?而且是部分正常 ,部分不显示 求解决办法,sos
windows下nginx的nginx-push-stream-module插件能使用吗
windows下nginx的nginx-push-stream-module插件能使用吗? 我希望尝试在windows下使用nginx的nginx-push-stream-module插件,实现web后台推送消息到前台
nginx 能够动态重定向吗
首先能看到问题的先说声谢谢大佬 nginx 能够动态重定向吗,比如 这是nginx 里面html目录 |-->html |—> a_file |—>static |-->jquery.js |—>ab_file |—>ab_index.html |—>b_file |—>bb_file 访问路径root —>ab_index.html 原先访问的静态路径是localhost/static/jquery.js 但是这样访问不到静态文件,正确路径是localhost/上级目录/static/jquery.js 所以需要重定向修改静态文件地址localhost/a_file/static/jquery.js 想要动态重定向,a_file或者b_file或者n_file等 localhost/动态/static/jquery.js localhost/b_file/static/jquery.js
安装nginx-rtmp-module后配置的端口1935没有被监听
安装完nginx和nginx-rtmp-module模块 在nginx.conf文件最后添加 rtmp { server { listen 1935; #监听的端口 chunk_size 4000; application hls { #rtmp推流请求路径 live on; hls on; hls_path /home/hls; hls_fragment 5s; } } } 重新启动nginx,没有报错。 输入命令netstat -ntlp 发现1935端口并没有被监听 ![图片说明](https://img-ask.csdn.net/upload/202002/09/1581229261_111218.png) 。 解决:配置完nginx.conf后,重启服务器,再开启nginx ![图片说明](https://img-ask.csdn.net/upload/202002/10/1581301704_356529.jpg)
nginx配置php,可以看到phpinfo,但是解析不了其他的php代码
我在ubuntu上搭建lnmp环境,在配置nginx的时候有个小问题。 在/etc/nginx/sites-available/创建一个test文件 ``` server { listen 9090; #listen [::]:9090; server_name test.com; large_client_header_buffers 4 16k; client_max_body_size 300m; client_body_buffer_size 128k; proxy_connect_timeout 600; proxy_read_timeout 600; proxy_send_timeout 600; proxy_buffer_size 64k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; root /var/www/test; #index index.html index.php; index index.html index.htm index.php; location / { try_files $uri $uri/ =404; } # pass PHP scripts to FastCGI server # location ~ \.php$ { # include snippets/fastcgi-php.conf; # # # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; # # With php-cgi (or other tcp sockets): #fastcgi_pass 127.0.0.1:9090; fastcgi_index index.php; # fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} } ``` 然后在fastcgi_params文件下添加 ``` fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; ``` 访问127.0.0.1:9090/index.php,会报 GET http://127.0.0.1:9090/index.php net::ERR_INCOMPLETE_CHUNKED_ENCODING 200 (OK) 在nginx的error.log日志中有 2020/01/31 17:11:55 [error] 15569#15569: *6 upstream timed out (110: Connection timed out) while reading upstream, client: 127.0.0.1, server: test.com, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "127.0.0.1:9090"
已安装的Nginx追加自带模块始终报错
* Centos7系统下已安装的nginx需要追加http_limit_req_module模块。按照网上的方法,下载了对应版本的源码, 1. 在配置参数后追加--with-http_limit_req_module,出现以下报错 ``` ./configure: error: invalid option "--with-http_limit_req_module" ``` 2. 使用--add-module=http_limit_req_module报找不到config文件 ``` adding module in http_limit_req_module ./configure: error: no http_limit_req_module/config was found ``` 3. 将模块名改成ngx_http_limit_req_module报的也是类似的错误 # 求大神看看应该怎么添加 下面是完整配置参数,nginx版本是1.17.8,--with-http_limit_req_module前的参数是用nginx -V查出来的 ``` ./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --modules-path=/usr/lib64/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-cc-opt='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -pie' --with-http_limit_req_module ```
nginx做转发时,重定向如何处理
A 向 B发送请求,中间经过 nginx做转发, A 发送请求到 nginx,nginx将A的请求转发给B,B返回给nginx Session和重定向的地址,nginx再使用得到的session向重定向地址发送请求,然后再将请求的返回结果返回A,请问这个得怎么实现呀?
nginx配置问题--如何让图片显示出来
背景:用django+nginx开发个人的站点,在写到修改头像时头像已经可以上传到服务器,但无法显示,单独访问也是报404错误,如下: ![图片说明](https://img-ask.csdn.net/upload/202002/18/1582031628_90281.png) 因此应该是nginx的配置出了问题,我的nginx配置如图: ![图片说明](https://img-ask.csdn.net/upload/202002/18/1582031823_698110.png) 在服务器中,/usr/local/nginx/html/firstproject是我项目的根目录, 并且在将项目部署到服务器上时曾使用命令:python manage.py collectstatic 在根目录下生成了一个/static的目录来存放静态文件,并且我注意到在上传文件时图片在/static中并没有出现。 现在想请问大家我应该如何修改我的nginx配置亦或是我的代码需要修改从而使传到nginx上的图片可以显示出来。
php-fpm日志和网站的错误日志,求解读!!错误日志不断增加
php-fpm日志和网站的错误日志响应时间一一对应,能否看出到底是什么错误?网上搜索的那些配置增加响应时间,增加并发等等配置都试过了,都没用,错误日志还是不断的增加。 php-fpm日志 > [16-Jun-2018 08:09:45] WARNING: [pool www] child 14280 exited on signal 7 (SIGBUS) after 11372.904946 seconds from start [16-Jun-2018 08:09:45] NOTICE: [pool www] child 16012 started [16-Jun-2018 08:13:21] WARNING: [pool www] child 15011 exited on signal 7 (SIGBUS) after 6306.948734 seconds from start [16-Jun-2018 08:13:21] NOTICE: [pool www] child 16042 started [16-Jun-2018 08:13:40] WARNING: [pool www] child 15360 exited on signal 7 (SIGBUS) after 3978.144375 seconds from start [16-Jun-2018 08:13:40] NOTICE: [pool www] child 16046 started [16-Jun-2018 08:15:16] WARNING: [pool www] child 15200 exited on signal 7 (SIGBUS) after 5120.345545 seconds from start [16-Jun-2018 08:15:16] NOTICE: [pool www] child 16056 started [16-Jun-2018 08:16:23] WARNING: [pool www] child 15234 exited on signal 7 (SIGBUS) after 4959.731228 seconds from start [16-Jun-2018 08:16:23] NOTICE: [pool www] child 16067 started [16-Jun-2018 08:16:43] WARNING: [pool www] child 15695 exited on signal 7 (SIGBUS) after 1742.269976 seconds from start [16-Jun-2018 08:16:43] NOTICE: [pool www] child 16070 started 网站的错误日志 > 2018/06/16 08:09:45 [error]21214#0: *4091115 recv() failed (104: Connection reset by peer) while reading response header from upstream 2018/06/16 08:13:21 [error]21214#0: *4092932 recv() failed (104: Connection reset by peer) while reading response header from upstream 2018/06/16 08:13:40 [error]21218#0: *4102425 recv() failed (104: Connection reset by peer) while reading response header from upstream 2018/06/16 08:15:16 [error]21221#0: *4108422 recv() failed (104: Connection reset by peer) while reading response header from upstream 2018/06/16 08:16:23 [error]21221#0: *4109464 recv() failed (104: Connection reset by peer) while reading response header from upstream 2018/06/16 08:16:43 [error]21214#0: *4152318 recv() failed (104: Connection reset by peer) while reading response header from upstream
nginx1.17.4下编译安装openssl+nginx-upload-module-2.3.0报错
nginx 版本 1.17.4 使用命令: ./configure --with-pcre=../pcre-8.43 --with-zlib=../zlib-1.2.11 --with-stream --with-http_stub_status_module --add-module=../nginx-upload-module-2.3.0 --with-openssl=../openssl-fips-2.0.16 --with-http_ssl_module make时会报错提示: ![图片说明](https://img-ask.csdn.net/upload/201911/26/1574753562_652830.png)
初学nginx,访问报重定向次数过多
![图片说明](https://img-ask.csdn.net/upload/201907/22/1563791444_636210.jpg) 直接上图吧 ! 这是我的配置,访问ip:/status 是ok的,但是我想访问项目的时候就不行了,报:该网页无法正常运作 ip地址 将您重定向的次数过多。 尝试清除 Cookie. ERR_TOO_MANY_REDIRECTS 这是什么情况啊! 各位大佬 !
PHP编译安装提示bash找不到对应的功能包
安装报错如下提示:但软件包已经安装,不明白为什么会提示bash找不到,PATH也检查没什么问题。 ./configure \ --prefix=/application/php5.3.3 \ --with-mysql=/application/mysql \ --with-iconv-dir=/usr/local/libiconv/ \ --with-freetype-dir \ --with-jpeg-dir \ --with-png-dir \ --with-zlib \ --with-libxml-dir=/usr \ --enable-xml \ --disable-rpath \ --enable-safe-mode \ --enable-bcmath \ --enable-shmop \ --enable-sysvsem \ --enable-inline-optimization \ --with-curl \ --with-curlwrappers \ --enable-mbregex \ --enable-fpm \ --enable-mbstring \ --with-mcrypt \ --with-gd \ --enable-gd-native-ttf \ --with-openssl \ --with-mhash \ --enable-pcntl \ --enable-sockets \ --with-xmlrpc \ --enable-zip \ --enable-soap \ --enable-short-tags \ --enable-zend-multibyte \ --enable-static \ --with-xsl \ --enable-ftp \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ [root@WEB1 php-5.3.27]# --with-freetype-dir \ > --with-jpeg-dir \ > --with-png-dir \ > --with-zlib \ > --with-libxml-dir=/usr \ > --enable-xml \ > --disable-rpath \ -bash: --with-freetype-dir: command not found [root@WEB1 php-5.3.27]# --enable-safe-mode \ -bash: --enable-safe-mode: command not found [root@WEB1 php-5.3.27]# --enable-bcmath \ > --enable-shmop \ > --enable-sysvsem \ -bash: --enable-bcmath: command not found [root@WEB1 php-5.3.27]# --enable-inline-optimization \ -bash: --enable-inline-optimization: command not found [root@WEB1 php-5.3.27]# --with-curl \ > --with-curlwrappers \ -bash: --with-curl: command not found [root@WEB1 php-5.3.27]# --enable-mbregex \ > --enable-fpm \ -bash: --enable-mbregex: command not found [root@WEB1 php-5.3.27]# --enable-mbstring \ > --with-mcrypt \ > --with-gd \ > --enable-gd-native-ttf \ -bash: --enable-mbstring: command not found [root@WEB1 php-5.3.27]# --with-openssl \ > --with-mhash \ > --enable-pcntl \ -bash: --with-openssl: command not found [root@WEB1 php-5.3.27]# --enable-sockets \ -bash: --enable-sockets: command not found [root@WEB1 php-5.3.27]# --with-xmlrpc \ > --enable-zip \ > --enable-soap \ > --enable-short-tags \ -bash: --with-xmlrpc: command not found [root@WEB1 php-5.3.27]# --enable-zend-multibyte \ -bash: --enable-zend-multibyte: command not found [root@WEB1 php-5.3.27]# --enable-static \ > --with-xsl \ > --enable-ftp \ -bash: --enable-static --with-xsl: command not found [root@WEB1 php-5.3.27]# --with-fpm-user=nginx \ -bash: --with-fpm-user=nginx: command not found [root@WEB1 php-5.3.27]# --with-fpm-group=nginx \ 为什么会一直显示bash找不到,求高手赐教。
nginx 配置fastcgi,解析php的问题
nginx的配置里,location部分如下 ![图片说明](https://img-ask.csdn.net/upload/202002/27/1582787442_240605.png) 我在location / 里面,没有配置fastcgi,在下面的 location ~* [^/]\.php(/|$)里配置的fastcgi,但是访问匹配到 / 下的url时,可以正常解析php,搞不清原理,希望看到的大佬帮忙解答,多谢了!
nginx重定向跳转 rewrite规则
http://aa.bb.com/cc/dd/ee/service-center/index.htm?code=xxx 跳转到地址 https://cc.dd.com/ff/fff/service-center/detail.CN.xxx/ 其中xxx是变量,要对应起来 nginx重定向怎么写?
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、PDF搜索网站推荐 对于大部
毕业设计 微信小程序 音乐播放器
大学室友根据网易云的API自己制作的微信小程序,获得校级优秀毕业设计(如果你是大佬请绕行),下面简单介绍一下: 根据多次的使用不同的音乐APP发现,网易云音乐的页面设计最适合作为本微信小程序的页面基础模板。由于本作品是微信小程序,就需要剔除APP中的各种冗余的功能,页面设计也需要尽可能的简单直接,内容也要充实。然后根据以上几点,对应用的功能模块进行大量的分析与重构...
想查看微信好友撤回的消息?Python帮你搞定
要说微信最让人恶心的发明,消息撤回绝对能上榜。 比如你现在正和女朋友用微信聊着天,或者跟自己喜欢的女孩子聊着天,一个不留神,你没注意到对方发的消息就被她及时撤回了,这时你很好奇,好奇她到底发了什么?于是你打算问问她发了什么,结果她回一句"没什么"。这一回复,让你的好奇心更加强烈了,顿时就感觉消息撤回这一功能就是用来折磨人的。 那么有没有什么办法能够知道你心爱的她(他)到底撤回了什么呢?不要着急,P...
程序员必备的8个学习工具
取其精华,去其糟粕
2019年12月中国编程语言排行榜
2019年12月4日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.60% 2 c/c++ 16.58% 3 c# 12.59% 4 javascript 12.21% 5 python 7.96% 6 go 7.19% 7 php ...
拼不过 GO?阿里如何重塑云上的 Java
阿里妹导读:Java 诞生于20年前,拥有大量优秀的企业级框架,践行 OOP 理念,更多体现的是严谨以及在长时间运行条件下的稳定性和高性能。反观如今,在要求快速迭代交付的云场景下,语言的简单性似乎成了首要的要求,而传统的 Java 语言显得有一些过于重量了。今天,阿里 JVM 团队技术专家郁磊(花名:梁希)分享 JVM 团队是如何面对和处理集团巨大的业务规模和复杂的业务场景的。 音乐无国...
Java知识体系最强总结(2020版)
更新于2020-01-05 18:08:00 本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。 整理的Ja
一个“/”键,封锁了整个互联网
正所谓无BUG不生活,从你含辛茹苦地码着第一行代码开始,bug就如影随形。 其实,bug 被自己或者是测试人员发现都是好事;但如果是被用户发现,又或者导致了客户和公司的巨额损失……这些未知后果,就如同悬在头顶的一把利刃,让人脊背发凉…… 但一个小小的bug,可能带给你惊吓,也可能带来惊喜。接下来,我们就来看看 bug 都能带来哪些意想不到的影响呢? 1.来自 Amazon 的圣诞大礼包~ 201...
计算机专业的书普遍都这么贵,你们都是怎么获取资源的?
介绍几个可以下载编程电子书籍的网站。 1.Github Github上编程书资源很多,你可以根据类型和语言去搜索。推荐几个热门的: free-programming-books-zh_CN:58K 星的GitHub,编程语言、WEB、函数、大数据、操作系统、在线课程、数据库相关书籍应有尽有,共有几百本。 Go语言高级编程:涵盖CGO,Go汇编语言,RPC实现,Protobuf插件实现,Web框架实
自学系列 | 就谈兴趣!
最近接到很多读者的私信,基本都是有关方向的选择上以及如何自学上,还有部分读者问到有关前端的方向,能不能详细写写如果从零学习,能够达到找工作的标准。而且这个自学能力是我们一辈子的生存技能,无论干什么,都离开这种能力,这是毋容置疑的。 之前有关自学的文章确实挺零散的,而且还不够详细。所以小鹿打算利用业余时间把如何自学写成一整个系列《如何成为一个优秀的自学者》。写之前呢,希望我们每个人先放下心中的执念...
卸载 x 雷某度!GitHub 标星 1.5w+,从此我只用这款全能高速下载工具!
作者 | Rocky0429 来源 | Python空间 大家好,我是 Rocky0429,一个喜欢在网上收集各种资源的蒟蒻… 网上资源眼花缭乱,下载的方式也同样千奇百怪,比如 BT 下载,磁力链接,网盘资源等等等等,下个资源可真不容易,不一样的方式要用不同的下载软件,因此某比较有名的 x 雷和某度网盘成了我经常使用的工具。 作为一个没有钱的穷鬼,某度网盘几十 kb 的下载速度让我
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前言 很多次小伙伴问到学习方法,我也很想写这样的一篇文章来跟大家讨论下关于学习方法这件事情。 其实学习方法这个事情,我没啥发言权
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了......,这可都是提升你幸福感的高效率生产力工具哦! 走起!...... NO、1 ScreenToGif 屏幕,摄像头和
还看不懂同事代码?快来补一波 Java 7 语法特性
前言 Java 平台自出现到目前为止,已经 20 多个年头了,这 20 多年间 Java 也一直作为最流行的程序设计语言之一,不断面临着其他新兴编程语言的挑战与冲击。Java 语言是一种静态强类型语言,这样的语言特性可以让 Java 编译器在编译阶段发现错误,这对于构建出一个稳定安全且健壮的应用来说,尤为重要。但是也因为这种特性,让 Java 开发似乎变得缺少灵活性,开发某些功能的应用时,代码量可...
为什么TCP建立连接协议是三次握手,而关闭连接却是四次挥手呢?
看到了一道面试题:“为什么TCP建立连接协议是三次握手,而关闭连接却是四次握手呢?为什么不能用两次握手进行连接?”,想想最近也到金三银四了,所以就查阅了相关资料,整理出来了这篇文章,希望对你们有所帮助。 TCP 连接 我们先来补一下基础什么是 TCP 协议?传输控制协议( Transmission Control Protocol, TCP )是种面向连接、确保数据在端到端间可靠传输的协议。面向连...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦......,嗯,我们导员是所有导员中最帅的一个,真的...... 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强......,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧?
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
你知道的越多,你不知道的越多 点赞再看,养成习惯 本文 GitHub https://github.com/JavaFamily 已收录,有一线大厂面试点思维导图,也整理了很多我的文档,欢迎Star和完善,大家面试可以参照考点复习,希望我们一起有点东西。 前前言 为啥今天有个前前言呢? 因为你们的丙丙啊,昨天有牌面了哟,直接被微信官方推荐,知乎推荐,也就仅仅是还行吧(心里乐开花)
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
一文带你看清 HTTP 所有概念
上一篇文章我们大致讲解了一下 HTTP 的基本特征和使用,大家反响很不错,那么本篇文章我们就来深究一下 HTTP 的特性。我们接着上篇文章没有说完的 HTTP 标头继续来介绍(此篇文章会介绍所有标头的概念,但没有深入底层) HTTP 标头 先来回顾一下 HTTP1.1 标头都有哪几种 HTTP 1.1 的标头主要分为四种,通用标头、实体标头、请求标头、响应标头,现在我们来对这几种标头进行介绍 通用
世界上有哪些代码量很少,但很牛逼很经典的算法或项目案例?
点击上方蓝字设为星标下面开始今天的学习~今天分享四个代码量很少,但很牛逼很经典的算法或项目案例。1、no code 项目地址:https://github.com/kelseyhight...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东
破14亿,Python分析我国存在哪些人口危机!
2020年1月17日,国家统计局发布了2019年国民经济报告,报告中指出我国人口突破14亿。 猪哥的朋友圈被14亿人口刷屏,但是很多人并没有看到我国复杂的人口问题:老龄化、男女比例失衡、生育率下降、人口红利下降等。 今天我们就来分析一下我们国家的人口数据吧! 更多有趣分析教程,扫描下方二维码关注vx公号「裸睡的猪」 即可查看! 一、背景 1.人口突破14亿 2020年1月17日,国家统计局发布
Python实战:抓肺炎疫情实时数据,画2019-nCoV疫情地图
今天,群里白垩老师问如何用python画武汉肺炎疫情地图。白垩老师是研究海洋生态与地球生物的学者,国家重点实验室成员,于不惑之年学习python,实为我等学习楷模。先前我并没有关注武汉肺炎的具体数据,也没有画过类似的数据分布图。于是就拿了两个小时,专门研究了一下,遂成此文。
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!
相关热词 c# singleton c#中类的默认值是 c#各种进制之间的转换 c# 正则表达式保留汉字 c#后台跨域 c#基础代码大全 c#指定combox选择 c#关系 mono c# 相差毫秒 用c#做一个简易计算器
立即提问