Я использую FreeBSD 8.3 и Apache 2.2. Я не устанавливал Apache из портов, а скомпилировал его из исходного кода, потому что я хотел переместить двоичный файл и конфигурацию на другой путь (я собираю все основные производственные демоны и их конфигурации в одном месте). В любом случае я основал файл /usr/local/etc/rc.d/apache22 на другом сервере, на котором он был установлен из портов, я только изменил пути двоичного кода и конфигурации внутри.
Я могу выполнить его вручную с помощью /usr/local/etc/rc.d/apache22 start, однако даже с apache22_enable = "YES" в /etc/rc.conf он не запускается. Все разрешения и права собственности идентичны другому серверу, на котором он работает.
Что мне не хватает, и есть ли способ отладить такие вещи?
Если ты бежишь /usr/local/etc/rc.d/apache22 rcvar
он сообщит вам переменную, на которую он смотрит, и то, что она установлена в rc.conf, но если она начинается правильно с start
(в отличие от onestart
или forcestart
) он должен правильно запускаться при загрузке.
Если это не дает вам немедленного ответа и решения, вероятно, будет проще, если вы забудете о основание ваши сценарии на другом (сценарий Apache имеет дополнительную сложность), и вместо этого начните с начала с этого руководства, чтобы практические сценарии rc.d.
Если вы будете следовать этим инструкциям, вам придется изо всех сил создавать неработающий скрипт.
В качестве бонуса вы узнаете все о том, как работает последовательность rc.d, и сможете лучше понимать и устранять неполадки в будущем.