PHP.ini ở đâu trong Mac OS X Lion? Nghĩ rằng đó là trong / usr / local / php5 / lib


268

Tôi muốn chạy một số PHP ngay trên máy Mac của mình, httpd.conf chưa được chỉnh sửa, chia sẻ web được kích hoạt, cài đặt MySQL, v.v. Tôi dường như không thể tìm thấy các tệp PHP của mình, quan trọng nhất là PHP.ini.

Trên máy cũ của tôi, nó được đặt trong / usr / local / php5 / lib Nhưng thư mục php5 không tồn tại trong / usr / local ..

Tôi có cần phải nhận một gói hoặc tôi đang tìm ở nơi không chính xác?

Chạy OS X 10.7.3, PHP 5.3.8, Apache / 2.2.21


9
Một cách dễ dàng để tìm vị trí là chạy phpinfo ();
ralfe

10
Hoặclocate php.ini
Pekka

12
@ralfe Cần thêm rằng bạn cần tìm cài đặt 'Tệp cấu hình đã tải' từ phpinfo () hoặc php --ini(chạy trong cửa sổ đầu cuối). Bởi vì nếu không có php.ini, cả hai sẽ báo cáo Đường dẫn tệp cấu hình là /etc(ít nhất là trên bản cài đặt OS X 10.8 của tôi). Nếu không có tệp cấu hình nào được tải, thì bạn nên thử câu trả lời của mac
Jason S

/ usr / local / php5 là nơi trình cài đặt php của entropy.ch và liip.ch cài đặt (ed) php. Nó chưa bao giờ là vị trí cài đặt php của Táo.
heiglandreas

8
Thực hiện việc nàyphp -i | grep php.ini

Câu trả lời:


396

Bạn nên tìm thấy nó trong / private / etc nếu nó tồn tại, nếu không:

sudo cp /private/etc/php.ini.default /private/etc/php.ini

Được rồi, có một php.ini.default trong / private / etc và tôi đang kiểm tra nó. Nhưng có ai biết tại sao tôi không có thư mục php5 cũ của mình trong usr / local không? Đã từng có một loạt các tệp trong đó bao gồm một php.ini được đề xuất. Đây có phải là một thay đổi trong phiên bản mới hơn hoặc PHP5 hoặc Lion hay cái gì khác không?
Orun

PHP5 được bao gồm theo mặc định trong MacOS X kể từ 10.5 với vị trí trên cho tệp php.ini. Nếu bạn đã cài đặt nó một cách thủ công thì nó không nên bị xóa trong quá trình nâng cấp lên Lion; lạ ...
mac

2
Tệp php.ini.default trên máy Lion của tôi không khớp với tất cả các cài đặt mặc định khi không có php.ini. Đáng chú ý là short_tags đã Tắt, error_Vporting, log_errors và một số cài đặt nhỏ khác nhau. Bạn sẽ muốn so sánh đầu ra của bạn php -itrước và sau khi tạo php.ini.
spoulson

1
trên máy Mac của tôi, tôi đã có một tệp tại /private/etc/php.ini nhưng php dường như bỏ qua mọi thay đổi tôi đã thực hiện ở đó, tìm thấy nó đang sử dụng một trong /usr/local/php5/lib/php.ini
Kit Ramos

2
Câu trả lời này chỉ cho tôi đi đúng hướng. cp php.ini.default> Cấu hình được tải php.ini và CLI trở thành /etc/php.ini. Kiểm tra php -i | grep php.ini sau
bpile

407

Để xác định vị trí tệp ini trên máy của bạn, hãy mở Terminal.appvà chạy lệnh sau:

php --ini

Nếu bạn cần một mẫu cho Lion, hãy thử điều này .


2
Tôi không tải php.ini ngay bây giờ. Về cơ bản tôi đang tìm thư mục với mẫu php.ini "được đề xuất".
Orun

47

Trong thiết bị đầu cuối làm php -i | grep php.ini. Sẽ cung cấp cho bạn một số manh mối;)


26

Câu trả lời từ @Cronk và @Justin đã giúp tôi gần gũi với Mac OS X 10.9 Mavericks. Trên thực tế, trên hệ thống của tôi, /etc/php.initệp bị thiếu hoàn toàn và cho đến khi tôi chạy phpinfo()trên máy chủ web mà tôi quan sát thấy không có tệp cấu hình. Sao chép tệp từ /etc/php.ini.defaultvà thêm đường dẫn đủ điều kiện vào mcrypt.sothư viện vào tệp cấu hình đã giải quyết được vấn đề:

cp /etc/php.ini.default /etc/php.ini

Sau đó, /etc/php.inithêm dòng sau (sử dụng đường dẫn chính xác đến mcrypt.sotệp của bạn ):

extension="/usr/local/Cellar/php54-mcrypt/5.4.29/mcrypt.so"

Sau đó khởi động lại Apache2:

apachectl restart

ồ, bạn là anh hùng của tôi !! cảm ơn bạn vì ý tưởng sử dụng đường dẫn đầy đủ của mcrypt!
Hese

25

Như đã chỉ ra, php --inilệnh sẽ cho bạn biết PHP đang mong đợi tìm tệp php.ini ở đâu.

Để cài đặt tiêu chuẩn, nó có thể đang tìm kiếm /etc/php.ini

Nếu bạn đã sử dụng macports thì PHP có thể đang tìm kiếm/opt/local/etc/php5/php.ini


7
vv là một liên kết đến private / etc: / etc -> private / etc
pm_labs

21

Chạy phpinfo()từ bất kỳ tập tin và nó cho bạn biết nó ở đâu. Đây là một ảnh chụp màn hình.

nhập mô tả hình ảnh ở đây


3
Đây là cách tốt nhất để đi, vì bạn có thể tìm thấy các bản sao của php.ini trong các thư mục "mặc định" khác nhưng cách này sẽ cho bạn biết cái mà nó thực sự đang sử dụng, do đó, bạn sẽ tránh được việc gãi đầu và bực bội khi bạn tạo ra một sự thay đổi nhưng php dường như hoàn toàn không biết về sự thay đổi đã nói.
Kit Ramos

Bạn cũng có thể mở REPL php trong trình bao của mình bằng cách chạy php -anơi bạn chạy phpinfo();.
metakermit

14

Tôi đã có hơn một lần phiên bản PHP chạy nên các câu trả lời khác không hoạt động với tôi. Điều này đã làm:

Tạo một tệp PHP và mở url cục bộ của nó trong trình duyệt của bạn:

<?php phpinfo(); ?>

Đường dẫn PHP.INI sẽ được liệt kê gần đầu trang.


3

Đây là chủ đề khá cũ, nhưng tôi muốn thêm một sự làm rõ.

Nếu bạn có một hệ thống có nhiều cài đặt PHP (như của tôi), kết quả bạn nhận được từ việc sử dụng các công cụ dòng lệnh CÓ THỂ khác với những gì thực sự được sử dụng bởi máy chủ web. Nếu bạn quan tâm đến những gì PHP đang được máy chủ web sử dụng, chỉ sử dụng thông tin được thu thập từ một trang web sử dụng hàm 'phpinfo ()'.

Ví dụ: trên hệ thống của tôi, các phiên bản được báo cáo theo hai phương pháp khác nhau là:

Dòng lệnh: 5.3.26

Web: 5.3.13

Đối với đường dẫn tệp php.ini, mọi thứ cũng khác nhau:

Dòng lệnh: /private/etc/php.ini

Web: /long/path/to/the/file/php.ini

Bạn có thể tìm thấy tất cả các tệp php.ini có thể bằng cách này:

tìm / -name php.ini 2> & 1 | grep -v "bị từ chối" | grep -v "thư mục"

(các phần tử '2> & 1' và 'grep' chỉ giới hạn đầu ra của lệnh đối với thông tin hữu ích, tức là loại bỏ các thông báo lỗi)

Trên hệ thống của tôi, tôi tìm thấy 3 tập tin INI. Bởi vì tôi quan tâm đến những gì máy chủ web đang sử dụng, tôi biết rằng tôi nên sử dụng đường dẫn được trả về từ kết quả trang web. Tôi đã thực hiện các thay đổi của mình đối với tệp php.ini được liệt kê ở đó, khởi động lại apache và chạy lại trang web; các chỉnh sửa mới đã được hiển thị ở đó.

Để khởi động lại apache:

sudo apachectl -k khởi động lại

- J


1

Tôi bắt đầu với 'Xin chào thế giới!', Khi tôi nhận được màn hình đó trong trình duyệt của mình, tôi ném phpinfo();vào đó và bạn có thể thấy tất cả mọi thứ. Cho bạn biết cấu hình nào được tải, tất cả mọi thứ.

<?php
   echo 'Hello World!';

   phpinfo();

0

Bạn chạy php_info () và xem dòng dưới đây :)

Loaded Configuration File   /Applications/XAMPP/xamppfiles/etc/php.ini
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.