Khởi động lại Apache trên Ubuntu, RedHat, Gentoo và các Linux Distro khác
Nếu bạn đang lưu trữ trang web của mình trên nền tảng nguồn mở, rất có khả năng nền tảng này là Apache. Nếu trường hợp này xảy ra và bạn đang lưu trữ với máy chủ Apache thì khi bạn đang chỉnh sửa tệp httpd.conf Apache hoặc tệp cấu hình khác (như thêm máy chủ ảo mới), bạn sẽ cần khởi động lại Apache để thay đổi của bạn sẽ có hiệu lực. Điều này có vẻ đáng sợ, nhưng may mắn là điều này rất dễ thực hiện.
Trong thực tế, bạn có thể làm như vậy trong khoảng một phút (không tính thời gian cần để đọc bài viết này để có được hướng dẫn từng bước).
Bắt đầu
Để khởi động lại máy chủ web Apache Apache của bạn, cách tốt nhất là sử dụng lệnh init.d. Lệnh này có sẵn trên nhiều bản phân phối Linux bao gồm Red Hat, Ubuntu và Gentoo. Đây là cách bạn sẽ làm điều này:
- Đăng nhập vào máy chủ web của bạn bằng SSH hoặc telnet và đảm bảo rằng hệ thống của bạn bao gồm lệnh init.d. Nó thường được tìm thấy trong thư mục / etc, vì vậy hãy liệt kê thư mục đó:
ls / etc / i *
- Nếu máy chủ của bạn sử dụng init.d, bạn sẽ nhận được một danh sách các tệp khởi tạo trong thư mục được chỉ định đó. Hãy tìm apache hoặc apache2 trong thư mục đó tiếp theo. Nếu bạn có init.d, nhưng không có tệp khởi tạo Apache, hãy chuyển đến phần của bài viết này với tiêu đề đọc "Khởi động lại máy chủ của bạn mà không có Init.d", nếu không bạn có thể tiếp tục.
- Nếu bạn có init.d và một tệp khởi tạo Apache, thì bạn có thể khởi động lại Apache bằng lệnh này:
/etc/init.d/apache2 tải lại
Bạn có thể cần sudo trong vai trò người dùng root để chạy lệnh này.
Tùy chọn tải lại
Sử dụng tùy chọn tải lại là cách tốt nhất để khởi động lại máy chủ Apache của bạn, vì nó giữ cho máy chủ đang chạy (quá trình này không bị giết và khởi động lại). Thay vào đó, nó chỉ tải lại tệp httpd.conf, thường là tất cả những gì bạn muốn làm trong trường hợp này.
Nếu tùy chọn tải lại không hoạt động cho bạn, bạn cũng có thể thử sử dụng các lệnh sau để thay thế:
- /etc/init.d/apache2 restart - lệnh này sẽ giết chết quá trình máy chủ và sau đó khởi động lại nó
- /etc/init.d/apache2 stop - lệnh này giết chết quá trình máy chủ
- /etc/init.d/apache2 start - lệnh này khởi động máy chủ (và sẽ ném một thông báo lỗi nếu máy chủ đang chạy)
Khởi động lại máy chủ của bạn mà không cần Init.d
OK, vì vậy đây là nơi chúng tôi yêu cầu bạn bỏ qua nếu máy chủ của bạn không có init.d. Nếu đây là bạn, đừng thất vọng, bạn vẫn có thể khởi động lại máy chủ của bạn. Bạn chỉ cần làm điều đó bằng tay với lệnh apachectl. Dưới đây là các bước cho kịch bản này:
- Đăng nhập vào máy chủ web của bạn bằng SSH hoặc telnet
- Chạy chương trình điều khiển apache:
apachectl duyên dáng
Bạn có thể cần sudo trong vai trò người dùng root để chạy lệnh này.
Lệnh apachectl duyên dáng cho Apache biết rằng bạn muốn khởi động lại máy chủ một cách duyên dáng mà không hủy bỏ bất kỳ kết nối mở nào. Nó tự động kiểm tra các tập tin cấu hình trước khi bắt đầu khởi động lại để đảm bảo Apache không chết.
Nếu apachectl duyên dáng không khởi động lại máy chủ của bạn, có một vài thứ khác bạn có thể thử.
- apachectl khởi động lại để khởi động lại máy chủ. Nếu máy chủ không chạy nó được khởi động. Lệnh này cũng chạy một thử nghiệm cấu hình để đảm bảo rằng Apache sẽ không chết khi nó khởi động lại.
- apachectl dừng lại để dừng máy chủ Apache
- apachectl bắt đầu khởi động máy chủ Apache (sẽ ném một thông báo lỗi nếu Apache đang chạy)
- apachectl configtest để kiểm tra cú pháp tệp cấu hình.
Lời khuyên cho việc khởi động lại máy chủ Apache của bạn:
- init.d reload và apachectl duyên dáng cả hai tải lại các tệp cấu hình và khởi động lại máy chủ web một cách duyên dáng. Mọi kết nối hiện tại đều được phép hoàn thành. Đây là cách tiếp cận ưa thích và nó phải là những gì bạn thử trước tiên.
- init.d restart và apachectl restart tải lại các tập tin cấu hình và khởi động lại. Mọi kết nối hiện tại đều bị chấm dứt ngay lập tức.
- Nếu máy chủ không chạy, các lệnh này sẽ khởi động.
- Nếu cả hai lệnh này đều không hoạt động, bạn nên tắt máy chủ Apache của bạn (lấy nó xuống trong một thời gian ngắn) với lệnh init.d stop hoặc apachectl stop, chờ ít nhất 10 giây và sau đó chạy init.d start start apachectl start
- Nếu điều đó không hiệu quả, bạn nên chạy một kiểm tra trên các tệp cấu hình của bạn để đảm bảo rằng không có vấn đề gì với chúng bằng cách chạy apachectl duyên dáng