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.ini
tệp riêng :
Một người dùng trong một diễn đàn arch linux đã đăng bài này từ man php
trang:
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.ini
tệp chỉ có tệp này sẽ được tải chứ không phải /etc/php/php.ini
bằng php
lệnh cli. php-fpm
vẫ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_DIR
biến môi trường. Do đó, tôi đã chuyển /usr/lib/systemd/system/php-fpm.service
tệp đến /etc/systemd/system/php-fpm.service
và 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.d
và 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.d
thư mục.