Как установить Oracle, PHP и Apache на LinuxИсточник: bd-oracle
Вы готовы к началу использования php с поддержкой СУБД oracle? Итак, пройдемся по порядку для установки Oracle, веб сервера Apache и php в качестве модуля к Apache под Linux. Проверьте, чтобы ваш linux был сертифицирован для использования СУБД oracle. В этом примере мы будем использовать Red Hat Enterpise Linux AS 4.0. Требуемый софт:
Установка oracle.Здесь перед вами появляется выбор. Либо устанавливать oracle на локальную машину, либо использовать сервер этой СУБД на какой-либо машине в вашей локальной сети. Если ваша база удаленная, прочтите статью по установке php и клиента Oracle на Linux и Windows. Иначе, если это ваше первое знакомство с oracle, установка Oracle Database 10g Express Edition займет несколько минут. Скачайте пакет Express Edition (в народе просто "XE") RPM, залогинетесь под root'ом и запускайте:
После установки пакета, настройте базу данных, запустив ее и ответив на четыре вопроса:
Для пользователей Debian также доступны .deb пакеты. Запуск и остановка Oracle.Oracle XE будет запущен после установки. Используйте имя пользователя "SYSTEM" и пароль, введенный вами в процессе установки. Примечание: возможно вам потребуется заменить localhost на 127.0.0.1. Если потребуется перезапустить базу данных, используйте Start Database и Stop Database в меню Oracle Database 10g Express Edition. Для запуска потребуется добавить себя в группу dba и вновь зайти в систему. В качестве альтернативы можно вызвать oracle-xe скрипт под рутом:
Для перезапуска:
Установка сервера Apache.После установки oracle можно перейти к установке Apache. Очень важно установить именно его перед установкой php. Скачайте httpd-2.0.58.tar.bz2 с сайта производителя, зайдите под root'ом и выполните следующие команды: # cd httpd-2.0.58 # ./configure --prefix=/usr/local/apache --enable-module=so
# make
# make install При настройке веб-сервера опция --enable-module=so позволяет php быть общим динамическим объектом(Dynamic Shared Object, DSO). Если вы знакомы с командой tar вы будете удивлены, почему не требуется bunzip2 для извлечения файлов. Linux включает GNU версию команды tar, которая имеет новый флаг j для автоматического извлечения файлов из bzipped архивов. Если вы скачали gzipped архив, то можете использовать флаг z. Запуск и остановка Apache.Эти действия выполняются посредством скрипта apachectl:
Необходимо проверить работу Apache с помощью любого веб-браузера. Напишите в адресной строке http://localhost/. Теперь остановите веб-сервер и можно приступить к конфигурации php:
Установка PHP.Если вы не хотите мучаться с компиляцией php, используйте пакет Zend Core for Oracle и следуйте следующим инструкциям. Иначе- загрузите файл php-5.1.3.tar.bz2 со страницы производителя. Пошаговая установка PHP:1) Войдите под пользователем root и выполните эти команды: # cd php-5.1.3
# export ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
# ./configure --with-oci8=$ORACLE_HOME --with-apxs2=/usr/local/apache/bin/apxs --with-config-file-path=/usr/local/apache/conf --enable-sigchild
# make
# make install Примечание: если вы используете фаерволл, то перед командой make install вам потребуется установить http_proxy в соответствии с настройками сети. 2) Скопируйте файл настроек:
Для тестирования полезно открыть php.ini и установить display_errors=On, тогда вы увидите проблемы в вашем коде. 3) Добавьте в файл конфигурации Apache следующий код:
PHPIniDir "/usr/local/apache/conf" Если стоки модуля загрузки не включены, добавьте их тоже: LoadModule php5_module modules/libphp5.so Перезапустите Apache.Это необходимо для проверки работы php:
Примечание: если вы используете Oracle 10.2, но не Express Edition, вам необходимо получить nobody доступ к его директории. Для Oracle 10.2.0.2 существеут скрипт $ORACLE_HOME/install/changePerm.sh. При возникновении ошибок, они будут отображены на экране. Их можно найти в /usr/local/apache/logs/error_log. При возникновении проблем, проверьте httpd.conf и php.ini с последующей корректировкой. При запуске Apache по крайней мере нужно определить ORACLE_HOME. Любые другие переменный должны быть определены перед запуском веб-сервера. Эта и многие другие переменный устанавливаются с помощью скриптов $ORACLE_HOME/bin/oracle_env.sh or the /usr/local/bin/oraenv. Чтобы все упростить, можно создать скрипт для запуска Apache. Я создал его и назвал start_apache: ORACLE_HOME=/usr/lib/oracle/xe/app/oracle/product/10.2.0/server
export ORACLE_HOME
echo "Oracle Home: $ORACLE_HOME"
echo Starting Apache
/usr/local/apache/bin/apachectl start Тестирование Apache и PHP с Oracle.Тестирование PHP с Oracle осуществляется очень просто. Вам всего-навсего необходимо поместить php файл в htdocs директорию, обычно находящуюся по /usr/local/apache/htdocs. Вот два файла. Первый используется для тестирования php. Откройте его в браузере: http://localhost/phpinfo.php. Если php установлен, вы увидите полный список конфигурации этого модуля. phpinfo.php
Проверьте это в секции oci8. oci8test.php Второй файл позволит отображать имена и жалования сотрудников, входящих в HR группу пользователей. Это требует HR схемы установки, иначе придется изменить сценарий. Схема HR идет в комплекте с Oracle XE. Вы можете открыть общий доступ и установить пароли при помощи раздела администрирования. Этот файл использует стиль функции PHP4, названной ocilogon. В PHP5 имена были стандартизированы, например, oci_connect, но старые названия тоже в силе. Для баз данных Oracle XE строка соединения: //127.0.0.1/XE. Если вы используете Oracle XE, то измените эту строку(третий параметр) в соответствии с вашей базой данных. $db_conn = ocilogon("hr", "your_hr_password", "//127.0.0.1/XE");
$cmdstr = "select last_name, salary from employees";
$parsed = ociparse($db_conn, $cmdstr);
ociexecute($parsed);
$nrows = ocifetchstatement($parsed, $results);
echo "<html><head><title>Oracle PHP Test</title></head><body>";
echo "<center><h2>Oracle PHP Test</h2><br>";
echo "<table class=borderall cellspacing='0' width='50%'>\n<tr>\n";
echo "<td><b>Name</b></td>\n<td><b>Salary</b></td>\n</tr>\n";
for ($i = 0; $i < $nrows; $i++ )
{
echo "<tr>\n";
echo "<td>" . $results["LAST_NAME"][$i] . "</td>";
echo "<td>$ " . number_format($results["SALARY"][$i], 2). "</td>";
echo "</tr>\n";
}
echo "<tr><td colspan='2'> Number of Rows: $nrows</td></tr></table>";
echo "<br><em>If you see data, then it works!</em><br></center></body></html>\n";
?>
Заключение.
Теперь у вас есть Oracle, Apache и PHP. Вы можете приступать к написанию своих приложений. |