Все о Linux. LinuxRSP.Ru
Альт Линукс СПТ 6.0 Сертификат ФСТЭК

[Linux и BSD]: свежие новости, анонсы статей и книг, обзоры софта от LinuxRSP.RU
Подписаться письмом
Подписка на журнал Linux Format 12 номеров (01-12/2012)


 Сегодняшние новости:

Руководитель компании Red Hat назван "предпринимателем года"

Релиз минималистичного дистрибутива Tiny Core Linux 4.2

Новая версия системы биллинга NETAMS 4.0

Релиз Clementine 1.0.0

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Подключение сети к глобальному IPv6 пространству

Вышел релиз WINE@Etersoft 2.0

IPv6 шлюз для локальной сети

Новый релиз программы YAGF

Представлен новый стандарт языка C: C11

Сборка панорам: Hugin 2011.4.0

Релиз CentOS 6.2

Пятый выпуск электронного журнала об юридических аспектах свободного ПО

Создание межсетевых экранов: pfSense 2.0.1

Сайты премьер-министра и правительства перешли на лицензию Creative Commons

Утверждён ГОСТ, определяющий положения по использованию Свободного ПО

Подписка на журнал "Linux Format" 12 номеров (2012 год)

Девятый лис: Firefox 9

Программная АТС: Asterisk 10

Выпущен Amarok 2.5.0

Представлена новая версия Qt 4.8

Выпущен Blender 2.61

Релиз Wordpress 3.3 "Sonny"

Google

 Новые статьи за январь 2012:

Архитектура Google 2011

Мониторинг Nginx с помощью MRTG

Решение проблем при использовании "1c предприятие" 8.2 в Linux

25 правил .htaccess, которые должен знать каждый web-разработчик

IPv6 шлюз для локальной сети

Подключение сети к глобальному IPv6 пространству

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Как понять почему упал сервер не подключая к нему монитор и клавиатуру?

Установка 1с 8.2 и PostgreSQL 9.0.3 на CentOS 6

Перенос виртуальной машины на физический жесткий диск

Установка Linux на USB-флешку

Краткое руководство по GNOME Shell в Ubuntu 11.10

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки

   Дистрибутивы и атрибутика



DeveloperWorks Россия





Rambler's Top100


 
 

Установка и настройка связки Apache+PHP+MySQL

Итак, нам необходимо организовать http - сервер с возможностью выполнения скриптов и доступа из скриптов до какого-либо SQL сервера. В качестве http-сервера обячно выбирают apache, как наиболее продвинутый и развиваемый сервер для юникс-платформ. Для выполнения скриптов тоже есть куча версий языков (начиная от бэйсика и заканчивая явой), я выбрал php, как наиболее удобный и красивый для _меня_ в плане написаня программ. Ну а выбор SQL серверов для вас огромен. Я выбрал MySQL - так как для моих целей он вполне подходит (нагрузки у меня огромной не предвидится ;-)) да и бесплатный он, в отличие от того-же Oracle ;-). Итак, начнем делать связку apache+php+MySQL. Для этого нам необходимо иметь сконфигуренное ядро линукса (прграммам требуется некоторые файлы оттуда), Perl и собственно сами программы. Найти вы их можете либо у меня, либо по поисковикам (apache*, php*, mysql*).

Скачал и развернул MySQL. К сожалению, последняя версия MySQL у меня не захотела компилиться и собираться, поэтому я взял mysql-3.21.33b.

   ./configure --with-charset=koi8_ru
Сконфигурил MySQL с поддержкой русского языка в кодировке КОИ-8 по умолчанию (там есть много кодировок, посмотрите по configure --help). После создания всех конфигов, я сделал make;make install и пока на этом успокоился. Скачал (с apache.lexa.ru) и развернул apache_1.3.4rusPL28.6. В этом файле уже сразу пропатчены нужные файлы для поддержки русского языка. Если же вы предпочитаете патчить исходные версии - то посмотрите на INSTALL.rus ;-). Ниже я его просто вставлю.Да, и еще один довод в пользу именно именно этой версии - тут наконец-то сделана нормальная перекодировка и при соответствующих настройках русские странички, отданные этим сервером, тепрь нормально оседают в кешах. В старых версиях приходилось писать скрипты. За подробностями обращайтесь на apache.lexa.ru в раздел FAQ ;-).
1) скачать дистрибутивный Apache 
     less INSTALL; less README.configure
     ./configure --help
     ./configure ...options
     make
     make install
2) установка из комплекта 'дистрибутивный Apache + patches_n.n.n.rusPLNN.M'
    a) распаковать дистрибутивный Apache:
       tar xzvf apache_1.3.0.tar.gz
    b) распаковать 'Русские' правки (предположим, их версия NN.M)
       cd apache_1.3.0
       tar xzvf ../patches_1.3.0rusPLNN.M.tar.gz
    c) прочитать этот файл
    d) наложить 'русские' патчи
    patch -p0 
В общем, получил исходники русского Апача. Зашел в каталог с исходниками,
   сказал configure ;-)
    Больше пока ничего не делайте с гордым индейцем ;-). Не надо его
   компилировать и устанавливать, сначала включим нужные нам модули.
   Cкачал php c www.php.net, развернул его , сказал ему
./configure --with-mysql --with-apache=../apache_1.3.4rusPL28.6 --with-mod_charset
Этой командой мы конфигурируем PHP для работы с MySQL (кстати, никто не мешает сконфигурить его для работы с несколькими разными SQL серверами), указываем каталог с апачей и говорим конфигурялке, что апача у нас русская.
   make 
   make install
Все, PHP у нас установлен .... Теперь снова идем в каталог с апачей ;-).
   ./configure --activate-module=src/modules/php3/libphp3.a
Этим мы подключаем модуль PHP к апаче. Теперь спокойно говорим make. Апач начинает собираться. После сборки проверьте, на месте ли модули, зайдите в каталог src, скажите
   ./httpd -l 

    .............
    mod_charset.c
    .............
    mod_php3.c
    .............
Обратите внимание .... в этом списке обязательно должны быть эти модули. Первый обеспечивает автоматическую перекодировку, второй как раз php ;-). Потом make install - апач поставится в /usr/local/apache. Опять оставим в покое апач из каталога с исходниками php возьмем файл php3.ini-dist и положим его в каталог /usr/local/lib/php3.ini. Теперь его можно посмотреть и отредактировать (Единственное, что я там сделал, так отконфигурировал порты и пользователей по умолчанию для MySQL). Теперь пришла пора окончательной настройки индейца .... идем в каталог /usr/local/apache/conf и начинаем править файлик httpd.conf. Здесь я приведу, что я правил в оригинальном файле. Я расскомментировал строчку
   AddType application/x-httpd-php3 .phtml
что бы phtml файлы опозновались и работали нормально Я заккоментировал строчку Port 80 и расскомментировал следующие строчки
    Listen 80
    Listen 8100
    Listen 8101
    Listen 8102
    Listen 8103
    Listen 8104
    CharsetByPort koi8-r 8100
    CharsetByPort windows-1251 8101
    CharsetByPort ibm866 8102
    CharsetByPort iso-8859-5 8103
    CharsetByPort x-mac-cyrillic 8104
Этим я разрешил серверу сидеть на 81* портах и жестко привязал перекодировку к соответствующим портам. Теперь расскомментируем следующие строчки
   # "AutoRedirect" setup
   #
   CharsetAutoRedirect koi8-r :8100
   CharsetAutoRedirect windows-1251 :8101
   CharsetAutoRedirect ibm866 :8102
   CharsetAutoRedirect iso-8859-5 :8103
   CharsetAutoRedirect x-mac-cyrillic :8104
   CharsetNormalizeTypes image/ application/ video/ audio/
   CharsetNormalizeToURL :80 200
Этими строчками мы как раз обеспечиваем правильную переадресацию и перекодировку, да так, что бы перекодированные странички оседали в кэше. ;-) ну заодно и кнопочки Back на формах в браузерах будут работать ;-) (будет сохраняться информация в формах). Затем я создал /etc/rc.d/rc.httpd. По умолчанию этот файлик в Slackware вызывается из rc.M (если у него стоит бит выполняемости) . В нем записана следующия строчка
   /usr/local/apache/bin/apachectl start
Этот скрипт пускает httpd сервер, соответственно stop его останавливает ;-) Теперь заставим так же по умолчанию пускаться MySQL. Сначала надо установить базы по умолчанию, в которых MySQL держит все свои настройки. Заходим в каталог с дистрибутивом, затем в каталог scripts, оттуда запускаем mysql_install_db , создадутся нужные каталоги, перепишутся нужные файлы и запустится MySQL сервер ;-)) Теперь надо придумать, куда запихать загрузку , я сделал в каталоге /etc/rc.d файл rc.sql и сделал его выполняемым, внутри поставил вызов
   /usr/local/bin/mysql.server start
и в rc.M перед вызовом апача прописал следующие строки
   # Start MySQL server:
   if [ -x /etc/rc.d/rc.sql ]; then
     . /etc/rc.d/rc.sql
   fi
Надо именно перед ... почему ? Ну во-первых, серверу надо некоторое время, что бы сервер запустился, а потом ... вдруг у вас сразу же после загрузки пойдут запросы к базе ;-). Ну и теперь обеспечим нормальный шутдаун серверов ;-) Ведь нам надо красиво закрыть систему .. я не нашел лучшего места, чем начало файла /etc/rc.d/rc.6, сразу после PATH (Если вы знаете лучшее место, напишите мне ;-)
   echo
   echo "Shutdown the MySQL server"
   /usr/local/bin/mysql.server stop
   echo "Shutdown the Apache"
   /usr/local/apache/bin/apachectl stop
Теперь не забудьте поменять пароль root для MySQL (не путать с паролем root в системе !!) Делается это так

mysql -u root -e "update user set password=password('new_password') where user='root'" mysql

Где новый пароль - new_password, также пропишите его в mysql.server в строчке mysql_root_pwd=new_password. Это необходимо для того, что бы этот скрипт мог нормально управлять сервером. Затем сказать mysqladmin reload, что бы изменения вступили в силу ( вообще-то эта комманда перезагружает сервер, сброс файла паролей можно было сделать по другому, но мне так больше нравится) Необходимо также сменить права mysql.server на 600, что-бы обезапаситься от нехороших юзверей ;-).

Я только что проверил правильность всех вышеизложенных фактов, но если Вы в чем-то не согласны, пишите мне, адрес не изменился multik@istu.edu С уважением, Вячеслав Калошин


      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2012 LinuxRSP


Реклама:
Провайдер недорогой хостинг. Создание сайта.