Mac OS X'te Apache Tomcat'i önyüklemede nasıl başlatırım?


16

Tomcat'i OS X'e yüklemek için, önyükleme zamanında başlayacak şekilde ayarlamayı içeren tam bir kılavuz olmadığını gözlemledim.

İşte hızlı rehber:

  • yüklemek MacPorts
    • suport port upgrade
    • sudo port upgrade outdated.
  • sudo port install tomcat6veya başka bir sürüm kontrolü istiyorsanız port list|grep tomcat
  • config şu anda: /opt/local/share/java/tomcat6/conf
  • başlangıç ​​komut dosyası: /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

  • ... makaleyi kontrol et

Ama nasıl gerçek hizmet / daemon olarak çalıştırmak için bir parçası eksik: sistem açılışında ve isteğe bağlı çökmesi durumunda yeniden başlatmak için.


MacPorts'u resmi ikili dosyaları olduğunda neden kullanmalıyım? Bazı Mac kullanıcılarının MacPorts'a olan güveninden nefret ediyorum, özellikle de çoğu MacPorts paketi güncel olmadığında ve böylece kendinizi güvenlik açıklarına açtığınızda.
Cromulent

Simon, bu gereklidir çünkü macports aynı zamanda bir paket yöneticisidir, böylece bu yolu kullanarak birçok sorunun üstesinden geleceksiniz. Ayrıca tomcat'i çok kolay bir şekilde yükseltebilirsiniz.
sorin

Yanıtlar:


12

Bu, tomcat'i 8080 numaralı bağlantı noktasına bir arka plan programı olarak yüklemek içindir , ancak bir güvenlik duvarı yönlendirmesi kullanarak 80 numaralı bağlantı noktasını da etkinleştirin. Mac OS 10.6'da test edildi, ancak 10.5 ile de çalışmalıdır.

İçeride düzenleme /opt/local/share/java/tomcat6/conf/server.xmlve ekleme .proxyport="80" URIEncoding="UTF-8"<Connector .../>

İçin yönlendirme port 8080 80 bu çizgiyi çalıştırın ve bunu eklerim /bin/catalina.sh:

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

Java makinesine yeterli bellek atayın , aksi takdirde başınız derde girebilir. içeride/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"

Örneğimde ~ 3Gb veya RAM ayırdım ama bunu uyarlayabilirsiniz, hudsontomcat içinde çalışıyorsanız yine de 1GB'den daha az koymayın .

Hizmet olarak çalıştırma

nano /Library/LaunchDaemons/org.apache.tomcat.plistAşağıdaki kodu çalıştırın ve yapıştırın:

<?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>

Launchd'un size yeniden başlatılmazsa yeni bir daemon algıladığını kontrol edin :(

launchctl list|grep tomcat

Tomcat'i manuel olarak başlatın.

launchctl start org.apache.tomcat

Durum başka bir şeyse -, bir sorununuz var ve araştırmalısınız: launchctl log level debugkontrol edin /var/log/system.log.


1
Mac'te yeni olduğum gibi olabilir (OS X 10.8.2), ancak yapmak zorundaydım: sudo launchctl load -w /Library/LaunchDaemons/org.apache.tomcat.plist'i başlatmak için
Steve

1

Tomcat'i başlangıçta yürütülmesi gereken bir öğe olarak kaydetmeniz gerekir. Mac OS'de bu, launchd ( http://developer.apple.com/macosx/launchd.html ) tarafından ele alınır . Launchd'un otomatik yeniden başlatmayı destekleyip desteklemediğini bilmiyorum, ancak aksi takdirde gözetmen gibi bir şeye bakmalısınız ( http://supervisord.org/ ).


Evet, launchd'ın hem evet / hayır hem de dört isteğe bağlı koşulda bir tutma seçeneği vardır.
flumignan

1

Başlangıçta Snow Leopard lansmanı için / Library / LaunchDaemons / plist dosyasında aşağıdaki gibi bir plist dosyası oluşturdum (aşağıda dizinlerinize uyacak şekilde değiştirin). "Launchctl load org.macports.tomcat6.plist" veya "launchctl unload org.macports.tomcat6.plist" komutunu vererek hizmeti sınama için başlatabilir / durdurabilirsiniz. Çalıştırdıktan sonra, önyüklemede otomatik başlatmayı kanıtlamak için yeniden başlatın.


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>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.