Come posso avviare Apache Tomcat all'avvio su Mac OS X?


16

Ho osservato che non esiste una guida completa per l'installazione di Tomcat su OS X che includerà la configurazione per l'avvio all'avvio.

Ecco la guida rapida:

  • installa macports
    • suport port upgrade
    • sudo port upgrade outdated.
  • sudo port install tomcat6o se si desidera controllare altre versioni port list|grep tomcat
  • config è ora su: /opt/local/share/java/tomcat6/conf
  • script di avvio: /opt/local/share/java/tomcat6/bin/tomcatctl

    cp /opt/local/share/java/tomcat6/conf/tomcat-users.xml.sample /opt/local/share/java/tomcat6/conf/tomcat-users.xml nano / opt / local / share / java / tomcat6 /conf/tomcat-users.xml

  • ... controlla l'articolo

Ma mi manca la parte su come farlo funzionare come vero servizio / demone: all'avvio del sistema e facoltativamente per farlo riavviare se si blocca.


Perché usare MacPorts quando hanno binari ufficiali disponibili? Odio l'affidamento che alcuni utenti Mac hanno per MacPorts, specialmente quando la maggior parte dei pacchetti MacPorts non sono aggiornati e quindi ti apri alle falle della sicurezza.
Cromulent,

Simone, questo è necessario perché macports è anche un gestore di pacchetti, quindi in questo modo supererai molti problemi. Inoltre sarai in grado di aggiornare Tomcat molto facilmente.
sorin,

Risposte:


12

Questo serve per installare Tomcat come demone sulla porta 8080 ma abilitare anche la porta 80 usando un reindirizzamento del firewall. È stato testato su Mac OS 10.6 ma dovrebbe funzionare anche con 10.5.

Modifica /opt/local/share/java/tomcat6/conf/server.xmle aggiungi proxyport="80" URIEncoding="UTF-8"all'interno <Connector .../>.

Per inoltrare la porta da 80 a 8080, eseguire questa linea e aggiungerla /bin/catalina.sh:

sudo ipfw add 100 fwd 127.0.0.1,8080 tcp from any to any 80 in

Assegna memoria sufficiente alla macchina Java o potresti avere problemi in un secondo momento. Dentro/opt/local/share/java/tomcat6/conf/local.env

export JAVA_JVM_VERSION=CurrentJDK
export JAVA_OPTS="-Xmx3000M -Xms3000M -Djava.awt.headless=true -Duser.timezone=UTC"

Nel mio esempio ho allocato ~ 3Gb o RAM ma puoi adattarlo, comunque non mettere meno di 1 GB se stai eseguendo hudsonTomcat.

In esecuzione come servizio

Esegui nano /Library/LaunchDaemons/org.apache.tomcat.pliste incolla il codice seguente:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"     "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Disabled</key>
    <false/>
    <key>Label</key>
    <string>org.apache.tomcat</string>
    <key>ProgramArguments</key>
    <array>
            <string>/opt/local/share/java/tomcat6/bin/catalina.sh</string>
            <string>run</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

Verifica che launchd abbia rilevato il tuo nuovo demone, se non riavvia :(

launchctl list|grep tomcat

Avviare tomcat manualmente.

launchctl start org.apache.tomcat

Se lo stato è diverso da -, hai un problema e dovresti investigarlo: launchctl log level debuge controlla /var/log/system.log.


1
Potrei essere io perché sono nuovo su Mac (OS X 10.8.2) ma dovevo farlo: sudo launchctl load -w /Library/LaunchDaemons/org.apache.tomcat.plist per farlo partire
Steve


1

Per il lancio di Snow Leopard all'avvio ho creato un file plist in / Library / LaunchDaemons / Il file plist sarà simile a questo (di seguito, modifica per adattarsi alle tue directory). È possibile avviare / arrestare il servizio per il test emettendo "launchctl load org.macports.tomcat6.plist" o "launchctl unload org.macports.tomcat6.plist". Una volta che hai funzionato riavviare per provare l'avvio automatico all'avvio.


sh-3.2# more org.macports.tomcat6.plist
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd" >
<plist version='1.0'>
<dict>
<key>Label</key><string>org.macports.tomcat6</string>
<key>ProgramArguments</key>
<array>
        <string>/opt/local/bin/daemondo</string>
        <string>--label=tomcat6</string>
        <string>--start-cmd</string>
        <string>/opt/local/bin/tomcatctl</string>
        <string>start</string>
        <string>;</string>
        <string>--pid=fileclean</string>
        <string>--pidfile</string>
        <string>/opt/local/share/java/tomcat6/logs/tomcat6.pid</string>
</array>
<key>Debug</key><false/>
<key>Disabled</key><false/>
<key>OnDemand</key><false/>
<key>RunAtLoad></key><true/>
</dict>
</plist>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.