2010-02-23 21 views
11

Mọi thứ đang diễn ra tuyệt vời cho đến khi tôi thêm AddHandler application/x-httpd-php5s .php vào tệp .htaccess trong tài liệu gốc của máy chủ cục bộ của tôi (mà tôi thay đổi thường xuyên tùy thuộc vào trang web làm việc với). Vì tôi đã làm điều đó khi tôi truy cập http://localhost:8888 trình duyệt của tôi chỉ tải xuống tệp index.php và nó không được xử lý chút nào, chỉ là mã thô. Bây giờ Tôi đã xóa dòng đó khỏi tệp .htaccess nhưng tôi vẫn gặp sự cố này.Các tệp PHP được tải xuống bởi trình duyệt thay vì được xử lý bởi máy chủ dev cục bộ (MAMP)

Tôi đã tìm thấy rằng nếu tôi thêm mục nhập thay thế vào tệp lưu trữ của mình cho 127.0.0.1, mục nhập mới sẽ hoạt động như 'localhost' được sử dụng. Nhưng nếu tôi thêm dòng ở trên vào .htaccess của tôi, nó cũng sẽ loại bỏ máy chủ mới đó. Tôi đã thử cài đặt lại MAMP và xóa bộ nhớ cache và tất cả các tệp tạm thời mà tôi có thể tìm thấy. Tôi lướt qua tập tin httpd.conf của Apache tất cả để không có kết quả.

Vì vậy, phải rõ ràng: http://localhost:8888 đang gặp sự cố ở trên. Nếu tôi thêm một mục mới vào tập tin host của tôi cho 127.0.0.1, nói 'goomba' và dòng trên không có trong root .htaccess (và chưa bao giờ được host/alias/gì cả) thì tôi có thể truy cập http://goomba:8888 tốt . Nhưng nếu tôi thêm dòng đó vào .htaccess thì tôi phải thêm một mục nhập khác vào tệp host của mình để lấy xung quanh nó ngay cả khi tôi xóa dòng đó khỏi tệp .htaccess.

Tôi ổn với việc sử dụng một bí danh 127.0.0.1 khác (máy chủ? Nó được gọi là gì?) Nhưng nó làm tôi lo lắng rằng điều này vẫn bị hỏng.

Chỉ cần rõ ràng, tôi đang sử dụng Mac OS Leopard (nhưng tôi không sử dụng cài đặt Apache được xây dựng, nhưng MAMP).

Trả lời

4

Bạn đang áp dụng một Mimetype nơi một handler nên (xem documentation on handlers)

Hãy thử điều này thay vì:

AddType application/x-httpd-php5 .php 

EDIT: Như bạn đã chỉ ra các module bộ nhớ đệm được nạp, bạn có thể đọc lên trên cachinghtcacheclean (để xóa bộ đệm đĩa). Bạn cũng có thể tạm thời sử dụng chỉ thị CacheDisable. Một điều khác mà bạn cũng có thể thử là đổi tên tệp mà bạn đã yêu cầu (ví dụ: index.php -> index.bak), yêu cầu tệp lại trong trình duyệt (bây giờ là 404), sau đó hoàn nguyên và thử lại.

+0

Tôi đã thử (và một lần nữa, ngay bây giờ) không có kết quả. Httpd.conf của tôi đã có dòng đó (trừ 5), dù sao đi nữa. Vấn đề của tôi là, mặc dù dòng có vấn đề được đề cập trong câu hỏi của tôi bị xóa, tôi vẫn gặp sự cố. Nó giống như máy chủ đã lưu trữ tệp .htaccess chỉ cho 'localhost', không cho các máy chủ khác trỏ đến 127.0.0.1. Vui lòng thêm nhấn mạnh vào câu hỏi của tôi để làm rõ. Dù sao cũng cảm ơn bạn! – donut

+0

Máy chủ có nạp bất kỳ mô đun bộ nhớ cache nào không? Có, "5" đã được để lại do tai nạn – Cez

+0

Nó thực hiện: file_cache_module, cache_module, disk_cache_module và mem_cache_module. Làm thế nào tôi có thể xóa các cache? Có bất kỳ vấn đề nào trong số này gây ra vấn đề này không? Cảm ơn! – donut

0

Trước tiên hãy kiểm tra xem máy chủ apache của bạn có đang chạy không. Start-> Run-> cmd và sau đó thực hiện lệnh:

netstat -abn

Lookup kết quả cho dòng như thế này:

TCP 0.0.0.0:8888 0.0.0.0:0 NGHE 600 [apache .exe]

Nếu bạn không thể tìm thấy bất cứ điều gì nghe trên cổng 8888 (không có dòng 0.0.0.08888) thì apache của bạn không khởi động được. Để tìm hiểu lý do tại sao nó không thể bắt đầu, bạn nên tìm thư mục log apache và kiểm tra error.log (có thể bạn đã cập nhật php của bạn resently?). Nếu bạn tìm thấy dòng nghe 0.0.0.0:80 nhưng một số phần mềm khác đang lắng nghe ở đó (bạn có IIS đang chạy không?) Thì bạn nên xóa/cấu hình lại phần mềm đó sang cổng 80 miễn phí. Nếu bạn có apache nghe trên cổng 80 nhưng vẫn không thể mở trang web của bạn và bạn không thể tìm ra những gì đang gây ra vấn đề thông qua kiểm tra các tập tin đăng nhập apache sau đó nó là vấn đề cơ sở dữ liệu của tôi. Kiểm tra xem mysql của bạn đang chạy và nghe sử dụng cùng một lệnh nhưng bạn nên tìm kiếm

TCP 0.0.0.0:3306 0.0.0.0:0 NGHE [mysqld-nt.exe]

Nếu bạn không thể tìm thấy dòng như vậy sau đó máy chủ mysql của bạn không chạy - hãy kiểm tra tệp nhật ký mysql để tìm lỗi. Nếu cả hai máy chủ đang chạy và bạn không thể nhận được bất kỳ đầu ra nào trong trình duyệt của mình thì hãy kiểm tra tường lửa và phần mềm chống vi-rút của bạn - chúng có thể chặn các yêu cầu của bạn. Hy vọng điều này sẽ giúp;)

+1

Một vài điều: Tôi đang trên Mac OS Leopard; máy chủ Apache đang làm việc cho các mục nhập mới vào tệp máy chủ của tôi. Vui lòng xem các cập nhật cho bài đăng của tôi để biết thêm chi tiết. Cảm ơn! – donut

2

Có lẽ bạn muốn application/x-httpd-php5 thay vì application/x-httpd-php5s? (Lưu ý rằng thiếu s ở cuối.)

+0

Tôi đã cố gắng để không có kết quả. Trước khi nó được làm việc tốt mà không có bất cứ điều gì trong .htaccess. – donut

1

Đối với cùng một vấn đề, tôi loại bỏ các '5' ứng dụng AddType/x-httpd-php .php .htm .html

nó làm việc tốt! hãy thử

12

Tôi đã gặp sự cố tương tự một vài lần và đổi tên tệp không hoạt động đối với tôi. Với OS X Lion tôi đã tìm thấy cấu hình phù hợp là:

<IfModule php5_module> 
    AddType application/x-httpd-php .php 
    <FilesMatch \.php$> 
     SetHandler application/x-httpd-php 
    </FilesMatch> 
    AddType application/x-httpd-php-source .phps 
    <IfModule dir_module> 
     DirectoryIndex index.php index.html 
    </IfModule> 
</IfModule> 

Phép thuật làm cho nó hoạt động với tôi là phần SetHandler application/x-httpd-php.

Tất nhiên, chỉnh sửa <IfModule php5_module> thành phiên bản php của bạn.

+0

Đây là trường hợp trên OSX Mountain Lion là tốt. – Jack

+3

vị trí này nên được đặt ở đâu? –

+0

@ToniMichelCaubet: Late to the party, nhưng đặt nó trong '/ etc/apache2/other/php5.conf' và đảm bảo rằng cấu hình chính của apache (trong'/etc/apache2/httpd.conf') có một dòng chưa được liệt kê (gần phía dưới) đọc: 'Bao gồm/etc/apache2/other/*. conf'. – webtweakers

0

Tôi thực sự gặp phải sự cố tương tự. Tất cả các tệp php của tôi đều được tải xuống khi tôi thử kiểm tra xem liệu php và apache có đang hoạt động cùng nhau hay không. Hóa ra họ không làm việc cùng nhau.

Tôi đã phải gỡ cài đặt php, tôi sẽ đề xuất cùng một quá trình hành động và sau đó cài đặt lại php chỉ bằng cách sử dụng tải xuống tệp zip trên php.net, thay vì cài đặt nó bằng MAMP. Tôi nghĩ rằng vấn đề của tôi là tôi đã sử dụng trình cài đặt php. Tôi không khuyên bạn nên sử dụng nó.

Trang web này đã giúp tôi rất nhiều, tôi gặp vấn đề với apache không bắt đầu và trong khi đó không phải là vấn đề của bạn, trang web này giải quyết cả apache không bắt đầu và tải xuống các tệp php và ngay cả khi bạn đang ở trên mac cũng có thể giúp bạn cũng như http://forums.phpfreaks.com/topic/185771-problem-starting-apache-2214-after-installing-php-5212

Hy vọng mọi thứ đều hoạt động! Chúc may mắn!

0

trong trường hợp của tôi xóa hoặc nhận xét ra "AddHandler php56-cgi .php" trong các tập tin htacces tham gia gốc của tôi giải quyết nó

nhất

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