Làm cách nào tôi có thể tạo các tệp cấu hình riêng cho php (cli) và php-fpm trên một linux linux


10

Có thể tạo các tệp php.ini riêng cho php (cli) và php-fpm, giống như có thể trên debian và ubfox với hai thư mục /etc/php/7.0/cli/etc/php/7.0/fpm?

Tôi cũng sẽ rất tuyệt nếu tôi có thể tải các mô-đun độc lập với một conf.dthư mục cho mỗi hệ thống con.

Có ai biết làm thế nào tôi có thể cấu hình nó một cách riêng biệt?

Tôi cũng đã thử sử dụng cấu trúc như nó được cấu hình trong Ubuntu 16.04 nhưng không thành công.

Câu trả lời:


11

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!


1
Cách tiếp cận thứ hai này cực kỳ hữu ích để gỡ lỗi, tức là bạn tạo các bản sao hậu tố của dịch vụ php-fpm và các tệp / thư mục conf, chỉ định một cấu hình fpm riêng như bạn có, tùy chọn chỉ định một ini khác --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ập Environment="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ào debugger.dthư mục.
Walf

3

Bạn luôn có thể làm điều này cho phiên bản cli:

php -c /path/to/your/php.ini

và để mặc định với những cái được phục vụ qua php-fpm. Hoặc thậm chí tốt hơn, thêm phần này vào tập lệnh đăng nhập của bạn

# ~ / .bashrc
# bí danh và chức năng cá nhân

# PHP nguồn cá nhân
bí danh php = 'php -c /path/to/your/php.ini'

# tô màu ls
bí danh ls = 'ls - màu'
...

Sẽ tốt hơn nếu bạn nói rằng bạn đang sử dụng phiên bản nào


ý tưởng hay, nhưng không chính xác những gì tôi đang tìm kiếm. Có lẽ nếu không còn cách nào khác. Cảm ơn.
Fiete

tốt, có thể có, xin vui lòng chia sẻ phiên bản php, php-fpm và thiết lập cơ bản của bạn (bạn đang sử dụng nginx, apache, v.v.). Làm thế nào bạn đã thiết lập php-fpm. có lẽ từ đó, chúng ta có thể hữu ích
the_architecht
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.