Veja o que acabou funcionando para mim:
Crie estes dois arquivos:
/Library/LaunchDaemons/xampp.sql.startapache.plist /Library/LaunchDaemons/xampp.startapache.plist
Dentro do primeiro, adicione este código:
<?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>
No segundo, adicione este código:
<?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>
Eu tive que ter dois porque quando eu não tinha o sql, o mysql não estava começando, mas o apache estava. Isso pode ser porque eu tenho SSL ativado ou algo estranho assim. De qualquer forma, ter ambos resolvido o problema para mim, e eu usei o console.app para verificar se há mensagens de erro ao iniciar o apache - que foi útil também.