Категорія: 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, хоча й намагатиметься.

 

Ця частина містить кільканадцять знимків екрану для наглядності, тому доволі великий повний текст розміщено тільки на сторінці посту »


Читати далі...
Автор: Сергій Галашин | Опубліковано: 29.09.2009 о 10:04 | Категорії: Apache - ColdFusion 8 - ColdFusion 9 - HOWTO - PHP - Railo -

 

Встановлення 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/

У випадку успіху маємо побачити щось подібне до цієї картинки:

cf-install-00-phpinfo.png

У випадку, якщо з'являються повідомлення про помилку (типовим є статус 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#">. Маємо бачити щось схоже на це:

00-cf8dump.png

У випадку помилок так само звертаємося до журналів 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

Автор: Сергій Галашин | Опубліковано: 29.09.2009 о 09:46 | Категорії: Apache - ColdFusion 8 - ColdFusion 9 - HOWTO - PHP - Railo -