You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Railway的Nixpacks环境中修改php.ini的upload_max_filesize?

在Railway + Nixpacks环境下修改Laravel的PHP上传限制

先说明你之前尝试的方法无效的原因:

  • ini_set('upload_max_filesize'):该指令属于PHP_INI_PERDIR级别,无法通过运行时函数修改,必须在php.ini或指定扫描目录的配置文件中设置。
  • 直接修改nginx.conf:Nixpacks默认会使用内置的nginx配置,除非你提供自定义配置文件覆盖它,否则你的修改不会生效。
  • PHP_INI_UPLOAD_MAX_FILESIZE环境变量:Nixpacks的PHP构建环境不识别这个特定的环境变量名,所以无法生效。

有效解决方案

方法一:自定义INI文件 + 扫描目录环境变量

  1. 在项目根目录创建php-custom-conf文件夹
  2. 在该文件夹内创建upload-limits.ini文件,写入以下内容:
upload_max_filesize = 100M
post_max_size = 100M ; 必须设置,POST请求总大小不能小于单个文件上传限制
memory_limit = 256M ; 可选,根据业务需求调整,避免大文件上传时内存溢出
  1. 进入Railway项目的「环境变量」页面,添加:
    PHP_INI_SCAN_DIR = /app/php-custom-conf
    
    (Railway构建后项目文件会被挂载到/app目录,因此路径要对应)

方法二:使用.user.ini文件(更简便)

直接在项目根目录创建.user.ini文件,写入和上面相同的配置内容:

upload_max_filesize = 100M
post_max_size = 100M
memory_limit = 256M

PHP会自动读取当前目录下的.user.ini文件(Nixpacks的PHP环境默认启用该特性)。


不要忘记配置Nginx的上传限制

Nginx会先于PHP拦截大文件请求,因此必须同步修改Nginx的配置:

  1. 在项目根目录创建nginx.conf文件,覆盖Nixpacks的默认配置,内容如下:
worker_processes auto;
events {
    worker_connections 1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    client_max_body_size 100M; # 与PHP的上传限制保持一致
    server {
        listen 8080;
        root /app/public;
        index index.php index.html index.htm;
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
        location ~ \.php$ {
            fastcgi_pass unix:/run/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
    }
}

这个配置保留了Laravel所需的路由重写规则,同时添加了Nginx的上传限制。


验证配置是否生效

提交所有修改到Git仓库,触发Railway重新构建后,可通过以下方式验证:
在routes/web.php中临时添加一个路由:

Route::get('/phpinfo', function () {
    phpinfo();
});

访问该路由页面,搜索upload_max_filesize和post_max_size,确认值已改为100M。验证完成后可以删除该路由。

内容的提问来源于stack exchange,提问作者Nil Suria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 21:32:41