Mac OSX: hai tập tin php.ini cùng tồn tại trên máy

Sau khi cài đặt Xdebug em cần cấu hình lại PHP để include file xdebug.so. Kiểm tra trên terminal sử dụng lệnh php -i | grep php.ini thì em thấy nó nằm ở địa chỉ:

/etc/php.ini

Nhưng nếu tạo một tập tin index.php trong thư mục MAMP và sử dụng hàm phpinfo() để kiểm tra lại vị trí của tập tin php.ini thì thấy nó lại nằm ở địa chỉ khác:

Applications/MAMP/bin/php/php5.5.10/conf/php.ini

Nếu thêm vào tập tin /et/php.ini thì Xdebug chạy được nhưng thêm vào Applications/MAMP/bin/php/php5.5.10/conf/php.ini thì Xdebug không chạy được. Nhưng em vẫn không hiểu tại sao lại có tập tin php.ini thứ 2?

Được hỏi 8 tháng trước
Bình chọn bởi: Ngọc Nguyễn, Vũ Văn Tuấn, Vân Trần, Tony Huynh, Thu Thủy, Hằng Đỗ, Huy Pro, Quỳnh Anh

Trên một máy có thể cài một package vào nhiều location khác nhau là chuyện bình thuờng em nhé. Nếu bạn dùng MAMP thì trong gói MAMP đã có PHP, Vì webserver của bạn được start bởi MAMP nên PHP trong MAMP sẽ được sử dụng. Còn trong MacOS của bạn có thể được pre-install hoặc bạn tự install php stand alone, mà em không tự config dùng PHP nào nên php trên terminal sẽ mặc định nhận từ $PATH (nếu bạn hiểu Unix/Linux thì sẽ hiểu $PATH).

..

A đoán ý em là muốn tất cả PHP đều trỏ về PHP trong MAMP. Muốn vậy thì làm theo các bước sau:

  1. Kiểm tra thông tin php hiện tại ở đâu bằng cách gõ lệnh:

    which php

    Kết quả nhận được chắc chắn không phải trỏ về MAMP rồi,

  2. Trỏ lại php về MAMP bằng cách sử dụng alias của Unix:

    alias php='/Applications/MAMP/bin/php/php7.0.10/bin/php'

  3. Check lại which php đã trỏ về MAMP chưa, nếu chưa thì có thể gỡ xừ nó đống PHP thừa kia đi.
  4. Có thể phải cấu hình lại XDebug trỏ về PHP trong MAMP (không chắc lắm)
  5. alias chỉ có tác dụng hiện tại và sẽ mất khi restart chẳng hạn, để persist alias, tự google tìm hiểu về alias nhé vì nó không thuộc phạm vi thread này.
Trả lời 8 tháng trước

Thêm Trả Lời