2012-07-12 32 views
5

Vì vậy, tôi đang chạy tập lệnh PHP trên máy chủ ảo của tôi (không ghét tôi) mà tôi dự kiến ​​sẽ mất khoảng 5 phút để hoàn thành việc thực thi. Tập lệnh là các trang CURLing nhưng không bao giờ chứa nhiều hơn 1 trang tại một thời điểm (nó được thực hiện trong một vòng lặp sử dụng lại cùng một biến). tôi sửa đổi tập tin php5.ini của tôi như sau:Lỗi Apache 500 với PHP Fun

max_execution_time = 600 
max_input_time = 120 
memory_limit = 64M 

tôi xác minh thông qua phpinfo rằng những thay đổi tập tin ini đã có hiệu lực, tuy nhiên tôi nhận được một Apache 500 lỗi sau 120 giây. Đây là nhật ký lỗi cho thời gian này:

[Wed Jul 11 22:08:52 2012] [warn] [client **.**.**.***] mod_fcgid: read data timeout in 120 seconds 
[Wed Jul 11 22:08:52 2012] [error] [client **.**.**.***] Premature end of script headers: test.php 

Nếu có bất kỳ ý tưởng nào về lý do tôi có thể gặp phải những lỗi này hoặc bất kỳ đề xuất nào cần thử, tôi sẽ đánh giá cao sự trợ giúp. Tôi đã nhận thấy một tùy chọn trong cài đặt php được đặt ở 120, nhưng tôi không chắc chắn liệu nó có hiệu lực hay không: realpath_cache_tt

Tôi cũng đặt giới hạn thời gian trong tệp .php: set_time_limit (600);

Xin cảm ơn trước.

UPDATE: Đây là những gì tôi đã cố gắng trong tập tin .htaccess:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^www\. 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
<IfModule mod_fcgid.c> 
IPCCommTimeout 7200 
</IfModule> 

này gây ra một Apache 500 lỗi trên bất kỳ tải trang. Tôi cũng đã tắt FastCGI nhưng sự cố vẫn xảy ra.

QUYẾT Robb gợi ý như sau: IPCCommTimeout 7200 nào nên đã làm việc tuy nhiên do GoDaddy tôi chia sẻ lưu trữ nó không được phép. Đã đến lúc tìm một dịch vụ lưu trữ mới.

+0

Bạn đã thử chạy nội bộ này chưa? XAMPP hoặc Uniserver có thể được chạy cục bộ (trên một ổ đĩa flash ngay cả). Nó sẽ ít nhất là loại trừ một vấn đề với các tùy chọn lưu trữ craptastic của GoDaddy ... –

+1

Tôi đã không và sẽ cố gắng, nhưng trong khi chờ đợi tôi hy vọng có một cái gì đó tôi đã bỏ lỡ trong tập tin php.ini. Tôi đang cố gắng vô hiệu hóa FastCGI chỉ để xem điều gì sẽ xảy ra. – cazzer

+0

Và tất nhiên khi tôi cố gắng vô hiệu hóa FastCGI godaddy cho tôi một vấn đề kết nối, tôi nghĩ rằng tôi cần phải thiết lập một Uniserver! – cazzer

Trả lời

6

Tôi không chắc chắn về việc xử lý vấn đề này trên GoDaddy nhưng độ phân giải bình thường sẽ như sau:

Vấn đề mà bạn đang gặp là do FastCGI thực hiện một kịch bản PHP nhưng nó không tạo ra một phản hồi trong thời gian chờ IO mặc định (120 giây), dẫn đến 500 Lỗi Máy chủ Nội bộ.

Thử chỉnh sửa mặc định VirtualHost file cấu hình, thường nằm ở /etc/apache2/sites-available/default và thêm chỉ thị này bên trong <VirtualHost> bối cảnh:

<IfModule mod_fcgid.c> 
    IPCCommTimeout 7200 
</IfModule> 

Sau khi lưu các thay đổi, khởi động lại apache2 với lệnh này: sudo /etc/init.d/apache2 restart.

Từ những gì tôi có thể xác định từ GoDaddy là giới hạn thời gian tối đa là 120 giây cho PHP/FastCGI trong lưu trữ được chia sẻ, không thể được khách hàng tăng lên. Tôi sẽ đề nghị liên hệ với hỗ trợ của họ để được hỗ trợ và hy vọng danh tiếng của họ sẽ không phục vụ và bạn sẽ có thể nhận trợ giúp.

Cập nhật: Bạn không chắc chắn nếu nó có thể giúp bạn thay đổi từ FastCGI sang PHP5 trong trung tâm điều khiển lưu trữ của bạn (Cài đặt> Mở rộng tệp> php5).

+0

Một vé trên godaddy cho biết điều này nên được chèn vào tập tin .htaccess, mà tôi đã thử, tuy nhiên nó phá vỡ các trang web. Có nơi nào khác này nên đi? – cazzer

+0

Ngoài việc sửa đổi tệp 'conf' như được hướng dẫn ở trên hoặc tệp' .htaccess', tôi không biết bất kỳ tệp nào. Một trong những cách sử dụng tệp '.htaccess' là sửa đổi cài đặt hệ thống cho thư mục/trang web được cung cấp. – RobB

+0

Bạn có thể xây dựng trên "nó phá vỡ trang web" không? – RobB

Các vấn đề liên quan