配置php和nginx(php和nginx如何交互)
php和nginx如何交互
一、由于启动用户和nginx工作用户不一致所致
1.1查看nginx的启动用户,发现是nobody,而为是用root启动的
命令:ps aux | grep "nginx: worker process" | awk'{print $1}'
1.2将nginx.config的user改为和启动用户一致,
命令:vi conf/nginx.conf
二、缺少index.html或者index.php文件,就是配置文件中index index.html index.htm这行中的指定的文件。
1. server {
2. listen 80;
3. server_name localhost;
4. index index.php index.html;
5. root /data/www/;
6. }
如果在/data/www/下面没有index.php,index.html的时候,直接文件,会报403 forbidden。
三、权限问题,如果nginx没有web目录的操作权限,也会出现403错误。
解决办法:修改web目录的读写权限,或者是把nginx的启动用户改成目录的所属用户,重启Nginx即可解决
1. chmod -R 777 /data
2. chmod -R 777 /data/www/
四、SELinux设置为开启状态(enabled)的原因。
4.1、查看当前selinux的状态。
1. /usr/sbin/sestatus
4.2、将SELINUX=enforcing 修改为 SELINUX=disabled 状态。
1. vi /etc/selinux/config
2.
3. #SELINUX=enforcing
4. SELINUX=disabled
4.3、重启生效。reboot。
1. reboot
重启php以及nginx
killall php-fpm && php-fpm &
nginx -s reload
nginx连接php
负载均衡是将请求根据后端服务器的实际繁忙程度,发送到比较空闲的一台服务器上 所以每一台后端服务器必须完全一样,拥有相同的代码
php与nginx交互
apache是通过mod_php来解析phpnginx是通过php-fpm(fast-cgi)来解析php1.PHP解释器是否嵌入Web服务器进程内部执行mod_php通过嵌入PHP解释器到Apache进程中,只能与Apache配合使用,而cgi和fast-cgi以独立的进程的形式出现,只要对应的Web服务器实现cgi或者fast-cgi协议,就能够处理PHP请求。
mod_php这种嵌入的方式最大的弊端就是内存占用大,不论是否用到PHP解释器都会将其加载到内存中,典型的就是处理CSS、JS之类的静态文件是完全没有必要加载解释器。我还是比较推荐你去后盾人上面看看里面有很多关于这类php之类的教学讲解视频哦你可以去看看
nginx和php的工作原理
nginx 和php配置都有自己的config 文件,你按照网上的说明去配置就可以,主要是修改。
php和nginx之间是如何工作的
PHP程序需要放在服务器上才能正常运行,一般使用Apache或Nginx等Web服务器作为运行环境。下面介绍PHP程序的运行过程:
1. 客户端(一般是浏览器)向服务器发送HTTP请求。
2. 服务器接收到HTTP请求之后,会调用PHP解释器来解释PHP程序,并将结果发送回给客户端。
3. PHP解释器通过解析HTTP请求,将相应的代码片段(通常是一个PHP文件)加载到内存中,然后执行这些代码并生成HTML响应。
4. 服务器将经过解析的代码的输出作为HTTP响应传回给客户端,客户端将其呈现为网页或其他形式的响应。
总之,PHP程序的运行需要在服务器环境下,由Web服务器调用PHP解释器解析执行代码,并将执行结果发送给客户端浏览器。
本网站文章仅供交流学习 ,不作为商用, 版权归属原作者,部分文章推送时未能及时与原作者取得联系,若来源标注错误或侵犯到您的权益烦请告知,我们将立即删除.