文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何配置php环境

2023-06-15 04:21

关注

如何配置php环境?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一.nginx实现php动态解析原理

nginx 是一个高性能的http服务器和反向代理服务器。即nginx可以作为一个HTTP服务器进行网站的发布处理,也可以作为一个反向代理服务器进行负载均衡。但需要注意的是:nginx本身并不会对php文件进行解析。对PHP页面的请求将会被nginx交给FastCGI进程监听的IP地址及端口,由php-fpm(第三方的fastcgi进程管理器)作为动态解析服务器处理,最后将处理结果再返回给nginx。即nginx通过反向代理功能将动态请求转向后端php-fpm,从而实现对PHP的解析支持,这就是Nginx实现PHP动态解析的基本原理。

首先需要了解一些概念。(nginx + php-fpm +fastcgi)

补充:反向代理与正向代理的相关知识(简言之,正向代理-代理的是客户端;反向代理-代理的是服务器)

正向代理的用途:
                (1)访问原来无法访问的资源,如Google
                (2) 可以做缓存,加速访问资源
                (3)对客户端访问授权,上网进行认证
                (4)代理可以记录用户访问记录上网行为管理,对外隐藏用户信息)

反向代理的用途:反向代理,"它代理的是服务端",主要用于服务器集群分布式部署的情况下,反向代理隐藏了服务器的信息。
               (1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
               (2)负载均衡,通过反向代理服务器来优化网站的负载

二.nginx实现php动态解析.之如何配置nginx

1.了解nginx配置相关常识 (nginx.conf)

nginx.conf组成及基本配置语法讲解详见另外一篇文章,此处将解析php配置用到的几个语法做一下简单介绍:

2.nginx解析php的配置范例

server {    listen       8000 backlog=4096;    server_name  www.baidu.com localhost;    access_log logs/access.log main;    root   /home/leimengyao/api/app/htdocs;    location / {        index  index.php index.html index.htm;        try_files $uri $uri/ /index.php?$args;    }    location ~ \.php$ {        #fastcgi_pass   127.0.0.1:9000;        fastcgi_pass unix:/home/leimengyao/php7/var/run/php-fpm.sock;        fastcgi_index  index.php;        fastcgi_param  SCRIPT_FILENAME  /home/leimengyao/api/app/htdocs$fastcgi_script_name;        include        fastcgi_params;    }    error_page  404              /404.html;    location = /404.html {        root   /usr/share/nginx/html;    }    # redirect server error pages to the static page /50x.html    #    error_page   500 502 503 504  /50x.html;    location = /50x.html {        root   /usr/share/nginx/html;    }    location ~ /\.ht {        deny  all;    }}

如上配置,当一个http请求到来时,被处理的过程如下:

以http://10.94.120.124:8000/A/B?c=1&d=4为例:

3. Nginx配置.之PHP FastCGI

首先需要了解一些文件。(nginx.conf + fastcgi_params + php-fpm.conf + php.ini)

(https://www.jianshu.com/p/9bae5c49a163)

查看发现配置文件目录在/etc目录,但是加载php.ini显示为none;切换到/etc下目录查看,确实没有php.ini文件。

如何配置php环境

复制php.ini.default为php.ini,再次执行php --ini  查看发现加载php.ini文件成功

如何配置php环境

php -m 查看会列出命令行 PHP Cli 已经安装的扩展。

查看php拓展安装目录命令:   php-config | grep -i extension (http://www.blogdaren.com/post-2520.html)

如何配置php环境

切换到该目录下查看拓展

如何配置php环境

其次了解一些nginx.conf中常用fastcgi配置的含义

其中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;
其中php-fpm.sock是一个文件,由php-fpm生成,类型是srw-rw----.

UNIX Domain Socket可用于两个没有亲缘关系的进程,是目前广泛使用的IPC机制,比如X Window服务器和GUI程序之间就是通过UNIX Domain Socket通讯的.这种通信方式是发生在系统内核里而不会在网络里传播.UNIX Domain Socket和长连接都能避免频繁创建TCP短连接而导致TIME_WAIT连接过多的问题.对于进程间通讯的两个程序,UNIX Domain Socket的流程不会走到TCP那层,直接以文件形式,以stream socket通讯.如果是TCP Socket,则需要走到IP层,对于非同一台服务器上,TCP Socket走的就更多了.

UNIX Domain Socket:
Nginx <=> socket <=> PHP-FPM
TCP Socket(本地回环):
Nginx <=> socket <=> TCP/IP <=> socket <=> PHP-FPM
TCP Socket(Nginx和PHP-FPM位于不同服务器):
Nginx <=> socket <=> TCP/IP <=> 物理层 <=> 路由器 <=> 物理层 <=> TCP/IP <=> socket <=> PHP-FPM

以上配置文件全部修改完成以后,需要进行重启nginx和php-fpm,修改的内容才能生效:

三.nginx实现php动态解析.之配置过程中常见错误

  1. php-fpm需要进行一些配置修改(超时时长:request_slowlog_timeout等   php-fpm 的request_terminate_timeout设置不当导致的502错误)

  2. Nginx-配置误区 (fastcgi_param SCRIPT_FILENAME)

  3. Nginx + Php-fpm 一个神奇的502错误

  4. nginx+php-fpm打开index.php显示空白

  5. php国际化插件安装、debug插件安装(extension  php.ini)

  6. php缓存信息关闭(https://www.cnblogs.com/JohnABC/p/3529786.html   !!开启缓存会引起许多问题,视情况而定)

  7. ?php执行流程:https://www.jianshu.com/p/042c56e08939

四.Mac下配置神器PhpStrom开发环境

https://blog.csdn.net/tfy_2425482491/article/details/79377672

如何配置php环境

如何配置php环境

如何配置php环境

点击debug报如下错误:安装debug扩展

如何配置php环境

php是什么语言

php,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程网行业资讯频道,感谢您对编程网的支持。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯