Отказ от ответственности: я не администратор сервера, я пользователь Windows, который вел жизнь грешных мастеров установки и перетаскивания
Я пытаюсь установить Tomcat на CentOS 5, размещенном на выделенном виртуальном сервере MediaTemple.
Я в основном следил это руководство:
[root @ myserver bin] # ./startup.sh
Using CATALINA_BASE: /root/apache-tomcat-6.0.14 Using CATALINA_HOME: /root/apache-tomcat-6.0.14 Using CATALINA_TMPDIR: /root/apache-tomcat-6.0.14/temp Using JRE_HOME: /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/ [root@myserver bin]#
Есть ли шаг, который я здесь пропустил?
Изменить: теперь я обнаружил, просмотрев журнал, что происходит следующая ошибка:
Произошла ошибка при инициализации виртуальной машины. Не удалось зарезервировать достаточно места для кучи объектов.
Я решил эту проблему, внимательно следуя этому руководству:
http://de0ris.blogspot.com/2008/08/installing-tomcat-6x-on-centos-5.html
Как упоминалось в комментариях выше, JRE и JDK загружаются отдельно. Я не мог найти их ни в одном диспетчере пакетов, поэтому мне пришлось загрузить их напрямую и запустить.
Требуется ли Tomcat6? Какая версия Centos? (Я предполагаю, что «Tomcat какой-то» и «текущий Centos», который на момент написания этой статьи был 5,3)
Репозиторий jpackage не нужен, если вы не хотите Tomcat 6. Кроме того, Centos 5.3 поставляется с openjdk 1.6.0, который прошел Java SE 6 TCK.
Просто «yum install tomcat5» должен включить все необходимые зависимости (включая openjdk), многие из которых будут основаны на исходных кодах jpackage. После того, как он установлен, все, что вам нужно, это "запуск службы tomcat5", чтобы запустить его. ПРИМЕЧАНИЕ. Запуск вашего веб-контейнера с правами root - это очень и очень плохо, потому что это серьезная угроза безопасности. Служба tomcat5, установленная версией репозитория, передаст свои разрешения пользователю tomcat с более ограниченными разрешениями. Чтобы tomcat запускался автоматически при загрузке системы, используйте команду chkconfig tomcat5 on.
В приведенном выше случае порт 8080, вероятно, заблокирован брандмауэром по умолчанию. Вы можете отключить брандмауэр (рекомендуется только для проверки возможности подключения, не запускайте без брандмауэра в производственной среде) с помощью "service iptables stop". Centos предоставляет как графический интерфейс, так и инструмент текстового пользовательского интерфейса (system-config-securitylevel и system-config-securitylevel-tui соответственно) для изменения брандмауэра, или вы можете использовать iptables напрямую (см. «Man iptables»).
Что ж, похоже, что Tomcat запускается правильно, и мы рассмотрели типичные вещи, которые нельзя пропустить. Я бы проверил, есть ли на машине брандмауэр. Я не эксперт по Centos, поэтому не знаю, используют ли они его по умолчанию. Как root выполните:
netstat -lnp | grep 8080
Если это что-то возвращает, ваш сервер работает и прослушивает 8080, но что-то (брандмауэр) блокирует доступ к нему.
Если он не работает, вам нужно еще что-нибудь покопаться. У вас должен быть файл "catalina.out" везде, где у вас установлен tomcat для входа. Насколько я помню, это должно быть «/ путь / к / tomcat / server / logs». Проверьте это и посмотрите, не возникают ли исключения. Могу дать еще несколько подсказок о том, что происходит.
Произошла ошибка при инициализации виртуальной машины. Не удалось зарезервировать достаточно места для кучи объектов.
Недостаточно виртуальной памяти для запуска виртуальной машины. То есть не хватает физической памяти и подкачки для размещения запрошенной вами стороны кучи. -Xms
. Когда вы работаете в виртуальной среде, вам нужно поговорить с Media Temple об увеличении объема виртуальной памяти, доступной вашему экземпляру.
Хм. В основном вы находитесь на открытом VZ VPS, попробуйте xen или установите jboss, он также поставляется с tomcat, это решит проблему подкачки памяти.
http://davidanand.blogspot.com/2010/06/jboss-tomcat-on-openvz-centos.html
Надеюсь это поможет ;)