아치 리눅스에서 PHP (CLI) 및 PHP-FPM에 대한 별도의 구성 파일을 만드는 방법


10

그것은 두 개의 폴더와 우분투 데비안에 가능처럼, PHP (CLI)와 PHP-FPM에 대해 별도의 php.ini 파일을 만들 수 있습니다 /etc/php/7.0/cli/etc/php/7.0/fpm?

conf.d각 서브 시스템에 대한 디렉토리 가있는 독립 모듈을로드 할 수 있다면 멋질 것입니다.

누구든지 별도로 구성 할 수있는 아이디어가 있습니까?

또한 우분투 16.04에서 구성된 것처럼 성공하지 못한 구조를 사용하려고했습니다.

답변:


11

내 문제를 해결하기 위해 몇 가지 조정을 찾았습니다.

먼저 : 별도의 php.ini파일을 로드 하십시오.

arch linux forum의 사용자가 man php페이지 에서 다음을 게시했습니다 .

FILES
   php-cli.ini    The configuration file for the CLI version of PHP.

   php.ini        The standard configuration file will only be used when php-cli.ini cannot be found.

내가 만드는 경우 /etc/php/php-cli.ini파일 만이 파일을로드하지됩니다 /etc/php/php.iniphpCLI 명령. php-fpm여전히로드 중 /etc/php/php.ini입니다.

둘째 : 다른 모듈 구성을로드합니다.

PHP 문서 에서 PHP_INI_SCAN_DIR환경 변수를 찾았습니다 . 따라서 /usr/lib/systemd/system/php-fpm.service파일을 이동 /etc/systemd/system/php-fpm.service하고 서비스 파일에 다음 구성을 추가했습니다.

[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target

[Service]
Type=notify
Environment="PHP_INI_SCAN_DIR=/etc/php/fpm/conf.d" ; <-- I have added this line
PIDFile=/run/php-fpm/php-fpm.pid
ExecStart=/usr/bin/php-fpm --nodaemonize --fpm-config /etc/php/php-fpm.conf
ExecReload=/bin/kill -USR2 $MAINPID

[Install]
WantedBy=multi-user.target

서비스를 다시 시작 / 재로드 한 후 php-fpm은에서 /etc/php/fpm/conf.d또는 더 이상 파일을로드 하지 않습니다 /etc/php/conf.d. 이를 통해 cli와 fpm을 개별적으로 구성 할 수 있습니다.

아마도 이것이 최선의 해결책은 아니지만 사용 사례에 적합합니다. 모두가 더 나은 솔루션을 가지고 있다면 주저하지 말고 답변을 게시하십시오!


1
이 두 번째 접근 방식은 디버깅에 매우 유용합니다. 즉, php-fpm 서비스 및 conf 파일 / 디렉토리의 접미사 사본을 작성하고, 별도의 fpm 구성을 지정하고, 선택적으로 다른 ini를 지정하고 --php-ini, 두 번째에만 xdebug를로드하십시오. 서비스. 물론 두 번째 서비스는 다른 포트 / 소켓에서 실행해야합니다. 나는 세트 Environment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"가에 복사 Xdebug는 하나의 I뿐만 아니라 모든 기본 모듈을로드하도록 콜론을 추가, 내 서비스 파일에 debugger.d디렉토리를.
Walf

3

cli 버전에 대해 항상이 작업을 수행 할 수 있습니다.

php -c / 경로 /to/your/php.ini

그리고 기본값은 php-fpm을 통해 제공되는 것으로 유지하십시오. 또는 더 나은 방법으로 이것을 로그인 스크립트에 추가하십시오

# ~ / .bashrc
# 별칭 및 개인 기능

# PHP 소스 개인 이니
별명 php = 'php -c /path/to/your/php.ini'

# ls를 채색하다
별명 ls = 'ls --color'
...

사용중인 버전을 명시하면 더 좋을 것입니다


좋은 생각이지만 내가 찾고있는 것이 아닙니다. 다른 방법이 없다면 아마도. 감사.
Fiete

글쎄, 어쩌면, 어떤 버전의 php, php-fpm 및 기본 설정 (nginx, apache 등을 사용하고 있는지)을 공유하십시오. php-fpm 설정 방법 아마 거기에서 우리는 도움이 될 수 있습니다
the_architecht
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.