У нас есть экземпляр Red Hat Enterprise Linux 4, на котором работает Apache на порту по умолчанию. Мы хотим добавить второй экземпляр Apache, который мы можем перезапустить полностью отдельно от первого. Мы можем это сделать?
Возможно, существует еще один простой в обслуживании веб-сервер, который может запускать очень простые сценарии PHP на нестандартном порту? Мы хотим иметь возможность запускать php-скрипт удаленно без использования экземпляра Apache по умолчанию, запущенного на сервере RHEL. Любые идеи?
В типичной среде вы можете создать копию httpd.conf, а затем изменить следующие свойства нового файла.
# pid file PidFile run/httpd.pid # http listen port Listen 80 # log files ErrorLog logs/error_log CustomLog logs/access_log combined # server name ServerName default_host_name # document root for the default site DocumentRoot "/var/www/html"
И в зависимости от вашей реализации вам может потребоваться изменить дополнительные свойства, такие как LockFile (если вы работаете в NFS)
И, как всегда, вам придется настроить определения виртуальных хостов, если вы их используете.
Управление новым экземпляром
Скажем, например, если имя вновь скопированного файла /etc/httpd/conf/instance1.conf, вы можете запустить этот новый экземпляр с помощью следующей команды
httpd -f /etc/httpd/conf/instance1.conf -k start
Другой полезной опцией команды httpd будет опция -t для проверки файла конфигурации на наличие ошибок.
httpd -f /etc/httpd/conf/instance1.conf -t
См. 'Man 8 httpd' для получения дополнительной информации о том, как использовать команду httpd.
И, как намекали другие, вам следует создать отдельный сценарий инициализации, который поможет вам управлять этим экземпляром. Стандартный сценарий RH /etc/init.d/httpd должен выступать в качестве отправной точки.
Да, довольно просто. Вам просто нужно запустить второй экземпляр с нестандартным конфигурационным файлом в командной строке. Если вы выполните поиск по запросу «несколько экземпляров apache», вы найдете то, что вам нужно.
Наличие двух разных файлов конфигурации поможет вам в этом. В дополнение к файлам PID, которые упоминал Кристапс, вам нужно будет либо прослушивать разные порты (кроме 80 и 443), либо подключаться к другому интерфейсу.
Создайте 2 сценария инициализации, оба указывают на разные файлы конфигурации (опция -f). Не забудьте создать 2 разных файла pid.
Скопируйте файлы конфигурации из / etc / httpd в другой каталог. Измените их, изменив ServerRoot, DocumentRoot и другие переменные, связанные с путями, в httpd.conf и других. Затем создайте отдельный сценарий инициализации, который вызывает httpd -f
Это, безусловно, возможно. Создание двух сценариев init.d для разделения этих экземпляров было бы лучшим способом сделать это, вы могли бы фактически использовать предоставленный сценарий 'httpd' и изменить его для своих опций, которые будут использоваться во втором экземпляре.
Сценарии initd просто запускают службы с предпочтительными параметрами. Вы также можете запускать другие экземпляры через командную строку, используя двоичный файл в любое время.
/ usr / sbin / apachectl
Это все, что делает сценарий init.d, за исключением того, что он заполняет такие параметры, как «Язык», «Файл конфигурации» и другие. Фактически, сценарии init.d часто ссылаются на переменные, созданные в других местах, таких как / etc / sysconfig / httpd. Изменение переменных в этом файле предназначено для вашего сценария init.d, который использует двоичный файл. Это просто цепочка в меру простого кода.