1

Я не могу запустить XAMPP при загрузке OS X Я изучал это в течение некоторого времени, но безуспешно. XAMPP должен быть запущен от имени пользователя root, и я не хочу хранить где-нибудь пароль для root в скрипте и использовать "элементы входа" на панели настроек учетных записей для запуска xampp. Да, это будет работать, но это не правильный путь.

Я пытаюсь запустить его с помощью launchd / users damons / LaunchDaemons. Это включает в себя создание файла plist в каталоге "/ Library / LaunchDaemons".

Я создал файл с именем xampp.startapache.plist и поместил его внутрь:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnableTransactions</key>
<true/>
<key>Label</key>
<string>xampp.startapache</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/XAMPP/xamppfiles/xampp</string>
<string>startapache</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Applications/XAMPP/xamppfiles</string>
</dict>
</plist>

Это было описано здесь, а также на нескольких других подобных страницах справки. Я пытался редактировать файлы вручную, и я также пытался использовать Lingon. Но это просто не работает! Я даже попытался сделать аналогичную запись для файла сценария, расположенного в том же каталоге, который бы отображал время в файле журнала. Файл журнала просто пуст - как будто скрипт не запускается.

Как я могу сделать эту работу?

3 ответа3

2

Вот что в итоге сработало для меня:

Создайте эти два файла:

/Library/LaunchDaemons/xampp.sql.startapache.plist
/Library/LaunchDaemons/xampp.startapache.plist

Внутри первого, добавьте этот код:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnableTransactions</key>
<true/>
<key>Label</key>
<string>xampp.startapache.mysql</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/XAMPP/xamppfiles/xampp</string>
<string>startmysql</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Applications/XAMPP/xamppfiles</string>
<key>KeepAlive</key>
<false/>
<key>AbandonProcessGroup</key>
<true/>
</dict>
</plist>

Во второй добавить этот код:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>EnableTransactions</key>
<true/>
<key>Label</key>
<string>xampp.startapache</string>
<key>ProgramArguments</key>
<array>
<string>/Applications/XAMPP/xamppfiles/xampp</string>
<string>startapache</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/Applications/XAMPP/xamppfiles</string>
<key>KeepAlive</key>
<false/>
<key>AbandonProcessGroup</key>
<true/>
</dict>
</plist>

У меня должно было быть два, потому что, когда у меня не было SQL, один конкретно MySQL не запускался, но Apache был. Это может быть потому, что у меня включен SSL или что-то странное в этом роде. Во всяком случае, если бы они оба решили проблему для меня, и я использовал Console.app для проверки сообщений об ошибках при запуске apache - это тоже было полезно.

1

Я подозреваю, что вы не согласны с ожиданиями запуска программ, которые он запускает. Он в первую очередь не предназначен для вещей, которые нужно просто запустить, а для вещей, которые нужно запустить и поддерживать в живых - поэтому, когда xampp startapache завершает работу, launchd говорит себе:« О Боже , это вышло, мне лучше вычистить останки и начать новый экземпляр "... Я не проверял это с xampp, но я подозреваю, что добавление ключей в .plist, чтобы он не перезапускался (KeepAlive = false) и не очищал порожденные подпроцессы (AbandonProcessGroup = true), поможет:

<key>KeepAlive</key>
<false/>
<key>AbandonProcessGroup</key>
<true/>
0

У меня был тот же самый вопрос, и, хотя ответ cwd работал, он слишком сложен. Я думаю, что ключ превращает AbandonProcessGroup в истину. У меня есть это работает с этим единственным демоном запуска в OS X 10.9.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
 <dict>
  <key>Label</key>
    <string>org.xampp.server</string>
  <key>ProgramArguments</key>
    <array>
      <string>/Applications/XAMPP/xamppfiles/xampp</string>
      <string>start</string>
  </array>
  <key>RunAtLoad</key>
    <true/>
  <key>AbandonProcessGroup</key>
    <true/>
  </dict>
</plist>

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .