目录
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)压力测试 传送门