Different php.ini files (different services, same repo)
lucasromanojf
PROOP

4 months ago

Hello,

How do I set different php.ini files for different services using the same repo?

In our case, we have Laravel apps and we would like to set different max execution times for web and worker/scheduler services.

Is there any variable we can set to point to the ini file path?

Solved$10 Bounty

Pinned Solution

lu4p
FREE

4 months ago

PHP can load additional .ini files from directories specified by PHP_INI_SCAN_DIR. This is an environment variable you can set per service.

Repo layout

/php.ini                      # shared defaults
/php.ini.d/web/overrides.ini   # web-only overrides
/php.ini.d/worker/overrides.ini# worker-only overrides

Example overrides

php.ini.d/web/overrides.ini

max_execution_time = 30

php.ini.d/worker/overrides.ini

max_execution_time = 0

Railway settings (per service)

  • Web service env var: PHP_INI_SCAN_DIR=/app/php.ini.d/web
  • Worker/Scheduler service env var: PHP_INI_SCAN_DIR=/app/php.ini.d/worker

3 Replies

Railway
BOT

4 months ago

This thread has been marked as public for community involvement, as it does not contain any sensitive or personal information. Any further activity in this thread will be visible to everyone.

Status changed to Open Railway 4 months ago


lu4p
FREE

4 months ago

PHP can load additional .ini files from directories specified by PHP_INI_SCAN_DIR. This is an environment variable you can set per service.

Repo layout

/php.ini                      # shared defaults
/php.ini.d/web/overrides.ini   # web-only overrides
/php.ini.d/worker/overrides.ini# worker-only overrides

Example overrides

php.ini.d/web/overrides.ini

max_execution_time = 30

php.ini.d/worker/overrides.ini

max_execution_time = 0

Railway settings (per service)

  • Web service env var: PHP_INI_SCAN_DIR=/app/php.ini.d/web
  • Worker/Scheduler service env var: PHP_INI_SCAN_DIR=/app/php.ini.d/worker

lu4p

PHP can load additional .ini files from directories specified by PHP\_INI\_SCAN\_DIR. This is an environment variable you can set per service. ### **Repo layout** ``` /php.ini # shared defaults /php.ini.d/web/overrides.ini # web-only overrides /php.ini.d/worker/overrides.ini# worker-only overrides ``` ### **Example overrides** php.ini.d/web/overrides.ini ``` max_execution_time = 30 ``` php.ini.d/worker/overrides.ini ``` max_execution_time = 0 ``` ### **Railway settings (per service)** * **Web service** env var: `PHP_INI_SCAN_DIR=/app/php.ini.d/web` * **Worker/Scheduler service** env var: `PHP_INI_SCAN_DIR=/app/php.ini.d/worker`

lucasromanojf
PROOP

4 months ago

cool, thanks!


Status changed to Solved brody 4 months ago


lu4p

PHP can load additional .ini files from directories specified by PHP\_INI\_SCAN\_DIR. This is an environment variable you can set per service. ### **Repo layout** ``` /php.ini # shared defaults /php.ini.d/web/overrides.ini # web-only overrides /php.ini.d/worker/overrides.ini# worker-only overrides ``` ### **Example overrides** php.ini.d/web/overrides.ini ``` max_execution_time = 30 ``` php.ini.d/worker/overrides.ini ``` max_execution_time = 0 ``` ### **Railway settings (per service)** * **Web service** env var: `PHP_INI_SCAN_DIR=/app/php.ini.d/web` * **Worker/Scheduler service** env var: `PHP_INI_SCAN_DIR=/app/php.ini.d/worker`

lucasromanojf
PROOP

4 months ago

It worked but I had to change a bit:

Web service env var:

PHP_INI_SCAN_DIR=:/app/php.ini.d/web

Worker/Scheduler service env var:

PHP_INI_SCAN_DIR=:/app/php.ini.d/worker

(notice the “:” before the “/app…”


Status changed to Awaiting Railway Response Railway 4 months ago


Status changed to Solved lucasromanojf 4 months ago


Welcome!

Sign in to your Railway account to join the conversation.

Loading...