Установка LAMP системы
ArticleCategory: [Choose a category, do not translate
this]
SystemAdministration
AuthorImage:[Here we need a little image from you]
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]
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 систему и другим способом,
но целью этой заметки было простое руководство для новичков.
Я постараюсь обновлять это руководство. Надеюсь вы посмотрите на
мою домашнюю страничку в случае необходимости обновленного руководства.
Ссылки