Tôi đã tìm thấy một vài điều chỉnh để giải quyết vấn đề của mình.
Đầu tiên : tải một php.initệp riêng :
Một người dùng trong một diễn đàn arch linux đã đăng bài này từ man phptrang:
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.
Nếu tôi tạo một /etc/php/php-cli.initệp chỉ có tệp này sẽ được tải chứ không phải /etc/php/php.inibằng phplệnh cli. php-fpmvẫn đang tải /etc/php/php.ini.
Thứ hai : tải các cấu hình mô-đun khác nhau:
Tôi đã tìm thấy trong các tài liệu php các PHP_INI_SCAN_DIRbiến môi trường. Do đó, tôi đã chuyển /usr/lib/systemd/system/php-fpm.servicetệp đến /etc/systemd/system/php-fpm.servicevà thêm cấu hình sau vào tệp dịch vụ:
[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
Sau khi khởi động lại / tải lại các dịch vụ, php-fpm chỉ tải các tệp từ /etc/php/fpm/conf.dvà không còn từ đó /etc/php/conf.d. Điều này cho phép tôi cấu hình cli và fpm riêng biệt.
Có lẽ đây không phải là giải pháp tốt nhất nhưng tôi phù hợp với usecase của tôi. Nếu mọi người có giải pháp tốt hơn, đừng ngần ngại đăng câu trả lời của bạn!
--php-ini, sau đó chỉ tải xdebug trong giây dịch vụ. Tất nhiên, dịch vụ thứ hai cần chạy trên một cổng / ổ cắm khác. Tôi thiết lậpEnvironment="PHP_INI_SCAN_DIR=/etc/php-debugger.d:"trong tệp dịch vụ của mình, dấu hai chấm được thêm vào để nó tải tất cả các mô-đun mặc định ngoài xdebug mà tôi đã sao chép vàodebugger.dthư mục.