Установка LAMP системы

ArticleCategory: [Choose a category, do not translate this]

SystemAdministration

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Orla Shanaghy, MA Translation Studies. mailto:[email protected]]

original in de Sascha Blum

de to en Orla Shanaghy

en to ru Kirill Pukhlyakov

AboutTheAuthor:[A small biography about the author]

Мне нравится Linux за мощь и устойчивость и особенно за возможности, предоставляемые пользователю. Впечатляет и то, что система открыта для всех ( OpenSource ) - каждый может поучаствовать в ее развитии.

Abstract:[Here you write a little summary]

В этой заметке я расскажу вам как установить Linux с наиболее используемыми компонентами, другими словами расскажу об установке LAMP.

Но сначала объясню, что значит эта аббревиатура - LAMP - это Linux Apache MySQL PHP, то есть сочетание операционной системы Linux, веб - сервера Apache, сервера баз данных MySQL и скриптового языка PHP.

ArticleIllustration:[This is the title picture for your article]

[Illustration]

ArticleBody:[The article body]

Вступление

Рассмотрим установку LAMP, используя Dynamic Shared Objects (DSO).

DSOs обладают одним существенным преимуществом перед статическими - вы можете обновлять отдельные модули в любое время без необходимости компиляции и установки остальных. При статической установке например для перехода от PHP версии 4.2.3 на 4.2.4 вам пришлось бы перекомпилировать и переустановить буквально все - я имею в виду веб - сервер Apache, библиотеки (GD-Lib, PDF-Lib) другие необходимые модули и конечно же сам PHP. В случае использования DSO инсталляции - переустанавливаете только PHP, а все остальное остается как есть.

Обратите внимание: всегда внимательно читайте README файл для каждого пакета перед установкой или компиляцией, потому что могут быть различия. Обычно, для успешной установки необходимо указать какой-нибудь ключик, используя ./configure. В любом случае при возникновении ошибок еще раз внимательно прочитайте README. И не забывайте для установки использовать привилегии root'а!
Для вступления достаточно. Начнем процесс установки.

Прочитайте эту заметку очень внимательно и обязательно сделайте это перед началом установки!

Что нам надо и где это взять

Нам необходимы следующие пакеты :

Установка

Если вы загрузили все это - можно начинать. Во-первых скопируйте все файлы в каталог /usr/local/src/lamp, если такого каталога у вас нет - создайте его командой mkdir /usr/local/src/lamp.
Единственные файлы, которые не надо копировать - это MySQL RPM. Их мы установим обычным образом. Можно это сделать в первую очередь - инструкции см. ниже ( секция "MySQL 3.23.52" ).

Все файлы должны быть в каталоге /usr/local/src/lamp/ в формате tar.gz - распаковываем их так как покаано ниже.

Обратите внимание: команды, которые должны ввести вы выделены жирным шрифтом, вывод компьютера - обычным шрифтом. symbol.

Откройте консоль и выполните следующие команды :

user:~ > su
[Now enter your root password]
root: ~> cd /usr/local/src/lamp
root:/usr/local/src/lamp > tar -xvzf apache_1.3.27.tar.gz
root:/usr/local/src/lamp > tar -xvzf zlib-1.1.4.tar.gz
root:/usr/local/src/lamp > tar -xvzf libpng-1.2.2.tar.gz
root:/usr/local/src/lamp > tar -xvzf gd-1.8.4.tar.gz
root:/usr/local/src/lamp > tar -xvzf pdflib-4.0.3.tar.gz
root:/usr/local/src/lamp > tar -xvzf php-4.2.3.tar.gz

После того как все пакеты распакованы - выполните команду "ls -l" и посмотрите все ли каталоги присутствуют.

С этого момента выполняйте все шаги последовательно и точно как они указаны. Причина - некоторые пакеты для работы требуют установки других. Например для библиотеки GD важны zlib и libpng, а libpng в свою очередь требует наличия zlib. Начнем с установки веб - сервера Apache.

Apache 1.3.27

Обратите внимание: обязательно прочитайте README файл! Там вы найдете полезную информацию о ключах для ./configure.

Никогда не компилируйте Apache с опцией --enable-module=all - ничего не будет работать! Лучший вариант - указать только необходимые модули. В обычном случае этого достаточно для поддержки DSO. Позже вы сможете добавить другие модули.

Для установки и настройки Apache - выполните следующие шаги.

Откройте консоль.

Обратите внимание: не набирайте user:/usr/local/src/lamp > в ваших командах. Это приглашение Linux и таким образом ОС указывает, что ждет ваших команд. Ваше приглашение может выглядеть и по - другому.

user:/usr/local/src/lamp > cd apache_1.3.27
user:/usr/local/src/lamp/apache_1.3.27 > su
[Enter your root password]
root:/usr/local/src/lamp/apache_1.3.27 > ./configure --prefix=/usr/local/apache/1.3.27 --datadir=/web/htdocs --enable-rule=SHARED_CORE --enable-module=so


Обратите внимание: введите заключительную часть одной строкой! Обычно перед -- ставят пробел. Корневой каталог вашего веб - сайта будет там где вы укажете под -datadir. Можете указать другой каталог, но тогда везде дальше в руководстве указывайте этот каталог.


root:/usr/local/src/lamp/apache_1.3.27 > make
root:/usr/local/src/lamp/apache_1.3.27 > make install


Если вы все сделали корректно - ваш веб - сервер Apache скомпилирован и установлен.

MySQL 3.23.52

Если вы следовали инструкциям ранее в этом руководстве - MySQL уже должен быть установлен.

Безопасность: если ваш сервер подключен к сети - интранет или интернет постарайтесь сделать пароль root'а сервера MySQL как можно более сложным!

root:/home/user/download/mysql > rpm -Uvh MySQL-3.23.52-1.i386.rpm
root:/home/user/download/mysql > rpm -Uvh MySQL-client-3.23.52-1.i386.rpm
root:/home/user/download/mysql > rpm -Uvh MySQL-devel-3.23.52-1.i386.rpm
root:/home/user/download/mysql > rpm -Uvh MySQL-shared-3.23.52-1.i386.rpm


Обратите внимание: замените /home/user/donwload/mysql каталогом, где находятся RPM файлы.

zlib 1.1.4

root:/usr/local/src/lamp/apache_1.3.27 > cd /zlib-1.1.4/
root:/usr/local/src/lamp/zlib-1.1.4 > ./configure --shared
root:/usr/local/src/lamp/zlib-1.1.4 > make
root:/usr/local/src/lamp/zlib-1.1.4 > make install


Комментарий: мы используем ключ --shared, чтобы указать zlib, что будем использовать эту библиотеку в качестве динамического модуля PHP.

libpng 1.2.3

Установка libpng немного отличается от предыдущих. Во - первых перейдем в каталог /libpng-1.2.3/scripts/ :


root:/usr/local/src/lamp/zlib-1.1.4 > cd ../libpng-1.2.3/scripts/

Затем выполним следующие команды:

root:/usr/local/src/lamp/libpng-1.2.3/scripts > cp makefile.linux ../makefile
root:/usr/local/src/lamp/libpng-1.2.3/scripts > cd ..

Этими командами мы копируем важный файл make в каталог libpng. Теперь внимательно посмотрим на этот файл и внесем некоторые изменения, которые могут быть важны для системы, например местоположение каталогов с заголовочными файлами. В обычном случае все данные корректны, но посмотреть стоит, чтобы быстро разобраться с возможными ошибками.

Для продолжения наберите следующую команду :


root:/usr/local/src/lamp/libpng-1.2.3 > make test


В случае отсутствия ошибок можно начать установку libpng командой :


root:/usr/local/src/lamp/libpng-1.2.3 > make install

gd-1.8.4

Во-первых перейдите в каталог gd-1.8.4:

root:/usr/local/src/lamp/libpng-1.2.3 > cd ../gd-1.8.4/


Как и в предыдущем разделе - посмотрите на файл make. Опять же - если есть несоответствия - внесите соответствующие изменения вашим любимым текстовым редактором.

Обычно не требуется вносить никаких изменений.

Если не возникли проблемы с make файлом - выполните следующую команду :

root:/usr/local/src/lamp/gd-1.8.4 > make
root:/usr/local/src/lamp/gd-1.8.4 > make install


В случае возникновения ошибок на данном этапе - выполните :

root:/usr/local/src/lamp/gd-1.8.4 > make clean


Но выполните эту команду только в случае возникновения ошибок! После make clean еще раз внимательно посмотрите на make файл и внесите необходимые изменения и снова выполните make.

Обратите внимание : обязательно проверьте установки для INCLUDEDIRS и LIBDIRS!

PDF-Lib 4.0.3

Тут все очень просто так как модуль уже скомпилирован - просто скопируйте его в каталог /usr/local/lib командой :

root:/usr/local/src/lamp/gd-1.8.4 > cd /
root:/ > cp /usr/local/src/lamp/pdflib-4.0.3-Linux/bind/php/php-4.2.1/libpdf_php.so /usr/ local/lib/libpdf_php.so

PHP 4.2.3

Наконец устанавливаем PHP.

Перейдите в каталог PHP :

root:/ > cd /usr/local/src/lamp/php-4.2.3/
root:/usr/local/src/lamp/php-4.2.3 > ./configure --with-apxs=/usr/local/apache/1.3.27/bin/apxs --enable-track-vars -- enable-ftp --with-zlib --with-gd --with-sockets --enable-sockets --with-sysvshm --with-sysvsem --disable-debug --with-pdflib-dir=/usr/local/lib --with-tiff-dir=/usr/local/lib --with-jpeg-dir=/usr/local/lib --with-png-dir=/usr/lo cal/lib --with-zlib-dir=/usr/local/lib --with-mysql --with-xml


Обратите внимание: последнюю часть введите одной строкой! Не забывайте про пробел перед --. Во второй и третьей строках нет ошибок с "sysvshm" и "sysvsem".

Затем наберите следующее таким же образом :

root:/usr/local/src/lamp/php-4.2.3 > make
root:/usr/local/src/lamp/php-4.2.3 > make install


Обратите внимание : компиляция (make) PHP может затянуться на слабых компьютерах. Поэтому не удивляйтесь если какое-то время ничего не появляется на экране. Вы можете удалить каталог /usr/local/src/lamp командой "rm -r /usr/local/src/lamp" - делайте это очень аккуратно, потому что набрав команду "rm -r /" с правами root'а вы удалите всю систему. Тем не менее будьте уверены, что вы удаляете "/usr/local/src/lamp" - будет намного дольше и сложнее переустановить всю систему. Удаляйте только архивы ".tar.gz", а каталоги с исходниками оставьте как есть.

Настройка

httpd.conf

Вроде все установлено, теперь надо все настроить.

Во-первых объясним веб-серверу как ему поступать с файлами *.php- или *.php3.

Переходим в каталог "conf" веб-сервера :

root:/usr/local/src/lamp/php-4.2.3 > cd /usr/local/apache/1.3.27/conf
root:/usr/local/apache/1.3.27/conf >


Открываем файл "httpd.conf" текстовым редактором чтобы его можно было отредактировать и сохранить.

Обратите внимание: редактор "Kate" хорошо подходит для редактирования конфигурационных файлов. Чтобы им воспользоваться убедитесь, что у вас запущен KDE. Нажмите Alt + F2 => kdesu kate. Для перемещения к нужной строке воспользуйтесь комбинацией Ctrl + G.

Нужная нам строка в файле примерно под номером 190 :

#
#Dynamic Shared Object (DSO) Support
#
#To be able to use the functionality of a module which was built as a DSO you
#have to place corresponding `LoadModule' lines at this location so the
#directives contained in it are actually available _before_ they are used.
#Please read the file README.DSO in the Apache 1.3 distribution for more
#details about the DSO mechanism and run `httpd -l' for the list of already
# built-in (statically linked and thus always available) modules in your httpd
#binary.


Здесь введите следующее, если этого еще нет :

LoadModule php4_module libexec/libphp4.so

Далее перемещаемся примерно на строку 770:

#AddType allows you to tweak mime.types without actually editing it, or to
#make certain files to be certain types.
#AddType application/x-tar .tgz

И добавляем следующее :

AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html
AddType application/x-httpd-php .phtm
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php4
AddType application/x-httpd-php-source .phps


Обратите внимание: вводите все это аккуратно во избежание возникновения ошибок.

Если не хотите обрабатывать файлы HTML PHP парсером - пропустите следующие строки :

AddType application/x-httpd-php .htm
AddType application/x-httpd-php .html



Мы настроили веб-сервер отредактировав файл httpd.conf.
Что такое парсер?

Парсер - это приложение для обработки текста. Текстом может быть как исходный текст программы ( например C++ ), так и язык разметки документов ( например HTML ). Парсер обрабатывает этот текст и перенаправляет в приложение.

Информация проходящая через парсер отображается немного медленнее, чем обычные HTML страницы. Тем не менее пользователь особо этого не замечает, только в случае попытки доступа нескольких пользователей к одному и тому же ресурсу это возможно будет заметно. Поэтому, если вы хотите использовать вашу LAMP систему в интранет или интернет - выберите себе компьютер помощней. Только в случае локальной разработки скриптов вам подойдет немощный компьютер или ноутбук.

php.ini

Теперь настроим и в случае необходимости адаптируем файл php.ini.

Сначала скопируем файл php.ini в нужный каталог, для этого перейдите в каталог PHP :

root:/usr/local/apache/1.3.27/conf > cd /usr/local/src/lamp/php-4.2.3/

Теперь копируем "php.ini-dist" в каталог /usr/local/lib и переименовываем его в "php.ini" :

root:/usr/local/src/lamp/php-4.2.3 > cp php.ini-dist /usr/local/lib/php.ini

Теперь добавим "pdflib" в качестве расширения в php.ini, чтобы PHP знал, что делать с функциями из этой библиотеки. Остальные модули PHP найдет сам, такие как zlib, GD, и т.д

Открываем файл "/usr/local/lib/php.ini" текстовым редактором и перемещаемся примерно на 371 строку.

Она выглядит следующим образом :


;Directory in which the loadable extensions (modules) reside.
....

extension_dir = ./ <= замените это следующим образом :

extension_dir = /usr/local/lib
extension=libpdf_php.so



Сохраняем файл.

Вот и все - наша LAMP система настроена и готова к работе!

Протестируем ее, чтобы быть уверенными, что ее можно запускать. Первым делом остановим все серверы запущенные ранее ( например веб-сервер был установлен при инсталляции ОС и возможно сейчас работает ). Выполняем команду :

root:/usr/local/src/lamp/php-4.2.3 > killall httpd


Теперь попробуем запустить новый сервер командой :

root:/ > /usr/local/apache/1.3.27/bin/apachectl start


Если появится такое сообщение...

/usr/local/apache/1.3.27/bin/apachectl start: httpd started


... значит все OK - веб-сервер запущен!

Переходим в каталог "web/htdocs" - наш DocumentRoot если вы не изменили его ранее и создаем новый файл, назовем его info.php :

user:/ > cd /web/htdocs/
user:/web/htdocs > touch info.php



Открываем его текстовым редактором и набираем следующее :


<?PHP
echo phpinfo();
?>


Обратите внимание: набирайте все так как указано со всеми скобками!

Сохраните его и закройте. Теперь самый интересный момент - откройте следующий URL в своем браузере :

http://127.0.0.1/info.php
or
http://localhost/info.php
or
http://rechnername/info.php
or
http://lokale_IP/info.php

Вы должны увидеть результат выполнения функции phpinfo() - все идет по плану и вы уже начинаете программировать на PHP - примите поздравления!

Обратите внимание: можете создавать новые каталоги в /web/htdocs ( или в том, который вы определили ). Например если вы хотите создать несколько проектов - создайте для каждого отдельный каталог.

Не забывайте, что /web/htdocs ( или том, который вы определили ) DocumentRoot для вашего веб-сервера. Поэтому для нашего примера мы набрали URL такой - http://127.0.0.1/info.php, если у вас несколько проектов, например project1, project2 и т.д. вам надо будет обращаться к ним соответственно http://127.0.0.1/project1/ и http://127.0.0.1/project2/.

Обратите внимание: PHP файлы обрабатываются только в том случае если они расположены в /web/htdocs или его каталогах!

Теперь вы можете развивать ваш веб-сервер.

Рекомендации

В этой части заметки я посоветую вам несколько инструментов для упрощения администрирования системы и веб-сервера :

Webmin 1.000
(http://www.webmin.com/)

С помощью Webmin администрирование системы становится очень простым. Вы можете управлять веб-сервером, сервером баз данных, Webmin прост в использовании и поэтому идеально подходит для новичков.

Загрузить:
http://prdownloads.sourceforge.net/webadmin/webmin-1.000.tar.gz?download
или
http://www.webmin.com/


phpMyAdmin 2.3.1
(http://www.phpwizard.net/projects/phpMyAdmin/)

phpMyAdmin очень полезный инструмент для MySQL. С его помощью вы можете создавать, удалять, редактировать таблицы и много чего еще. Рекомендую его вам.

Загрузить:
(phpMyAdmin-2.3.1-php.tar.gz)
http://www.phpmyadmin.net/index.php?dl=2

Настраиваем с помощью Webmin

Установки для Apache ::
webmin => Server => Apache Webserver
Module config:

Apache server root directory ( корневой каталог веб-сервера Apache ):
/usr/local/apache/1.3.27/bin/

Path to httpd executable ( путь к исполняемому файлу httpd ):
/usr/local/apache/1.3.27/bin/httpd

Apache version ( версия веб-сервера ):
выберите пустое поле и введите: => 1.3.27

Path to apachectl command ( путь к apachectl ):
в пустом поле => /usr/local/apache/1.3.27/bin/

Command to start Apache ( команда для запуска Apache ):
in empty field => /etc/init.d/apachectl start

Обратите внимание : если apachectl не в каталоге - скопируйте его туда :
root > cp /usr/local/apache/1.3.27/bin/apachectl /etc/init.d/


Command to stop Apache ( команда для остановки Apache ):
in empty field => /etc/init.d/apachectl stop

Display virtual servers as ( показывать виртуальные серверы как ):
=> Icons

Order virtual servers by ( упрядочить виртуальные серверы ):
=> order in config file(s)

Maximum number of servers to display ( максимальное количество показываемых серверов )
=> 100

Path to httpd.conf ( путь к httpd.conf )
в пустом поле => /usr/local/apache/1.3.27/conf/httpd.conf

Path to srm.conf ( путь к srm.conf )
в пустом поле => /usr/local/apache/1.3.27/conf/srm.conf

Path to access.conf ( путь к access.conf )
в пустом поле => /usr/local/apache/1.3.27/conf/access.conf

Path to mime.types ( путь к mime.types )
в пустом поле => /usr/local/apache/1.3.27/conf/mime.types

File to add virtual servers to ( в какой файл добавлять виртуальные серверы ):
=> httpd.conf

Test config file before applying changes? ( проверить config файл перед внесением изменений )
=> Yes
Обратите внимание : не вводите => !

If you want the Apache server to start automatically when the system boots up, you can set this up in Webmin as follows ( если вы хотите запускать веб-сервер при загрузке системы укажите это в Webmin следующим образом ):
webmin => System => Bootup and Shutdown

Если Apache не указан - введите его как новый сервис.

Name => apachectl
Script => is usually loaded automatically
Start at boot time? => Yes
Bootup commands => /etc/init.d/apachectl start
Shutdown commands => /etc/init.d/apachectl stop

Обновление системы

Обновление PHP

Сначала скопируйте упакованный файл с новой версией PHP в каталог :

/usr/local/src/lamp/

Допустим новая версия PHP 4.2.4 ( на самом деле я не знаю будет ли когда-нибудь такая версия ). Все, что нам сейчас интересно - последовательность действий для обновления версии.

Распакуйте новый файл :

Откройте консоль и выполните следующие команды :

user:~ > su
[Only enter your root password]
root:~ > cd /usr/local/src/lamp/
root:/usr/local/src/lamp > tar -xvzf php-4.2.4.tar.gz


Если каталог со старой версией все еще в "/usr/local/src/lamp" выполняем следующие действия.

Старый каталог имеет название - "/usr/local/lamp/php-4.2.3".

Для начала копируем libphp4.so. Называем его "libphp4-4.2.3 .so" :

root:/ > cd /usr/local/apache/1.3.27/libexec/
root:/usr/local/apache/1.3.27/libexec > cp libphp4.so libphp4-4.2.3.so


Также полезно сохранить старую версию файла php.ini :

root:/ > cd /
root:/ > cp /usr/local/lib/php.ini /usr/local/lib/php-4.2.3.ini


Затем удаляем старую версию php.ini :

root:/ > rm /usr/local/lib/php.ini


На самом деле хорошо если вы сохранили старые исходники PHP - это вам сэкономит время!

Дело в том, что в каталоге "/usr/local/lamp/php-4.2.3" есть небольшой скрипт, который перед установкой сохраняет все настройки из ./configure. Если вы не сохранили старые исходники - вам придется набирать все эти настройки вручную!

Теперь выполняем ./configure :

root:/ > cp /usr/local/lamp/php-4.2.3/config.nice /usr/local/lamp/php-4.2.4/config.nice
root:/ > cd /usr/local/lamp/php-4.2.4
root:/usr/local/lamp/php-4.2.4 > ./config.nice
root:/usr/local/lamp/php-4.2.4 > make
root:/usr/local/lamp/php-4.2.4 > make install


Обратите внимание : в случае отсутствия каталога с исходниками предыдущей версии - наберите все параметры ./configure как указано в разделе "Installation => PHP 4.2.3" вручную.

Теперь скопируйте php.ini в правильный каталог :

root:/ > cd /
root:/ > cp /usr/local/lib/php.ini-dist /usr/local/lib/php.ini


Теперь подправим php.ini при необходимости как указано в разделе "Configuration => php.ini".

Перезапускаем Apache и обновление завершено :

root:/ > /usr/local/apache/1.3.27/bin/apachectl restart

Заключение

Postscript

Как известно - никто не идеален и соответственно ошибки возможны и в этом руководстве. Если кто-нибудь заметит какие-нибудь ошибки или захочет что-нибудь добавить - сообщите мне и я внесу изменения. Все описанное выше было протестировано на SuSE Linux 8.0, но естественно может быть применено и на других Linux.

Конечно можно установить подобную LAMP систему и другим способом, но целью этой заметки было простое руководство для новичков. Я постараюсь обновлять это руководство. Надеюсь вы посмотрите на мою домашнюю страничку в случае необходимости обновленного руководства.

Ссылки