Категорія: HOWTO
Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 2
В першій частині розповіді ми дізналися як налаштувати Apache 2, PHP 5, Java та ColdFusion 8.
Час переходити до наступного етапу -- встановлення ColdFusion 9 (Centaur).
Хочу зауважити, що налаштування підпорядковані наступному принципові: CF9 поки в беті, тому використовується для експериментів та навчання. Вона не має заважати роботі CF8, хоча й намагатиметься.
Ця частина містить кільканадцять знимків екрану для наглядності, тому доволі великий повний текст розміщено тільки на сторінці посту »
Читати далі...
Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 1
Як правило, веб-розробники мають потребу в декількох типах середовищ, навіть різних версій одного й того ж додатку.
В цій статті я розповім про те, як я налаштовую свою систему, що в даний момент включає в себе PHP 5, ColdFusion 8, ColdFusion 9 та Railo 3.1. На даний момент моєю основною робочою системою є Xubuntu (9.04), тож інструкції відповідатимуть цій ОС. Відповідно, потрібні деякі мінімальні знання з цієї області, як то навички користування консолею.
Головною нашою задачею є ізоляція різних середовищ одне від одного в рамках єдиної інсталяції Apache 2.
Це перша частина, присвячена налаштуванню Apache 2, PHP 5, Java та ColdFusion 8.
Для початку нам треба визначитися з іменами віртуальних хостів, на яких будуть розташовані середовища. Останнім часом я зупинився на наступній системі йменування хостів, котру ілюструє запис в /etc/hosts
127.0.0.1 localhost localhost.php localhost.cf8 localhost.cf9 localhost.railo
Призначення кожного елементу цілком очевидне.
Першим кроком є встановлення Apache 2 та PHP 5. В Ubuntu це дуже просто, потрібно в консолі виконати команду, подібну до наступної:
sudo apt-get install apache2 apache2-threaded-dev libapache2-mod-php5 build-essential
Решту потрібних модулів встановлюється при потребі. Примітка: останній елемент знадобиться нам пізніше, він не є необхідним для даного етапу.
PHP встановлюється глобально для всього веб-серверу (.php скрипти оброблятимуться і в кожному віртуальному хості), мене це не турбує, тому залишаю як є. На даний момент мені просто треба зробити окремий хост для PHP розробки. Для цього треба створити файл конфігурації хосту:
/etc/apache2/sites-available/localhost.php
Я звик тримати всі робочі файли в домашній теці, тому шлях до файлів розробки є таким:
/home/trovich/www/php
Тоді конфігурація localhost.php буде наступною (це повний текст файлу).
NameVirtualHost localhost.php
<VirtualHost localhost.php>
ServerAdmin SetYourEmail@ServerName.tld
ServerAlias localhost.php
ServerName localhost.php
DocumentRoot /home/trovich/www/php
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/trovich/www/php/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
allow from all
DirectoryIndex index.php index.html index.htm
</Directory>
ErrorLog /var/log/apache2/error.localhost.php.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.localhost.php.log combined
</VirtualHost>
Тепер нам залишається змусити Apache підхопити цей хост та перевірити його. Для цього виконаємо в консолі:
sudo a2ensite localhost.php
sudo /etc/init.d/apache2 restart
Створивши файл /home/trovich/www/php/index.php зі вмістом <?php phpinfo(); ?> можемо протестувати http://localhost.php/
У випадку успіху маємо побачити щось подібне до цієї картинки:
У випадку, якщо з'являються повідомлення про помилку (типовим є статус 500), варто звернутися до журналу Apache, що відповідає даному хостові:
/var/log/apache2/error.localhost.php.log
Я полюбляю спостерігати за змінами використовуючи tail:
tail -f /var/log/apache2/error.localhost.php.log
tail -f /var/log/apache2/access.localhost.php.log
Другий журнал відповідає нормальній роботі хосту та містить повідомлення про всі запити.
Тепер переходимо до головної задачі -- встановлення ColdFusion 8. Головної тому, що вона наразі є моїм основним середовищем розробки, тому всі налаштування орієнтуватимуться саме на її потреби.
Для початку треба отримати дистрибутив ColdFusion, скачавши розробницьку linux-версію з офіційного сайту Adobe.
Після скачування треба надати файлові права на виконання, в моєму випадку це виглядає так:
chmod +x coldfusion-801-lin.bin
Треба відмітити, що Adobe зробили вельми зручний консольний інсталятор для 8-ки (і 9-ки, відповідно), тому негайно переходимо до процесу:
sudo ./coldfusion-801-lin.bin
Виконання з правами рута (root) необхідне через потребу запису файлів в системні директорії.
З огляду на те, що на момент проведення даного експерименту в мене вже була готова інсталяція ColdFusion 8, я не описуватиму її детально, це буде зроблено нижче для ColdFusion 9. На щастя, вони майже ідентичні.
Зауважу лише кілька важливих моментів.
1. Очевидно, що для роботи CF потрібна Java JRE, а для Railo ще й JDK. Встановлення їх теж дуже просте:
sudo apt-get install java6-runtime java6-sdk
2. Зазвичай я встановлюю CF до /opt/coldfusion8.
Шлях для домашньої теки CF у мене історично є /home/trovich/www/cfm, без вказання версії. Там CF8 й розміщує теку CFIDE. Це важливо, бо CF9 матиме іншу домашню теку з власною CFIDE.
3. Встановлення CF та налаштування хостів мають йти поетапно, бо вони обидві переписують стандартний файл конфігурації Apache:
/etc/apache2/httpd.conf
Він нам буде ще потрібен, тому перейдемо до налаштувань віртуального хосту.
По-перше, нам необхідно ізолювати модуль CF8, для цього створимо йому окремий файл конфігурації.
/etc/apache2/mods-available/cf8.load
В цей файл переносимо текст завантаження модуля:
LoadModule jrun_module /opt/coldfusion8/runtime/lib/wsconfig/1/mod_jrun22.so
Далі створюємо файл /etc/apache2/cf8connector (назва може бути інша, головне щоб лежав в теці Apache2) та переносимо в нього решту конфігурації модуля:
<IfModule mod_jrun22.c>
JRunConfig Verbose false
JRunConfig Apialloc false
JRunConfig Ignoresuffixmap false
JRunConfig Serverstore /opt/coldfusion8/runtime/lib/wsconfig/1/jrunserver.store
JRunConfig Bootstrap 127.0.0.1:51800
#JRunConfig Errorurl url <optionally redirect to this URL on errors>
#JRunConfig ProxyRetryInterval 600 <number of seconds to wait before trying to reconnect to unreachable clustered server>
#JRunConfig ConnectTimeout 15 <number of seconds to wait on a socket connect to a jrun server>
#JRunConfig RecvTimeout 300 <number of seconds to wait on a socket receive to a jrun server>
#JRunConfig SendTimeout 15 <number of seconds to wait on a socket send to a jrun server>
AddHandler jrun-handler .jsp .jws .cfm .cfml .cfc .cfr .cfswf
</IfModule>
Увага: видаляти httpd.conf не можна, він просто має залишитися порожнім.
Підкажемо Apache, що у нас є новий модуль для нього:
sudo a2enmode cf8
Налаштуємо власне віртуальний хост. Для цього створимо файл конфігурації
/etc/apache2/sites-available/localhost.cf8
Вміст його майже ідентичний тому, що вже було показано для PHP:
NameVirtualHost localhost.cf8
<VirtualHost localhost.cf8>
ServerAdmin SetYourEmail@ServerName.tld
ServerName localhost.cf8
DocumentRoot /home/trovich/www/cfm
<Directory /home/trovich/www/cfm/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
allow from all
DirectoryIndex index.cfm
</Directory>
ErrorLog /var/log/apache2/error.localhost.cf8.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/access.localhost.cf8.log combined
Include cf8connector
</VirtualHost>
Дуже важливою особливістю є виділена жирним директива. Вона підключає наш файл конфігурації модулю саме для цього віртуального хосту.
Нарешті, завершимо операцію командами:
sudo a2ensite localhost.cf8
sudo /etc/init.d/apache2 restart
Перед тим, як перевіряти результати, варто запустити ще й CF. Зазвичай це робиться наступною командою:
sudo /opt/coldfusion8 start (stop для зупинки)
Для зручности я створюю Shell-скрипт для цього діла, що має наступний вміст:
#! /bin/sh
coldfusion=/opt/coldfusion8/bin/coldfusion
script=`/bin/ls -l $0 | awk '{ print $NF; }'`
while test -h "$script"
do
script=`/bin/ls -l $script | awk '{ print $NF; }'`
done
exec $coldfusion $*
Таким чином процедура запуску/зупинки зводиться до канонічного
sudo /etc/init.d/cf8 [start|stop]
Отже, сервер запущено, можна перевірити його дієздатність: http://localhost.cf8/server.cfm з текстом <cfdump var="#server#">. Маємо бачити щось схоже на це:
У випадку помилок так само звертаємося до журналів Apache, як було описано вище.
Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 2
Встановлення PHP 5, CF 8, CF 9 та Railo 3.1 з Apache 2 в Ubuntu - частина 3