php+nginx+mysql+ubuntu环境搭建


一、安装

1.更新和安装

   sudo apt-get update

   sudo apt-get install nginx

2.安装结束后,启动nginx

 sudo /etc/init.d/nginx start

3.配置php和mysql

 sudo apt-get install php5-cli php5-cgi mysql-server php5-mysql

CGI:“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。在服务器环境中,为“程序”提供标准的接口,通过这个接口,“程序”可以对服务器与客户端交换的信息做一些事情。“程序”的语言并没有要求。程序对接口进行操作。服务器要支持CGI就要提供CGI中要求的环境变量,或者还有别的。我的理解至此为之。 CLI:“ 命令行界面”(Command Line Interface),可在用户提示符下键入可执行指令的界面。

4.安装fastcgi

sudo apt-get install spawn-fcgi

二、配置Nginx

修改nginx的配置文件,默认文件为/etc/nginx/sites-enabled/default

1. 配置主机名 server_name localhost;

2.修改index的一行,添加index.php

 index index.php index.html index.htm;

3.去掉下面部分的注释用于支持 php 脚本:

location ~ .php$ { ........}

然后重新启动nginx

 sudo /etc/init.d/nginx restart

启动fastcgi

 spawn-fcgi -a 127.0.0.1 -p 9000 -C 10 -u www-data -f /usr/bin/php-cgi

三、测试

在浏览器中输入localhost,返回

    Welcome to nginx!

 文本,说明nginx配置成功。

四、配置解析

在初次安装环境中遇到一系列问题,本想写出解决问题的方法,但是还是觉得明白了配置文件中具体的含义,才能万变不离其宗,更快的找到问题源头:
nginx.conf配置文件
nginx在启动时会加载这个文件来读取需要的配置,

#定义Nginx运行的用户和用户组
user www www;

#nginx进程数,建议设置为等于CPU总核心数。
worker_processes 8;

#全局错误日志定义类型,[ debug | info | notice | warn | error | crit ]
error_log /var/log/nginx/error.log info;

#进程文件
pid /var/run/nginx.pid;

#省略................

HTTP{
       #省略................
       #  nginx会从这两个路径中加载nginx的配置文件。
       #  当需要配置多网站类型时,需要在下面两个文件夹中设置多个配置文件最好在
       #  第二个路径中设置文件
       include /etc/nginx/conf.d/*.conf;
       include /etc/nginx/sites-enabled/*;
   }

/etc/nginx/sites-enabled/中的配置文件

server {
          #定义服务器监听的端口
          listen 80 default_server;
          listen [::]:80 default_server ipv6only=on;

          #主机根目录
          root /usr/share/nginx/html;
          #索引类型
          index index.php index.html index.htm;

          #省略............
          location ~ \.php$ {

                 #fastcgi连接ip:端口
                  fastcgi_pass 127.0.0.1:9000;

                 #php脚本执行路径
                 fastcgi_param  SCRIPT_FILENAME     $document_root$fastcgi_script_name;
                  fastcgi_index index.php;
                  include fastcgi_params;
         }

    }

问题查找顺序:

php安装成功 -> nginx启动 -> fastcgi启动 -> nginx.conf -> /etc/nginx/sites-enabled/配置文件 -> 脚本执行路径 

五、附

FastCGI原理
1、Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)
2、FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。
3、当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
4、FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。
在上述情况中,你可以想象CGI通常有多慢。每一个Web请求PHP都必须重新解析php.ini、重新载入全部扩展并重初始化全部数据结构。使用FastCGI,所有这些都只在进程启动时发生一次。一个额外的好处是,持续数据库连接(Persistent database connection)可以工作。

六、引用

ubuntu+nginx+php+mysql安装配置方法命令

nginx reload总是fail

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值