系列-PHP+Linux服务器环境搭建:Laravel项目的相关配置

目录

Linux 环境基础安装
Nginx、Redis、Mysql安装
PHP、扩展、composer安装
进程管理工具Supervisor安装
Git、版本管理软件Gogs安装
Laravel项目的相关配置

安装Laravel

# 安装laravel (composer 命令后面加上 -vvv 可以打印出调错信息)
composer -vvv create-project --prefer-dist laravel/laravel com.zxddt.api

安装队列面板

# 安装 horizon
composer require laravel/horizon

# 测试是否能执行
php artisan horizon

安装Octane加速

# 监视文件更改需要安装 chokidar
npm install --save-dev chokidar

# 安装 octane
composer require laravel/octane
php artisan octane:install --server=roadrunner
# php artisan octane:install --server=frankenphp

# 测试是否能执行
php artisan octane:start --host=127.0.0.1 --port=8484 --workers=12 --watch

Nginx配置

vim /etc/nginx/conf.d/com.zxddt.api.conf

server {
    listen 80;
    listen 443 ssl http2;
    server_name  api.zxddt.com;
    root /home/www/com.zxddt.api/public;
    index  index.php index.html index.htm;
    
    if ( $scheme != "https" ) {
        rewrite ^/(.*)$ https://$host/$1 permanent;
        break;
    }
    
    charset utf-8;
    access_log /dev/null;
    error_log  /home/www/logs/nginx.log  warn;
    
    add_header strict-transport-security "max-age=16070400; includeSubDomains";
    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    ssl_certificate   /home/www/cert/com.zxddt.api.pem;
    ssl_certificate_key  /home/www/cert/com.zxddt.api.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location ~ \.(gif|jpg|jpeg|bmp|png|swf|ico|ttf|eot|otf|woff|svg|js|css)$
    {
        access_log off;
        expires 30d;
        break;
    }
    
    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page  404    /404.html;
    location = /404.html {
       root   /usr/share/nginx/html;
    }
    error_page  500 502 503 504  /50x.html;
    location = /50x.html {
       root   /usr/share/nginx/html;
    }
    
    location / {
        # try_files $uri $uri/ /index.php?$query_string;
        try_files $uri $uri/ @octane;
    }

    location ~ \.php$ {
        # 配置 FastCGI 服务地址,可以为 IP:端口,也可以为 Unix socket。
        # fastcgi_pass   unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
    
    location @octane {
          proxy_pass http://127.0.0.1:8484;
          proxy_connect_timeout   300;         #这三个超时时间适量调大点      
          proxy_send_timeout      600;        
          proxy_read_timeout      600;
          proxy_set_header X-Real-IP $remote_addr;    # 获取客户端真实IP
          proxy_set_header X-Real-PORT $remote_port;
          proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;   # 获取代理者的真实ip
          proxy_set_header Host $host;
          proxy_set_header X-Forwarded-Scheme  $scheme;    # 解决getScheme,isSecure,sendRedirect
          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_buffer_size       32k;
          proxy_buffers           32 256k;
          proxy_busy_buffers_size 512k;
          proxy_temp_file_write_size 512k;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

supervisor配置

vim /etc/supervisor/config.d/octane.ini

# 内容如下
[program:octane]
process_name=%(program_name)s_%(process_num)02d
; 进程运行前,会前切换到这个目录
directory=/home/www/com.zxddt.api/
command=php /home/www/com.zxddt.api/artisan octane:start --host=127.0.0.1 --port=8484 --workers=12 --watch
autostart=true
autorestart=true
user=www
redirect_stderr=true
stdout_logfile=/home/www/com.zxddt.api/storage/logs/octane.log

vim /etc/supervisor/config.d/queue.ini

# 内容如下
[program:queue]
process_name=%(program_name)s_%(process_num)02d
command=php /home/www/com.zxddt.api/artisan horizon
autostart=true
autorestart=true
user=www
redirect_stderr=true
stdout_logfile=/home/www/com.zxddt.api/storage/logs/supervisor.log

加载新增的supervisor配置

sudo supervisorctl update

Tips: laravel10+octane(roadrunner)压力测试 传送门

  • 19
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一米没有

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值