2009-05-23 45 views
8

Tôi đã duyệt qua mọi kết quả của Google, đọc tất cả các bài đăng trên diễn đàn về lỗi này, nhưng tôi không thể giải quyết nó.Cài đặt PECL không thành công

Khi sử dụng PECL cài đặt cho bất cứ điều gì, tôi luôn luôn kết thúc nhận được lỗi này:

checking whether the C compiler works... configure: error: cannot run C compiled programs. 

Mọi thứ khác thành công đến thời điểm đó họ bam!

Tôi đang sử dụng CentOS 4.3, PEAR là phiên bản ổn định mới nhất, GCC là phiên bản ổn định và mới nhất. Tất cả mọi thứ đang làm việc như nó phải, nhưng trình biên dịch C luôn luôn có vẻ như lỗi. Tôi đã cố gắng để làm cho tmp có quyền riêng cho hoạt động bằng cách tạm thời kích hoạt nó bằng cách sử dụng:

mount -o remount,exec,suid /tmp 

Nhưng điều đó không hiệu quả.

Tôi đã thử tất cả mọi thứ đã được đề xuất không có sẵn. Ý tưởng nào?

+0

Bump? Thực sự cần giúp đỡ ở đây! Bất cứ ai cũng có ý tưởng nữa? – James

+0

Câu hỏi rõ ràng. * Có thể * bạn chạy các chương trình biên dịch C? Bạn đã biên soạn một ứng dụng hello-world (hay bất cứ thứ gì khác)? echo 'int main() {printf ("Xin chào, thế giới! \\ n");}' | gcc -xc - -o hello && ./hello –

+0

Nhưng vâng tôi chắc chắn nó có thể chạy các ứng dụng được biên dịch C, khi không sử dụng PECL Tôi đã biên soạn một số ứng dụng khác. – James

Trả lời

7
cd ~ 
mkdir setups 
cd setups 
wget http://pecl.php.net/get/APC-3.1.2.tgz 
tar -xvf APC-3.1.2.tgz 
cd APC-3.1.2 
phpize && ./configure --with-apxs && make 

Tôi đã nhanh chóng viết lên và có thể cài đặt APC bằng một chút công việc thủ công. Chẳng hạn như sao chép mô-đun sang các mô-đun PHP và thêm phần mở rộng vào tệp php.ini. Hoạt động hoàn hảo ngay bây giờ.

+0

Điều này đã làm việc cho tôi, để cài đặt tiện ích mở rộng oauth tôi cần cài đặt: pcre-d, tôi đã làm điều này với: yum cài đặt pcre pcre-d. Chỉ trong trường hợp ai đó có cùng một vấn đề. –

9

Tôi đang trên Centos 5.3 và tôi đã có thể để có được PECL cài đặt chạy (APC trong trường hợp của tôi) thành công bằng cách loại bỏ cờ noexec trên cả hai/tmp /var/tmp

mount -o remount,exec,suid /tmp 
mount -o remount,exec,suid /var/tmp 

Làm này chỉ trên/tmp không hoạt động - Tôi vẫn nhận được lỗi "kiểm tra xem trình biên dịch C hoạt động ... cấu hình: lỗi: không thể chạy các chương trình biên dịch C."

Hãy nhớ chạy lại các bản remount này bằng noexec sau khi quá trình cài đặt của bạn kết thúc.

+0

bạn vừa mới cứu mạng tôi ... – kubilay

2

Khi tôi đã có vấn đề tương tự như cài đặt trình điều khiển MongoDB, điều này đã làm việc cho tôi:

sudo mkdir /root/tmp.pear 
sudo mkdir /root/tmp.pear-build-root 

sudo ln -s /root/tmp.pear /tmp/pear 
sudo ln -s /root/tmp.pear-build-root /tmp/pear-build-root 

Sau đó:

sudo sudo pecl install XXX 

(Điều này không mở một lỗ hổng bảo mật bởi vì chỉ có root có thể tạo file thực thi trong hai thư mục đó.)

Lưu ý rằng những điều sau đây không không hoạt động cho PECL:

sudo pear config-set temp_dir /var/tmp/pear/temp 
Các vấn đề liên quan