Mẹo gỡ rối Apache

Hãy Thử Công Cụ CủA Chúng Tôi Để LoạI Bỏ Các VấN Đề

Đã bao nhiêu lần bạn cài đặt một máy chủ LAMP chỉ để thấy Apache dường như không muốn chạy đúng không? Hoặc bạn cài đặt một mô-đun mới chỉ để thấy Apache cố gắng tải xuống các trang dưới dạng tệp, thay vì hiển thị chúng trên màn hình?

Có một trăm lẻ một nghìn điều có thể xảy ra với bất kỳ cài đặt máy chủ web nào. Từ cài đặt mới đến cài đặt đã chạy trong một thời gian dài, bạn không bao giờ biết khi nào có điều gì đó sẽ khiến máy chủ web của bạn đi chệch hướng. Khi điều đó xảy ra, thật tuyệt khi biết rằng, thường là Dao cạo của Occam được áp dụng.

Trong hướng dẫn này, bạn sẽ tìm thấy một số lời khuyên sẽ giúp bạn giải quyết một số vấn đề phổ biến hơn có thể xuất hiện với máy chủ web Apache.

Máy chủ của bạn có thực sự đang chạy không?

Tin hay không thì tùy, điều này đã xảy ra với rất nhiều quản trị viên. Bạn gỡ máy chủ xuống, thực hiện một số bảo trì và khi bạn đi kiểm tra máy chủ, bạn đang gặp lỗi. Điều đầu tiên bạn làm, một cách tự nhiên, là kiểm tra xem /etc/apache2/apache.conf để đảm bảo rằng cú pháp của bạn là chính xác. Nhưng nó hoàn hảo! Có chuyện gì vậy? Điều đầu tiên bạn có thể muốn kiểm tra là đảm bảo máy chủ đang chạy. Nhưng bạn không muốn chỉ ra lệnh để khởi động máy chủ hoặc tải lại máy chủ. Thay vào đó, hãy ra lệnh:

trạng thái sudo /etc/init.d/apache2

Cái nào sẽ trả về một cái gì đó như:

* apache đang chạy (pid 9751).

Nếu không, hãy khởi động máy chủ bằng:

sudo /etc/init.d/apache2 start

hoặc là

sudo apache2ctl start

LƯU Ý: Nếu bạn đang sử dụng bản phân phối như Fedora, SuSE hoặc Mandriva, trước tiên bạn cần phải nó là cho người dùng root và đưa ra các lệnh trên mà KHÔNG sử dụng sudo .

Nó không chạy và nó sẽ không bắt đầu

Bạn vừa thực hiện thay đổi đối với tệp cấu hình Apache của mình? Các thay đổi có đúng không? Nếu bạn không chắc chắn, bạn có thể sử dụng apache2ctl lệnh để kiểm tra cú pháp của tệp cấu hình của bạn. Điều này được thực hiện bằng lệnh:

sudo apache2ctl configtext

Lệnh trên sẽ báo cáo:

Cú pháp OK

Nếu bạn không nhận được đồng ý, bạn sẽ nhận được thông tin chỉ ra các lỗi trong tệp cấu hình của bạn.

Apache muốn tải xuống các tệp .php!

Đây là một vấn đề phổ biến khác. Khi bạn thêm một công cụ mới trên máy chủ web của mình (chẳng hạn như Drupal), nếu tệp cấu hình của bạn được thiết lập đúng cách, mọi tệp .php có thể không được hiển thị. Thay vào đó, bất kỳ nỗ lực nào để xem tệp .php sẽ khiến trình duyệt của bạn cố gắng tải xuống tệp. Tại sao thế này? Apache phải được thông báo rằng một số tiện ích mở rộng sẽ được hiển thị, không được tải xuống. Điều này được thực hiện từ trong tệp cấu hình Apache. Mở tệp đó (trong máy chủ Ubuntu, nó sẽ là /etc/apache2/apache2.conf) và trước tiên hãy tìm dòng sau:

DirectoryIndex index.html

Nếu tệp đó không bao gồm index.php gần như tất cả các trang web sử dụng php sẽ trở nên vô dụng.

Dòng thứ hai cần tìm là:

Ứng dụng AddHandler / x-httpd-php .php

Nếu bạn tìm thấy dòng này và nó được nhận xét, hãy đảm bảo bạn bỏ ghi chú bằng cách xóa ký tự '#'. Nếu nó không có ở đó, hãy thêm nó vào cuối tệp cấu hình.

Và, như mọi khi, khi bạn thực hiện thay đổi đối với tệp cấu hình, hãy khởi động lại Apache.

Biết nơi để tìm vấn đề

Cuối cùng, điều quan trọng là bạn phải biết nơi để rẽ đầu tiên khi những điều trên không giúp bạn ra ngoài. Bất cứ khi nào tôi gặp sự cố với Apache mà Occam's Razor không áp dụng, nơi đầu tiên tôi chuyển sang là các tệp nhật ký.

Nếu bạn nhìn vào / Var / log / apache2 bạn sẽ tìm thấy, ít nhất, các tệp sau:

  • access.log: Điều này theo dõi bất kỳ kết nối nào được thực hiện với máy chủ của bạn.
  • error.log: Điều này theo dõi bất kỳ lỗi nào xảy ra với Apache.
  • other_vhosts_access.log: Đây là nơi máy chủ ảo sẽ ghi nhật ký khi máy chủ ảo chưa được quy định tệp nhật ký của chính nó.

Tất nhiên, khi trang web của bạn phát triển, các tệp nhật ký có sẵn của bạn cũng vậy. Bất kể những gì bạn tìm thấy trong / Var / log / apache2 , đó là nơi bạn luôn nên quay đầu tiên khi gặp vấn đề. Ngay cả trước khi bạn google.

Suy nghĩ cuối cùng

Bây giờ bạn sẽ có thể xử lý một số vấn đề phổ biến hơn với máy chủ Apache. Và nếu vấn đề của bạn không phổ biến, bạn cũng biết phải quay đầu để tìm manh mối dẫn bạn đến con đường đúng đắn để sửa chữa.