Câu hỏi Làm thế nào để bạn khởi động lại Apache?


Tôi chuyển từ SLES sang Ubuntu và bây giờ tôi muốn khởi động lại máy chủ cục bộ của mình. Trong SLES tôi đã sử dụng:

rcapache2 restart

nhưng điều này bằng cách nào đó dường như không hoạt động trong Ubuntu. :(

Làm thế nào để tôi khởi động lại Apache của tôi?


225
2017-10-12 10:26


gốc




Các câu trả lời:


Hoặc sudo service apache2 restart cho cách vay mượn từ Red Hat, Hoặc sudo restart apache2 cho cách Upstart mới sáng bóng.


321
2017-10-12 10:51



Tôi nghĩ service là cách LSB và sẽ hoạt động trong hầu hết các bản phân phối, giờ đây Debian và Ubuntu cuối cùng hiểu rồi. - Marius Gedminas
sudo restart apache2 không hoạt động Ubuntu 12.04. Không chắc chắn về các phiên bản Ubuntu khác. - saji89
@ saji89 bạn cần làm sudo service apache2 restartthì nó sẽ hoạt động. - Kevdog777
sudo restart apache2 không hoạt động trong Ubuntu 14.04. sudo service apache2 restart đang làm việc khó khăn. - toesslab.ch


bạn có muốn khởi động lại Apache, hoặc bạn có muốn tải lại duyên dáng cấu hình của nó?

Mọi người đều trả lời câu hỏi đầu tiên; bạn có thể làm thứ hai với

sudo service apache2 reload

Tải lại duyên dáng nhanh hơn một chút và không có thời gian chết.

Có một báo trước: nếu tệp cấu hình apache của bạn chứa lỗi (ví dụ: định cấu hình tệp nhật ký trong thư mục không tồn tại), máy chủ có thể âm thầm thoát mà không in bất kỳ thông báo lỗi nào vào bảng điều khiển. Hầu hết các lỗi khác đều bị bắt bởi apache2ctl configtest cái đó service apache2 reload chạy trước khi thực hiện tải lại thực tế apache2ctl graceful.


97
2017-10-12 13:09



Vâng! Sử dụng duyên dáng là tốt hơn nhiều nếu bạn muốn khởi động lại mà không cần khởi động người xem trang web của bạn! - tommed
Tôi thấy rằng đó là một lợi thế của khởi động lại nếu Apache không chạy thì nó sẽ khởi đầu. -> Will tải lại cũng thế khởi đầu nó? - Torben Gundtofte-Bruun
Tôi không nghĩ như vậy - thậm chí tệ hơn, tải lại sẽ dừng một apache chạy nếu bạn thực hiện một cú pháp lỗi trong tập tin cấu hình. - Marius Gedminas
Luôn luôn chạy sudo apache2ctl configtest trước khi khởi động lại duyên dáng. Khởi động lại duyên dáng sẽ thất bại và apache sẽ bị dừng nếu cấu hình có lỗi cú pháp. - Mikko Rantalainen
@MikkoRantalainen: cảm ơn, tôi đã chỉnh sửa câu trả lời để thả nguyên apache2ctl graceful và thay vào đó chỉ đề xuất service apache2 reload, chạy configtest trước graceful. - Marius Gedminas


Cách được khuyến nghị trong Ubuntu để bắt đầu / dừng dịch vụ (không chỉ Apache) là sử dụng các lệnh start / stop / reload (thực sự là liên kết tượng trưng đến initctl chương trình, một phần của mới nổi).

Đối với các dịch vụ sử dụng di sản /etc/init.d tập lệnh, kịch bản tương ứng sẽ được gọi với các tham số chính xác; cho dịch vụ sử dụng cơ sở hạ tầng mới nổi, sự kiện thích hợp quá trình chuyển đổi sẽ được báo hiệu cho mới nổi daemon qua initctl.

Vì vậy, để bắt đầu / dừng / tải lại / khởi động lại apache trên Ubuntu, bạn có thể sử dụng:

sudo start apache2
sudo stop apache2
sudo reload apache2
sudo restart apache2

26
2017-10-12 10:55





sudo /etc/init.d/apache2 restart

Tất nhiên bạn có thể hoán đổi restart cho stop, start và tôi nghĩ) reload


20
2017-10-12 10:30



Khi thực hiện việc này dưới Ubuntu gần đây, bạn sẽ nhận được một thông báo về cách thực hiện nó theo cách mới, mặc dù nó vẫn sẽ thực hiện lệnh mong muốn của bạn. - jfmessier
Tôi đã không nhận ra rằng Apache đã chuyển sang Upstart. - Oli♦
Tôi không thấy tin nhắn đó nữa. - Tim


Cách Ubuntu:

sudo service apache2 restart|stop|start 

17
2018-03-06 15:06





Như Marius nói duyên dáng nên được sử dụng hoặc để khởi động lại:

sudo apache2ctl graceful

hoặc là

sudo apache2ctl graceful-stop

để ngăn chặn Apache một cách duyên dáng.

Các lệnh này chờ cho đến khi tất cả các yêu cầu cho các trang web đã được phục vụ trước khi khởi động lại / dừng máy chủ web sao cho người dùng của bạn không nhận được một nửa trang web.


10
2017-10-12 14:38





Trước tiên, bạn kiểm tra trạng thái của mình bằng cách sử dụng lệnh này

sudo service apache2 status

sau đó dừng dịch vụ đang chạy

sudo service apache2 stop

sau đó sử dụng lệnh này:

sudo /opt/lampp/lampp start

giải pháp này đã làm việc cho tôi.


4
2018-06-09 17:10





nếu bạn đang cài đặt phiên bản Apache 2.4 trong hệ thống của bạn, để bắt đầu khởi động lại hoặc dừng máy chủ Apache của bạn trên hệ thống cục bộ của bạn, thì bạn nên chạy lệnh sau

./apachectl start

hoặc bạn có thể sử dụng khởi động lại, dừng lại cũng theo yêu cầu của bạn. đây là mã thử nghiệm


2
2017-09-01 11:20





bạn có thể sử dụng dịch vụ để khởi động lại Apache

service apache2 restart

và bạn có thể sử dụng tất cả các chức năng cho nó (Stop - Start - Reload)


1
2018-05-31 23:14





nếu bạn là root: (Trong Ubuntu gốc bị vô hiệu hóa, tôi nghĩ rằng, hơn sử dụng lệnh 'sudo'!)

$ /etc/init.d/apache stop
$ /etc/init.d/apache start
$ /etc/init.d/apache restart
$ /etc/init.d/apache reload 

(Nếu bạn sử dụng a2ensite hoặc a2dissite, bạn phải tải lại cấu hình apache của mình)


-1
2017-10-12 10:35



root không bị vô hiệu hóa, nó không có mật khẩu nếu bạn không tự mình cung cấp. - Mikael Auno
Là //stop apache được cho là một bình luận? nếu có, ký hiệu shell chuẩn sẽ là #stop apache, // không hoạt động trong bash - Mikel
Tài khoản gốc @MikaelAuno bị tắt nếu không có mật khẩu - T0xicCode
@ xav0989 Đó là vấn đề khá rõ ràng. Chắc chắn bạn không thể đăng nhập trực tiếp roothoặc đăng nhập bằng root theo bất kỳ cách nào yêu cầu rootmật khẩu cho vấn đề đó, nhưng có nhiều cách khác để trở thành root. Hãy thử ví dụ sudo -i theo dõi bởi whoami và bạn sẽ thấy rằng bạn thực sự đã đăng nhập root. Ngoài ra, nếu bạn làm ps aux | grep root bạn sẽ thấy rằng bạn đã có rất nhiều quy trình trên hệ thống đang chạy root. Vì vậy, được cho là, root không bị tắt. - Mikael Auno
@MikaelAuno hoặc sudo -E -s. Bởi vô hiệu hóa tôi giả định rằng những gì có nghĩa là bạn không thể đăng nhập trực tiếp root, nhưng bạn vẫn có thể chạy các quy trình root. - T0xicCode