FastD+Nginx应用部署入门

本章节案例使用 fastd-demo 作为演示参考。

PHP 的好处就是快速,框架本身也没有摒弃这种理念,玩的就是高效。

环境:

  • ubuntu/centos
  • nginx/openresty
  • php7.1
  • fastd 3.2
  • swoole 1.9.x
  • redis 3.x
  • mysql 5.6

安装 demo(该demo与框架无差异,仅仅是多了演示代码)。

$ composer create-project fastd/fastd-demo .

推荐使用 openresty

框架的网站目录为: web,在nginx配置的时候需求注意调整。

server  
{
    listen     {server port};
    index index.php;
    server_name {server name};
    root /path/to/dobee/web;
    location / {
        try_files $uri $uri/ /index.php$is_args$args;
    }
    location ~ \.php {
        fastcgi_pass 127.0.0.1:9000; #php fpm 的默认地址
        fastcgi_split_path_info ^(.+\.php)(/.*)$;
        include       fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}

然后可以访问对应监听的 server_name。

{
    "msg": "welcome fastd"
}

如果按照我一向的开发习惯,我会使用php内置web server进行调试,开发。

$ php -S localhost:9876 -t web/

框架已经成功安装并运行,您可以按照您的业务场景,需求进行定制开发处理。

现在 swoole 应该算是 PHP 入门的必备的一项技能,我建议可以多点使用swoole,多点应用到业务中,当然最好结合当前业务形态去做。

fastd 框架是默认支持 swoole 的,并且在开发上与普通fpm模式并无差异,直接启动 swoole 引擎

$ php bin/server start

服务器通常都需要后台运行,请加上 -d 选项。

可能有部分朋友对于 swoole 还有所保留,你是对的,但是可以大胆尝试,毕竟现在已经非常稳定。

在此,我并不推荐使用 swoole 去直接代替 nginx,因为如果用 swoole 去做前置服务器,倒不如前置一层 nginx,作为前置web server,这样做可以更好地负载后端服务器,而且基于nginx的成熟,周边完善的插件,能够让前置的服务器更加稳定灵活,而且后端服务器一旦进行升级调整,就有可能出现闪断或者停止的情况,所以不建议直接利用 swoole 作为前置服务器。

如果使用 nginx 进行代理,配置也非常简单:

server  
{
    listen     {server port};
    server_name {server name};
    location / {
        proxy_pass http://127.0.0.1:9527; # Swoole Server Listen
    }
}

mysql,redis等标配服务不在展开一一讲解,如果有需求可以查看文档: http://fastdlabs.com/#/zh-cn/3.2/basic/2-1-configuration