Помню как я начинал осваивать PHP… Это была где-то середина 2004 года, вроде июль месяц и основной проблемой на тот момент стал не столько синтаксис, не столько конфигурация PHP, сколько конфигурация и развертывание окружения — веб сервера Apache.
Время шло, апач прогрессировал и разворачивать его становилось все проще и проще. Особо неинтересующиеся в устройстве окружения вообще не заморачивались и использовали Денвер, MAMP или Vertigo, но мне нужно было полное понимание всех процессов, происходящих от запуска веб-сервера и до ответа на клиентский запрос, поэтому тогда очень много времени было убито на документацию апача и понимание тонкостей его развертывания и конфигурирования.
Время шло дальше и сейчас, что бы развернуть апач и настроить первый виртуальный хост, у меня уходит чуть более минуты:
# aptitude install apache2 php5 php5-json php5-mysql php5-sqlite php5-tidy # mkdir -p /home/azazel/projects/vhost/public # nano /etc/apache2/sites-available/vhost.local [...] <virtualhost *:80> ServerName vhost.local DocumentRoot /home/azazel/projects/vhost/public </virtualhost> [...] # echo -e "\n127.0.0.7\tvhost.local" >> /etc/hosts # a2ensite vhost.local # apache2ctl restart
…А пару месяцев назад я столкнулся с Tomcat6. И вроде бы все было логично и даже в коробочной поставке имелись webbased инструменты «Tomcat Web Application Manager» и «Tomcat Virtual Host Manager», но как ими пользоваться для меня была полная загадка, ибо словосочетания «Context Path», «XML Configuration file URL» и «WAR or Directory URL» вгоняли в уныние. Не столько непонятным переводом (потому что он был понятен), сколько тем смыслом, который был вложен в эти словосочетания.
Еще большее уныние вызывал тот факт, что установленный томкат я обнаружил разбросаным по всей системе, как макаронины после вызрыва на фабрике.
Тут тебе и каталог /etc/tomcat6 с конфигурациями, вот и /var/lib/tomcat6 со ссылками на разные части системы:
root@nemezys:~/ # ls -la /var/lib/tomcat6/ total 16 drwxr-xr-x 4 root root 4096 2009-11-13 20:47 . drwxr-xr-x 63 root root 4096 2009-11-11 12:35 .. lrwxrwxrwx 1 root root 12 2009-10-31 00:50 conf -> /etc/tomcat6 lrwxrwxrwx 1 root root 17 2009-10-31 00:50 logs -> ../../log/tomcat6 drwxrwxr-x 4 root tomcat6 4096 2009-11-13 20:42 webapps lrwxrwxrwx 1 root root 19 2009-10-31 00:50 work -> ../../cache/tomcat6 root@nemezys:~/ # ls -la /etc/tomcat6/ total 100 drwxr-xr-x 4 root root 4096 2009-10-31 00:51 . drwxr-xr-x 152 root root 12288 2009-11-20 15:58 .. drwxrwxr-x 4 root tomcat6 4096 2009-11-13 21:28 Catalina -rw-r--r-- 1 root root 3665 2009-05-14 02:15 catalina.properties -rw-r--r-- 1 root root 1396 2009-05-14 02:15 context.xml -rw-r--r-- 1 root root 2370 2009-10-26 09:19 logging.properties drwxr-xr-x 2 root root 4096 2009-10-31 00:51 policy.d -rw-r--r-- 1 root root 6648 2009-11-14 00:29 server.xml -rw-r----- 1 root tomcat6 1222 2009-11-12 16:54 tomcat-users.xml -rw-r--r-- 1 root root 50757 2009-05-14 02:15 web.xml
И тогда я принялся штудировать документацию. Ее, как оказалось, в Сети было предостаточно, хотя вся она исключительно на английском, что многих может оттолкнуть. Конечно же самая полная информация находится на оф.сайте производителя, а вот на многочисленных форумах вопросы конфигурирования если и решались, то довольно запутанно и совершенно без пояснений, как будто любой аспект должен быть понятен априори.
Итогом двухдневного вечернего изучения документации и многочисленных экспериментов стало понимание назначения некоторых компонент.
Так tomcat-users.xml хранит в себе настройки групп и пользователей, которым доступно управление тем или иным виртуальным хостом. Зарезервированными группами являются admin и manager. Первый может создавать виртуальные хосты, второй же умеет только разворачивать и сворачивать приложения в рамках определенного ему хоста.
server.xml оказался полезным, что бы развернуть первый vhost. Именно в нем располагается секция
<host name="vhost.local" appBase="vhost.local" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> </host>
Располагаться файлы этого вхоста будут в директории /var/lib/tomcat6/vhost.local, а если мы хотим автоматизировать разворачивание проекта (например впоследствии через maven, о чем позже), то нам нужно сконфигурировать приложение менеджера в этом хосте:
# mkdir /var/lib/tomcat6/Catalina/vhost.local
# cp /var/lib/tomcat6/Catalina/localhost/manager.xml /var/lib/tomcat6/Catalina/vhost.local/Вобщем-то и все. Осталось в /var/lib/tomcat6/vhost.local разместить файл ROOT.war или каталог ROOT, содержащий файлы нашего проекта и открыть в браузере адресс http://vhost.local:8080/, что бы попасть на главную страницу нашего первого виртуального хоста у томката.
Чего ждать далее: как я знакомился с maven, первое приложение на Spring, подключение Hibernate и много много другого, что предстоит использовать в полноценных совеременных веб приложениях. И конечно же все буду подавать в сравнении с PHP, ZendFramework, Doctrine и другими библиотеками и подходами, характерными для PHP
+1. Согласен что после апача томкат смотрится как минимум немного «разбросанно» =)
Кстати, очень, я считаю, полезное направление в писании статей и книг — XXX for YYY developers. Во всех олдскульных книгах все сравнивают с C++, а вот например мне очень понравились статьи типа GIT for SVN users и Python for PHP developers где новое подается на контрасте с «родным».
хммм, это статья для совсем идиотов или для начинающих??? :)))))))))
мрак, автор ты здоров? :))))))))))))
PHP — отстой для дебилов у которых руги из сраки
А что не для дибилов? Медленный Perl, медленная Java, медленный windows-only ASP.net?
Ну я бы не стал заходить так далеко и называть джаву медленной…