답변:
내 문제를 해결하기 위해 몇 가지 조정을 찾았습니다.
먼저 : 별도의 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.ini
와 php
CLI 명령. 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을 개별적으로 구성 할 수 있습니다.
아마도 이것이 최선의 해결책은 아니지만 사용 사례에 적합합니다. 모두가 더 나은 솔루션을 가지고 있다면 주저하지 말고 답변을 게시하십시오!
cli 버전에 대해 항상이 작업을 수행 할 수 있습니다.
php -c / 경로 /to/your/php.ini
그리고 기본값은 php-fpm을 통해 제공되는 것으로 유지하십시오. 또는 더 나은 방법으로 이것을 로그인 스크립트에 추가하십시오
# ~ / .bashrc # 별칭 및 개인 기능 # PHP 소스 개인 이니 별명 php = 'php -c /path/to/your/php.ini' # ls를 채색하다 별명 ls = 'ls --color' ...
사용중인 버전을 명시하면 더 좋을 것입니다
--php-ini
, 두 번째에만 xdebug를로드하십시오. 서비스. 물론 두 번째 서비스는 다른 포트 / 소켓에서 실행해야합니다. 나는 세트Environment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"
가에 복사 Xdebug는 하나의 I뿐만 아니라 모든 기본 모듈을로드하도록 콜론을 추가, 내 서비스 파일에debugger.d
디렉토리를.