Tôi có thể làm gì nếu tôi ghi đè lên hệ thống PHP của mình?


1

Tôi đã xóa hệ thống PHP của mình trên OS X Lion bằng cách cài đặt một bản sao mới của PHP 5.4. Tôi dường như không thể khôi phục nó bằng Time Machine. Tôi làm gì tiếp theo? Khi tôi gõ which phptôi vẫn nhận được /usr/bin/php.

Nhưng khi tôi gõ php -vtôi nhận được:

error 2992 segmentation fault

Đôi khi những #2992thay đổi. Bây giờ khi tôi cố gắng xem bất kỳ trang nào có PHP tôi thấy mã nguồn thay vì trang.


1
Bạn có thể lấy một PHP với thông tin gỡ lỗi và bắt đầu với nó gdbkhông? Nếu bạn không thể thử một phiên bản PHP khác, giả sử có lỗi với phiên bản bạn đang cố cài đặt.
Tamara Wijsman

Tôi thực sự muốn cài đặt lại hệ thống php, nếu tôi nâng cấp lên núi sư tử thì nó sẽ khôi phục hệ thống php?
pixel 67

GNU gdb 6.3.50-20050815 (Phiên bản Apple gdb-1822) (Chủ nhật ngày 5 tháng 8 03:00:42 UTC 2012) Bản quyền 2004 Free Software Foundation, Inc. GDB là phần mềm miễn phí, được bảo vệ bởi Giấy phép Công cộng GNU, và bạn là hoan nghênh thay đổi nó và / hoặc phân phối các bản sao của nó trong những điều kiện nhất định. Nhập "hiển thị sao chép" để xem các điều kiện. Hoàn toàn không có bảo hành cho GDB. Nhập "hiển thị bảo hành" để biết chi tiết. GDB này được định cấu hình là "x86_64-apple-darwin" ... Đọc biểu tượng cho các thư viện dùng chung ..................... xong
pixel 67

Bạn cần chạy PHP qua gdb, xem cái này . Bạn đã thử cài đặt một phiên bản PHP khác chưa? Hãy xem xét MAMP, mà slhck đã giới thiệu cho bạn, nghe có vẻ là cách ưa thích để đi nếu bạn không muốn cài đặt lại. Mặc dù cài đặt lại nghe có vẻ an toàn như slhck đã nói ...
Tamara Wijsman

Thật tuyệt khi bạn không muốn sử dụng MAMP và tìm hiểu thêm về dòng lệnh. Tôi sẽ đề nghị lần sau bạn cài đặt nó ở một nơi nào đó trong thư mục chính của bạn và sau đó thay đổi đường dẫn của bạn để sử dụng nhị phân của bạn trước. Một cách tiếp cận tương tự được thực hiện bởi homebrew, bạn nên nhìn vào đó. Luôn luôn tốt hơn để sử dụng một trình quản lý gói hơn là biên dịch và cài đặt các gói, nó nên là giải pháp cuối cùng. Tất cả tốt nhất.
nikhil

Câu trả lời:


1

Nếu bạn thực sự quản lý để không chỉ xóa /usr/bin/php(có thể dễ dàng khôi phục từ bản sao lưu hoặc máy Mac khác), thì tùy chọn dễ dàng duy nhất của bạn là cài đặt lại OS X. Làm như vậy, nó sẽ để lại các tệp người dùng của bạn (ví dụ như một trong /Users) nhưng nó sẽ ghi đè lên tất cả các thành phần hệ thống, bao gồm các phiên bản đóng gói của PHP. Nâng cấp OS X cũng có thể trong trường hợp này - nó sẽ có tác dụng tương tự.

Bạn có thể cài đặt lại OS X Lion hoặc Mountain Lion bằng cách khởi động vào Recovery . Chỉ cần giữ CmdRtrong khi khởi động và cài đặt lại OS X. Hãy chắc chắn rằng bạn đã sao lưu toàn bộ hệ thống trước đó.

Trong tương lai, nếu bạn muốn làm việc với các phiên bản PHP khác, hãy xem xét sử dụng MAMP , gói độc lập đi kèm với các phiên bản PHP khác nhau để lựa chọn (bao gồm 5.3 và 5.4), không can thiệp vào các nhị phân và khung hệ thống của bạn.


Tôi đã sử dụng MAMP trước đây, thực hiện các bước tiếp theo, tôi cần tìm hiểu thêm về dòng lệnh
pixel 67

Chà, bài học rút ra ở đây tôi đoán là bất cứ điều gì bạn có thể làm đều có sudokhả năng gây hại cho toàn bộ hệ thống của bạn. Tất nhiên, bạn có thể thử khôi phục về trạng thái sao lưu Time Machine trước khi xảy ra sự cố và mất các tệp bạn đã tạo ở giữa.
slhck

@slhck: Có điều gì khác về OS X không cho phép người dùng gỡ lỗi lỗi phân đoạn của PHP hoặc cài đặt một phiên bản PHP khác không? Đối với tôi có vẻ như một bản nâng cấp của OS X sẽ làm điều xấu hơn là tốt, nó thực sự không làm gì khác ngoài việc thay thế các tệp?
Tamara Wijsman

@ pixel67 Vì vậy, ổ đĩa ngoài của bạn không chứa bản sao lưu trước khi xảy ra sự cố? (Nhân tiện, nếu âm lượng của Time Machine đầy, nó sẽ xóa các tệp cũ không sử dụng, nhưng bạn vẫn có thể tiếp tục sử dụng nó). Nếu bạn đã thử khôi phục toàn bộ hệ thống từ Time Machine và nó không hoạt động, một cái gì đó khác đã bị hỏng, nhưng chúng tôi cần thêm thông tin về điều đó.
slhck

Tôi có một bản sao lưu, khi tôi làm theo chỉ dẫn của cỗ máy thời gian và đến bản sao tệp php cũ (mà tôi nhận được từ một người bạn) id không hoạt động
pixel 67
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.