laravels 安装与配置

前提条件

1.安装swoole

下载swoole压缩包

cd swoole-src
phpize
./configure
make && sudo make install

~ 最后不要忘了把 swoole.so 放置到php.ini中

2.安装laravel框架

composer create-project --prefer-dist laravel/laravel blog

3.laravel+swoole 配置

文档地址 gitee.com/hhxsv5/laravel-s/blob/ma...
a.通过Composer安装(packagist)。

composer require "hhxsv5/laravel-s:~3.7.0" -vvv
# 确保你的composer.lock文件是在版本控制中

b.注册Service Provider Laravel: 修改文件config/app.php

'providers' => [
//...
Hhxsv5\LaravelS\Illuminate\LaravelSServiceProvider::class,
],

c. 执行

php artisan laravels publish

4. 配置nginx监听

upstream api-swoole {
        # 通过 IP:Port 连接
        server 0.0.0.0:5201 weight=5 max_fails=3 fail_timeout=30s;
        keepalive 16;
    }
server {
    listen       80;
    server_name  api.xxx.cn;
    root   /www/api.xxx.cn/public;
    access_log /www/log/nginx/$server_name.access.log;
    autoindex off;
    index  index.php index.html index.htm;

    location / {
       try_files $uri @laravels;
    }
    location @laravels {
        # proxy_connect_timeout 60s;
        # proxy_send_timeout 60s;
        # proxy_read_timeout 120s;
        proxy_http_version 1.1;
        proxy_set_header Connection "";
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        # “http://api-swoole”是指upstream
        proxy_pass http://api-swoole;
    }
    # 下面websocket 用不到可直接删除
    location =/ws {
        # proxy_connect_timeout 60s;
        # proxy_send_timeout 60s;
        # proxy_read_timeout:如果60秒内被代理的服务器没有响应数据给Nginx,那么Nginx会关闭当前连接;同时,Swoole的心跳设置也会影响连接的关闭
        # proxy_read_timeout 60s;
        proxy_http_version 1.1;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-PORT $remote_port;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_set_header Scheme $scheme;
        proxy_set_header Server-Protocol $server_protocol;
        proxy_set_header Server-Name $server_name;
        proxy_set_header Server-Addr $server_addr;
        proxy_set_header Server-Port $server_port;
        proxy_set_header Upgrade $http_upgrade;
        #proxy_set_header Connection $connection_upgrade;
        proxy_pass http://api-novel-swoole;
    }
}

~ 配置完成后可 执行nginx检查命令 nginx -t 这个命令根据自己的服务器配置 有些是usr/local/nginx/sbin nginx -t 等等

laravels 初次使用

~ 表示nginx配置没问题

5 配置config/laravels.php 监听执行port和ip

'listen_port' => env('LARAVELS_LISTEN_PORT', 5201),//此端口号与nginx配置一致
'listen_ip' => env('LARAVELS_LISTEN_IP', '0.0.0.0'),//0.0.0.0 代表任意IP

6.基本上就OK了

执行 php bin/laravels start显示

laravels 初次使用

supervisor设置进程守护

1.安装

yum install Supervisor

2.启动服务

supervisord -c /etc/supervisord.conf

进入 cd /etc 目录 找到supervisord.conf 配置文件 和 supervisord.d 文件夹,使用vim编辑supervisord.conf文件,拉到最底部我们可以看到

files = supervisord.d/*.ini 这句代码说明它会加载supervisord.d文件夹中的所有.ini配置文件

  • 我们可以 创建一个文件夹 专门管理第三步的编辑 也可以选择默认

3.编辑配置文件

随后我们在supervosprd.d中创建一个api_novel.ini文件并编辑如下

[program:api-novel]
process_name=%(program_name)s_%(process_num)02d
directory=/www/api.xxx.cn 这是你的项目路径
command=/usr/local/php/bin/php bin/laravels start -i
numprocs=1
autostart=true
autorestart=true
startretries=3
user=root
redirect_stderr=true
stdout_logfile=/www/api.xxx.cn/storage/logs/swoole/success.log //日志写入
stderr_logfile=/www/api.xxx.cn/storage/logs/swoole/error.log

4.执行

supervisorctl reload  //重新加载配置文件
supervisorctl update //更新配置文件

5.执行 php bin/laravels start

laravels 初次使用
说明已经有进程在跑 更说明我们配置成功了

本地更新代码推送后 线上代码不实时更新问题 (修改代码后自动Reload)

1.下载 inotify

下载地址 pecl.php.net/package/inotify

2 安装

copy到我们的云服务器上

laravels 初次使用

tar -zxvf inotify-3.0.0.tgz 解压
cd inotify-3.0.0 进入解压后的目录
./configure --prefix=/usr/local/inotify 配置
make && make install 安装

添加拓展到php.ini inotify.so路径根据自己 一般安装成功后最下面会显示出来文件路径
extension = /usr/local/php/lib/php/extensions/no-debug-non-zts-20200930/inotify.so

end 只要一步一步来 都没啥问题

laravels 初次使用

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 4
UKNOW

请问安装依赖后,实际写业务逻辑,接口,写法需要改变吗?还是要参照 swoole文档的格式去写?

3年前 评论
wml_macho (楼主) 3年前

应该不用 supervisor 守护

3年前 评论

总是报跨域错误。加了跨域中间件也没用

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!