вторник, 20 октября 2009 г.

Apache2+PHP+MySQL из исходников в Ubuntu 10.04

Данный документ описывает процедуру установки Apache2+PHP+MySQL из исходников в Ubuntu 10.04. Весь процесс установки можно разделить на 4 этапа. Последовательность выполнение крайне желательна, иначе будут появляться сообщение об ошибках и невозможности собрать приложение. Поэтому НЕ приступайте к следующему этапу если не уверены в выполнении предыдущего. Я сделал контрольные точки после каждого этапа чтоб вы могли проверить корректность выполнения каждого этапа.
Сразу хочу отметить что в Ubuntu 8.04 все перечисленные ниже действия можно выполнить одной командой:
$ sudo apt-get install apache2 php5-mysql libapache2-mod-php5 mysql-server
При этом вы получите точно такой же результат. Успехов!!!

Этап 1. Подготовка
На этом этапе нужно установить все необходимые инструменты для компиляции приложений из исходных кодов. Инструменты устанавливаются из репозитория Ubuntu с помощью команды:
$ sudo apt-get install <название пакета>

gcc - GNU Compiler Collection. Набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU.
binutils - набор средств разработки программ, включий компоновщик, ассемблер и другие средства для работы с объектными файлами и архивами.
cpp - это препроцессор языка C, который вызывается в качестве первого прохода при любой компиляции C-программ
gcc-4.4-base - коллекция компонентов компилятора, общие компоненты для всех языков программирования и библиотек.
libgcc1 - Общие библиотеки для gcc
libgomp1 - библиотеки для технологии OpenMP (технология написания приложений для многопроцессорных систем)
libstdc++6 - дополнительные библиотеки для С++
g++ - GNU C++ компилятор
libc6 - библиотеки для языка С которые используются всеми приложениями.
libc6-dev - исходные коды libc6
libc6-i686 - библиотеки оптимизированные для платформы i686(Pentium 2,3,4 Athlon/Opteron)
make - используется для сборки конечно приложения из скомпелированных предварительно компонентов.
lynx - консольный браузер
ncurses-dev - исходные коды библиотеки предназначеной для управления вводом/выводом.
libtool - скрипт сопровождения библиотек.
libxml2-dev - исходные коды библиотеки XML

Этап 2. Установка MySQL

Получаем и распаковываем исходные коды MySQL
$ gzip -d mysql-VERSION.tar.gz
$ tar xvf mysql-VERSION.tar

Переходим в каталог с исходными кодами и запускаем скрипт предварительной настройки исходных кодов
CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \
-fno-exceptions -fno-rtti" ./configure \
--prefix=/usr/local/mysql --enable-assembler \
--with-mysqld-ldflags=-all-static


CFLAGS="-O3" CXX=gcc CXXFLAGS="-O3 -felide-constructors \
-fno-exceptions -fno-rtti" - параметры оптимизации компилируемого кода
--prefix=/usr/local/mysql - каталог куда будет установлен MySQL
--enable-assembler - испольщование Ассеблера для некоторых фенкций
--with-mysqld-ldflags=-all-static - статическая компиляция библиотек, позволяет повысить производительность

Компилируем исходные коды
make

Устанавливаем скомпилированный код
make install

Создаем группу и пользователя от имени которого будет запускаться MySQL
# groupadd mysql
# useradd -g mysql mysql

Создаем необходимые каталоги
# mkdir /usr/local/mysql/data
# mkdir /usr/local/mysql/tmp
# mkdir /usr/local/mysql/var

Создаем начальный набор Баз Данных
/исходники MySQL/scripts/mysql_install_db --user=mysql

Устанавливаем необходимые права доступа
# chown -R root /usr/local/mysql
# chown -R mysql /usr/local/mysql/var
# chgrp -R mysql /usr/local/mysql
# chmod 700 /usr/local/mysql/data
# chmod 700 /usr/local/mysql/var
# chmod 755 /usr/local/mysql/tmp

Запускаем MySQL
# /usr/local/mysql/bin/mysqld_safe --user=mysql &


Этап 3. Установка Apache2
Распаковываем исходники Apache2pid
$ gzip -d httpd-2_0_NN.tar.gz
$ tar xvf httpd-2_0_NN.tar

Переходим в каталог с исходными кодами и запускаем скрипт предварительной настройки исходных кодов
./configure --prefix=/usr/local/apach2 --enable-so

--prefix=/usr/local/apache2 - путь куда будет установлен Apache2
--enable-so - использовать динамическую загрузку модулей

Компилируем исходные коды
make

Устанавливаем скомпилированный код
make install

Запускаем Apache2
$ /usr/local/apache2/bin/apachectl start

Проверяем как работает Apache2
$ lynx http://localhost

Останавливаем Apache2
$ /usr/local/apach2/bin/apachectl stop


Этап 4. Установка PHP.

Получаем и распаковываем исходники PHP
$ gzip -d php-VERSION.tar.gz
$ tar xvf php-VERSION.tar

Переходим в каталог с исходными кодами и запускаем скрипт предварительной настройки исходных кодов
$ ./configure --prefix=/usr/local/apache2/php --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/php --with-mysql=/usr/local/mysql

--prefix=/usr/local/apache2/php - каталог куда будет установлен PHP
--with-apxs2=/usr/local/apache2/bin/apxs - PHP компилируется как модуль динамической загрузки для Apache2
--with-config-file-path=/usr/local/apache2/php - путь к конфигурационному файлу php.ini
--with-mysql - включить поддержку MySQL

Компилируем исходные коды
make

Устанавливаем скомпилированный код
make install

Копируем исходный конфигурационный файл php.ini
cp /путь к исходным кодам/php.ini-development /usr/local/wwwroot/php/php.ini

В конфигурационный файл
httpd.conf необходимо добавить строку:
AddType application/x-httpd-php .php


1 комментарий: