Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 3
Сергій Галашин - 09/29/2009
Продовжуємо розповідь про налаштування середовища для CFML-розробника.
В першій частині ми дізналися як налаштувати Apache 2, PHP 5, Java та ColdFusion 8.
В другій частині ми детально встановлювали та налаштовували ColdFusion 9.
Нарешті, дійшла черга й до мого нового улюбленця: Railo.
Я покладаю великі надії на цей CFML-двигун та вже пробую використати його для нових проектів.
Як заведено, для початку нам знадобиться дистрибутив, а саме стандартна версія Railo Server без JRE для всих ОС.
Скачаний tar.gz треба розпакувати та перемістити в /opt/railo.
Наш Railo насправді вже готовий до роботи, в чому легко переконатися виконавши команду
/opt/railo/bin/httpd.sh start
За кільканадцять секунд можна буде відкрити http://localhost:8600/ (стандартний порт) та побачити вітальне демо:
Так само можна завітати до адміністратора веб-контексту за умовчанням:
Але наша задача дещо ширша, тому вимикаємо Railo-server та переходимо до конфігурування.
Варто зауважити, що в цьому випадку немає проблеми конфлікту з CF, тому домашньою текою для хосту буде взято ту ж саму, що й для CF8.
В ній зберігаються всі мої CFML-проекти та скрипти, тому це буде зручно та виправдано.
Спочатку нам потрібно зібрати модуль Apache.
cd /opt/railo
./configure --with-java-home=/usr/lib/jvm/java-6-sun/ --with-apxs=/usr/bin/apxs2
Зауважу, що ключ java-home не обов'язковий, якщо у вас потрібна версія Java встановлена за умовчанням.
Треба уважно переглянути виведення на предмет повідомлень про помилки, які обов'язково треба виправити до переходу на до наступних команд:
make
sudo make install
В результаті цього ми отримаємо встановлений модуль /usr/lib/apache2/modules/mod_caucho.so
Через це відмінне ім'я (caucho) решта налаштувань теж матимуть його для одноманітності.
У випадку, якщо Railo змінить httpd.conf, його знову-так треба буде почистити аби запобігти дублюванню директив.
Натоміть створити /etc/apache2/cauchoconnector з таким вмістом:
<IfModule mod_caucho.c>
ResinConfigServer localhost 6800
CauchoConfigCacheDirectory /tmp
CauchoStatus yes
</IfModule>
Ініціалізація модуля аналогічна попередникам:
/etc/apache2/mods-available/caucho.load
LoadModule caucho_module /usr/lib/apache2/modules/mod_caucho.so
a2enmode caucho
Створення віртуального хосту теж вже знайоме:
/etc/apache2/sites-available/localhost.railo
NameVirtualHost localhost.railo
<VirtualHost localhost.railo>
ServerAdmin SetYourEmail@ServerName.tld
ServerAlias localhost.railo
ServerName localhost.railo
DocumentRoot /home/trovich/www/cfm
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/trovich/www/cfm/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
allow from all
DirectoryIndex index.cfm index.html index.htm
</Directory>
ErrorLog /var/log/apache2/error.localhost.railo.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.localhost.railo.log combined
Include cauchoconnector
</VirtualHost>
a2ensite localhost.railo
sudo /etc/init.d/apache2 restart
Так само робимо скрипт запуску, текст якого трішки відрізняється:
#! /bin/sh
java=/usr/lib/jvm/java-6-sun/bin/java
script=`/bin/ls -l $0 | awk '{ print $NF; }'`
while test -h "$script"
do
script=`/bin/ls -l $script | awk '{ print $NF; }'`
done
exec $java -jar /opt/railo/lib/resin.jar $*
Зауважу, що за основу тексту цього скрипта було взято оригінальний /opt/railo/bin/httpd.sh
Нарешті, реєструємо віртуальний хост в конфігурації Resin /opt/railo/conf/resin.conf
<host id="localhost.railo" root-directory="/home/trovich/www/cfm">
<web-app id="/" root-directory="/home/trovich/www/cfm/"/>
</host>
Він має знаходитися відразу після кофігурації хосту за умовчанням (<host id="" root-directory=".">).
Також в цьому файлі варто закоментувати блок, що відповідає за логування подій. По-перше, це вже робить для нас Apache, по-друге, він писатиме логи в доступну з вебу теку, що потребуватиме додаткового захисту. Цей блок починається з теґу <access-log ...
Запускаємо Railo:
sudo /etc/init.d/caucho [start|stop]
Якщо все йде добре, маємо бачити вже інакший дамп того самого файлу server.cfm.
http://localhost.railo/server.cfm
Найприємнішим в цій ситуації є факт, що Railo та CF8 можуть працювати одночасно, що дуже допомагає в тестуванні сумісності між ними та портуванні коду.
Сподіваюся, що ця стаття стане у нагоді розробникам та допоможе звертати більше уваги новим технологіям.
Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 1
Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 3