Рестартирайте Apache на Ubuntu, RedHat, Gentoo и други Linux Distros
Ако хоствате на уебсайта си на платформа с отворен код, е много вероятно тази платформа да е Apache. Ако случаят е такъв и вие хоствате със сървър на Apache, тогава когато работите върху редактирането на файла Apache httpd.conf или друг конфигурационен файл (като добавяне на нов виртуален хост), ще трябва да рестартирате Apache, така че промените ще влязат в сила. Това може да изглежда страшно, но за щастие това е много лесно.
Всъщност можете да го направите след около една минута (без да броите времето, което ще ви отнеме, за да прочетете тази статия, за да получите инструкциите стъпка по стъпка).
Приготвяме се да започнем
За да рестартирате своя уеб сървър на Linux Apache, най-добрият начин е да използвате командата init.d. Тази команда е достъпна за много дистрибуции на Linux, включително Red Hat, Ubuntu и Gentoo. Ето как ще направите това:
- Влезте в уеб сървъра си чрез SSH или telnet и се уверете, че вашата система включва командата init.d. Обикновено се намира в директорията / etc, така че директорията:
ls / etc / i *
- Ако сървърът ви използва init.d, ще получите списък на файловете за инициализация в посочената папка. Потърсете apache или apache2 в следващата папка. Ако имате init.d, но нямате файл за инициализация на Apache, отворете раздела на тази статия с заглавието "Рестартиране на вашия сървър без Init.d", в противен случай може да продължите.
- Ако имате init.d и файл за инициализация на Apache, можете да рестартирате Apache с помощта на тази команда:
/etc/init.d/apache2 презаредете
Може да се наложи да използвате sudo като потребител на root, за да изпълните тази команда.
Опцията за презареждане
Използването на опцията за презареждане е най-добрият начин за рестартиране на вашия Apache сървър, тъй като поддържа сървъра в ход (процесът не е убит и рестартиран). Вместо това просто презарежда файла httpd.conf, който обикновено е всичко, което искате да направите в този случай.
Ако опцията за презареждане не работи за вас, вместо това можете да опитате да използвате следните команди:
- /etc/init.d/apache2 restart - тази команда убива сървърния процес и след това го рестартира
- /etc/init.d/apache2 stop - тази команда убива сървърния процес
- /etc/init.d/apache2 start - тази команда започва сървъра (и ще хвърли съобщение за грешка, ако сървърът вече е стартиран)
Рестартиране на сървъра без Init.d
Добре, затова искахме да пропуснете, ако вашият сървър няма init.d. Ако това сте вие, не се отчайвайте, пак можете да рестартирате сървъра си. Просто трябва да го направите ръчно с командата apachectl. Ето стъпките за този сценарий:
- Влезте в машината си за уеб сървъри, като използвате SSH или telnet
- Стартирайте програмата за управление Apache:
apachectl грациозно
Може да се наложи да използвате sudo като потребител на root, за да изпълните тази команда.
Командата apachectl graceful казва на Apache, че искате да рестартирате сървъра грациозно, без да прекъсвате всички отворени връзки. Той автоматично проверява конфигурационните файлове, преди да започне рестартирането, за да се увери, че Apache не умира.
Ако apachectl graceful не рестартира сървъра ви, има още няколко неща, които можете да опитате.
- apachectl рестартирайте, за да рестартирате сървъра. Ако сървърът не работи, стартира се. Тази команда също така изпълнява тест за конфигурация, за да се увери, че Apache няма да умре, когато се рестартира.
- apachectl спрете да спрете Apache сървъра
- apachectl започват да стартират сървъра на Apache (ще хвърлят съобщение за грешка, ако Apache работи)
- apachectl configtest за тестване на синтаксиса на конфигурационния файл.
Съвети за рестартиране на вашия Apache сървър:
- init.d reload и apachectl graceful както презаредете конфигурационните файлове, така и грациозно рестартирайте уеб сървъра. Всички текущи връзки могат да бъдат завършени. Това е предпочитаният подход и трябва първо да опитате.
- init.d restart и apachectl restart презарежда конфигурационните файлове и се рестартира. Всички текущи връзки се прекратяват незабавно.
- Ако сървърът не работи, тези команди ще го стартират.
- Ако нито една от тези команди не работи, трябва да изключите своя Apache сървър (снема го за кратко време) с командата init.d stop или apachectl stop, да изчакате най-малко 10 секунди и да стартирате init.d start start apachectl start
- Ако това не работи, трябва да проверите конфигурационните си файлове, за да сте сигурни, че няма проблем с тях, като използвате apachectl graceful