Apache + PHP.
Установка Apache и подключение к нему PHP.
Ссылки:
Linuxdoc.ru.
Вся Linux-документация на русском языке! Три категории: Руководства, HOWTO и Mini HOWTO.
OdLUG / статьи.
Самой интересной мне показалась
статья про ускорение работы винчестера.
Linux Journal.
Сам журнал выходит 1 раз в месяц + на сайте постоянно появляются новые статьи. English.
Новые статьи:
Новичку о Linux.
X-Stranger отвечает на наиболее волнующие вопросы самых начинающих пользователей Linux.
Офис, открытый для всех.
Украинское издание ITC Online опубликовало обзор офисной системы OpenOffice.org. Достаточно интересно и информативно. (LRN)
Кластеры в Linux.
Все, что вы хотели узнать о создании домашних кластеров :).
Линус Торвальдс против Билла Гейтса.
Несмотря на громкое название, это - всего лишь небольшой обзор книги "Just for fun" :).
Win4Lin 4.0.
Подробный обзор установки и использования новейшей версии Win4Lin. Вкратце - работает намного шустрее, чем все конкурирующие системы, но поддерживает только win98 и ME. (Linuxnews)
Интересный софт:
Mail Filter. Программа для защиты от спама. Письма не скачиваются, а удаляются сразу же на сервере. "Very useful for dialup connections" :).
Sound Tracker. Самый функциональный tracker для Linux.
Motion. Программа, которая работает с устройствами video4linux, реагирует на движение и записывает их в mpeg формат. Очень полезна для построения систем видеонаблюдения, может засылать email или sms при срабатывании. (LRN)
Devil Linux. Еще один минидистрибутив для быстрого построения надежного Firewall'а / Router'а. Загружается с CD, записывает информацию на дискету, не требует наличия жесткого диска, минимальные требования - 486, 32 RAM.
Реклама:
У вас есть вопросы по Linux? Задайте их в нашем списке рассылки!
31.05.02:Mozilla 1.0 - неофициальный релиз.
31.05.02: RedHat опубликовал свое письмо, в котором ясно показывается, что RedHat не обеспокоен созданием UnitedLinux. Так же RedHat не собирается следовать стандартам в своих дистрибутивах.
29.05.02: Выложены ISO-образы дистрибутива ALT Linux Master 2.0. Шестой диск - без папки CommSoft. Ссылка #1, ссылка #2.
29.05.02: Новый проект под названием Agnula, цель которого - разработка приложений и создание дистрибутивов Linux, предназначенных для обработки Audio.
28.05.02: Caldera, SuSE, Turbolinux и Conectiva обьявили, что они собираются обьединиться для создания стандартной платформы "United Linux" ("Обьединенный Linux"). Основные причины объединения - стандартизация Linux и противостояние RedHat. Первые результаты (платформа United Linux 1.0 и дистрибутивы на ее базе от всех участников объединения) можно будет увидеть уже в конце этого года.
28.05.02: Вышла Opera 6.01 для Linux.
27.05.02: Вышел Slackware 8.1 rc1.
24.05.02: Вышла Mozilla 1.0 RC3.
24.05.02: Вышел Win4Lin 4.0.
27 мая 2002 г. состоялось открытие нового информационного ресурса "Мир без Windows"! Главные темы сайта:
- Решение практических задач без применения программ и операционных систем от Microsoft.
- Мягкий и безболезненный переход с Win на Linux/другую OS.
- Обзор качественного и нужного софта под не-Microsoft платформы.
- Реальные истории людей, которые успешно обходятся без Windows.
- И многое другое! Адрес: http://nowindows.km.ru.
Не могу удержаться от комментария.. Когда я искал статьи по теме этого выпуска рассылки, 99% того, что я нашел - это установка Apache и PHP под Windows :). Про Linux я нашел только 3 нормальных статьи одного и того же автора. Классическая статья "Установка Apache+PHP+MySQL", на которую все ссылаются, была написана еще в 1999 году. Поэтому я посчитал ее немного устаревшей :), и решил опубликовать две статьи 2001 года.
Данный текст описывает установку Russian Apache без каких-либо дополнительных модулей. По идее, в большинстве современных дистрибутивов идет уже настроенный Apache, но многим нужен именно Apache с перекодировкой.
Первое, что вам необходимо сделать - это взять пакет с apache с apache.lexa.ru. Данный текст будет основываться на том, что у вас пакет apache_1.3.14rusPL30.0.tar.gz. Но приведенные рекомендации будет верны и в том случае, если у вас другая версия - вам надо будет лишь сменить имена файлов.
Итак, разворачиваем Apache командой
tar zxvf apache_1.3.14rusPL30.0.tar.gz
У вас возникнет каталог apache_1.3.14rusPL30.0, в котором будет размещены исходные тексты сервера.
Переходим в каталог с Apache
cd apache_1.3.14rusPL30.0
Теперь - необходимо настроить все необходимое для сборки Apache. Это выполняет команда configure. Необходимо учесть, что просто запуск этой команды приведет к генерации конфигурационных файлов по умолчанию. То есть Apache будет установлен в каталог /usr/local/apache, он будет запущен от пользователя nobody, в него не будет вкомпилен mod_rewrite и так далее. Для 99% пользователей такая конфигурация подходит как нельзя лучше. Но мы же с вами не 99%?
Итак, для указания места, куда абудет инсталлироваться Apache, служит параметр --prefix=. Указав --prefix=/apache мы укажем инсталлятору, что все файлы будут располагаться в каталоге /apache. Ну или в любом другом по вашему вкусу.
Параметр --enable-module служит для включения в компиляцию модулей, которые по умолчанию не включаются. Это auth_anon, auth_dbm, auth_db, auth_digest, cern_meta, digest, example, expires, headers, info, log_referer, mime_magic, mmap_static, proxy, rewrite, so, speling, unique_id, usertrack, vhost_alias. Многие из них вам никогда не понадобятся (особенно модуль example), но часть вам может и пригодиться, особенно модули proxy, rewrite, so. Указав --enable-module=rewrite мы скажем конфигуратору, что желаем скомпилировать модуль mod_rewrite.
Теперь подумаете - нужны вам модули статически собранные или динамически? Статически - это когда модули "намертво" вкомпилированы в тело httpd и не могут выгружаться/загружаться динамически. Для большинства веб-серверов сборка модулей статически вполне оправдана - получается монолит, с которым потом меньше хлопот и возни. Но, к примеру для крупных серверов, которые одновременно обслуживают множество виртуальных хостов, "динамическая" сборка может оказаться выгоднее - администратор может распределять между веб-верверами "доступность" модулей. Для возможности подключения модулей не забудьте указать необходимость включения модуля so статически в httpd. Именно он отвечает за возможность подгрузки модулей.
Для указания модулей, которые необходимо собрать динамически, необходимо указать их имена в параметре --enable-shared=.
Теперь осталось указать, под каким пользователем будет работать сервер Apache. По умолчанию стоит пользователь nobody, но с помощью параметра --server-uid= вы сможете поменять UID на любой тербуемый вам (UID, а не имя!).
Например, для пользователя nobody в моей системе это будет:
Этой командой мы даем указание конфигуратору приготовить Apache к установке в каталог /www, включить модули rewrite, so и proxy, выделив модуль proxy как динамически загружаемый.
Если конфигурация прошла без ошибок, то мы можем с легким сердцем дать команду make для начала компиляции.
После того, как make отработал (надеюсь, без ошибок - если есть ошибки, смотрите, чего компилятору не хватает), вы должны уйти с помощью команды su под пользователя, обладающим необходимыми правами для записи в выбранный каталог и выполнить команду make install. Инсталлятор перепишет все необходимые файлы в выбранный каталог (в нашем случае это /www) и выдаст расположение конфигурационного файла (/www/conf/httpd.conf) и команду запуска apache (/www/bin/apachectl start).
Но мы сразу запускать сервер не будем - давайте проверим, все ли на месте - дадим команду /www/bin/httpd -l, которая заставит сервер вывести список всех модулей, которые вкомпилированы в него. Как мы и видим, mod_so и mod_rewrite включены, а mod_proxy в списке отсутствует. Все, как и должно быть - ведь мы сказали собрать модуль proxy динамически, и пока мы его не включим командой LoadModule в httpd.conf - он никак запускаться не будет.
Теперь можно и запустить сервер - /www/bin/apachectl start. Теперь с чистой душой мы можем набрать в браузере 127.0.0.1 и увидеть тестовую страницу сервера.Если вы собирали apache не на своей машине, то вместо 127.0.0.1 наберите ip адрес машины или ее имя - по умолчанию (ведь мы ничего не меняли) он "садится" на все доступные интерфейсы на 80й порт.
Вот и все - вы стали обладателем собственого www-сервера. Для остановки-запуска используйте утилиту apachectl - она сделает все, что необходимо.
Как совет - после правки httpd.conf и перед перезапуском сервера я рекомендую проверить правильность синтаксиса файла командой apachectl configtest. Она проверит синтаксис файла и укажет на те строки, из-за которых сервер может не запуститься.
Как маленький совет - я часто переименовываю утилиту apachectl в httpd и заменяюей в каталоге /etc/rc.d/init.d "оригинальный" httpd, который идет вместе с дистрибутивом. Если вы его не ставили, то просто скрпируйте apachectl в нужный каталог и сделайте аналогичные ссылки с соответвующих rc{x}.d - теперь Apache будет запускаться и останавливаться вместе с системой. Как правильно прописать ссылки - это уже другая тема.
Итак, ваш сайт стал посещаемым, на него стало приходить больше народу, но охота добавить какой-нибудь интерактивности сайту ... Можно, конечно, обойтись cgi-скриптами, но это уже не модно, да и во многих случаях ими одними не обойтись. Итак, давайте соберем Apache и подключим к нему PHP и все необходимые мелочи, что бы получился по настоящему
"мощный" сервер.
Нижеприведенная инструкция рассказывает, как собрать связку Apache+PHP+gd+postgres. Этой связки хватит для большинства веб-сайтов, которые вы можете видеть в интернет. Почему именно PHP, а не JSP или Perl? Нравится мне он ;-). Аналогичное могу сказать и про Postgres и MySQL.
Все эти команды я производил, когда собирал основу для linuxnews.ru. Как это работает - вы можете сами убедиться, зайдя на http://linuxnews.ru.
Для сборки нам необходим установленный Postgres (в моем случае он установлен в /postgres) и библиотека GD (С ее помощью очень удобно обрабатывать картинки).
Как собирать и настраивать Apache, я уже писал, поэтому перейду сразу к сборке PHP.
ВНИМАНИЕ - перед сборкой PHP дайте в каталоге Apache команду ./configure без параметров.
Разворачиваем и конфигурируем PHP
tar zxvf php-4.0.4pl1.tar.gz
cd php-4.0.4pl1
./configure --without-mysql --with-pgsql=/postgres --with-apache=./ apache_1.3.14rusPL30.0 --with-xml --with-mod_charset --with-gd
Этой командой мы ВЫКЛЮЧАЕМ поддержку MySQL (по умолчанию она включена), указываем расположение Postgres и исходного дерева Apache, включаем поддержку xml, mod_charset и gd.
Исправьте пути, если они не совпадают с теми, которые я указал.
Собираем PHP
make
И инсталлируем его в дерево Apache.
make install
Переходим в каталог с Apache
cd ./apache_1.3.14rusPL30.0
Конфигурируем его, говоря устанавливаться в /apache и подключить PHP.
ВНИМАНИЕ - если вы планируете поддержку SSL, то перенесите параметры к configure от Apache к configure от SSL и используйте последний. Смотрите описание установки SSL.
Собираем его
make
И инсталлируем.
make install
Все, дерево каталогов установлено в /apache (или что вы указали в prefix).
Теперь давайте скажем, чтоб .php файлы обрабатывались PHP. Для этого в файле httpd.conf (/apache/conf/httpd.conf) разкоментируйте две строчки:
Первая отвечает за то, что бы файлы .php выполнялись PHP. Вторая - за то, что бы файлы .phps выводились на экран в виде исходных текстов с подсветкой синтаксиса. Для "программерских" сайтов это очень удобно. Если вы не желаете показывать исходных текстов своего сайта, то просто либо не удаляйте символ комментария (#) в начале второй строки, либо просто не создавайте файлов .phps.
Все, сохраните httpd.conf и запустите Apache командой
/apache/bin/apachectl start
Теперь вы можете попробовать обратиться в браузере к созданному серверу, просто набрав его адрес. Если вы все делаете на локальной машине, адрес 127.0.0.1 вполне подойдет.
Давайте проверим, работает ли PHP - для этого создадим простой файл, состоящий из одной строчки:
Если вы увидели страницу, которая расписывает вам установки PHP, значит, все отлично. Если же вы просто увидели на экране ее содержимое, тогда смотрите - что-то вы сделали не так - PHP не работает.
Теперь осталось немного обезопасить PHP.
Просто скопируйте файл php.ini-optimized из корневого каталога с исходными текстами PHP в /usr/local/lib/php.ini
В этом файле выключено автоприсвоение глобальных переменных и немного поправлено остальное. Конечно, все равно желательно просмотреть и исправить этот файл в случае необходимости самому - лучше лишний раз все проверить самому.
Вот и все - теперь вам остается написать свой сервер, используя PHP.
Удачи !