LINUX.ORG.RU
ФорумTalks

Инструкция PHP 5 + Apache 2


0

0

Сегодня помучившись немножко с установкой Apache2+PHP5 на Fedora 10 / x86_64 написал короткую инструкцию для самовспоминания этого процесса.

В конце идет пара слов о том как _не_ получилось собрать IMAP (поскольку он мне нафиг не нужен, особо и не заморачивался).

Пишу здесь из расчета: вдруг кому-нибудь понадобится.

0.
строчку "olegchir" поменять на имя юзверя, из под которого производится установка

1.

С какими опциями компилировался Апач — не помню.
Преположительно вот так:

./configure --prefix=/home/olegchir/apps/apache22php5 --enable-so --enable-cgi --enable-info --enable-rewrite --enable-speling --enable-usertrack --enable-deflate --enable-ssl --enable-mime-magic

В этой строчке нужно проверить, нужно ли в ней подключать vhost (виртуальные хосты) явно, или они уже есть сразу. Важно чтобы было --enable-so.

И как обычно make, make install


2.

Дальше качаем PHP и запускаем строчку для компилирования без IMAP:

./configure --prefix="/home/olegchir/apps/php-5.2.9" --with-bz2 --with-curl --with-domxml --with-exif --with-pdf --with-gd2 --with-gettext --with-mbstring --with-mysql=/usr/bin --with-mysqli --with-openssl --with-phpdoc --with-pop3 --with-rar --with-sdo --with-smtp --with-soap --with-sockets --with-ssh2 --with-xmlrpc --with-xsl --with-pdo-mysql --enable-zip --enable-spl --with-apxs2=/home/olegchir/apps/apache22php5/bin --disable-cgi --enable-so --with-libdir=lib64

В этой строчке особенно важна фраза "--with-mysql=/usr/bin --with-libdir=lib64", именно так и никак иначе.

Что там требуется из зависимостей — смотреть по ситуации, точно должны быть devel-версии MySQL, Curl, какой-нибудь xml наверняка попросит.

Ну и всё, make, make install.

Замечаем что модуль libphp5.so уже автоматически появился в директории /home/olegchir/apps/apache22php5/modules


3.

Дальше нужно разрешить Апачу запускаться на 80м порту из под обычного пользователя (не рута)

Сделать можно двумя способами:

а. setcap 'cap_net_bind_service=+ep' /home/olegchir/apps/apache22php5/bin
б. iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8090, iptables save. И не забыть в конфиге апача прослушку 8090, наверное )))



4.

Дальше правим конфиги Апача.

В конфиге используется идея про фикс для MiltiViews отсюда: http://dan.drydog.com/apache2php.html
Если нужно понять почему не используется "application/x-httpd-php php" — смотреть туда.

В httpd.conf раскомментируем строчку "Include conf/extra/httpd-vhosts.conf", это включит виртуальные хосты.

Потом стираем в этом самом conf/extra/httpd-vhosts.conf все что там есть и пишем:

//----------------------------------------

NameVirtualHost *:80

<VirtualHost *:80>
ServerAdmin hedin.pr@gmail.com
DocumentRoot "/home/olegchir/docs/sites/apache22php5main"
ServerName olegchir.ru
ServerAlias olegchir.ru
ErrorLog "logs/olegchir.ru-error.log"
CustomLog "logs/olegchir.ru-access.log" common

#AddType application/x-httpd-php .php

LoadModule php5_module modules/libphp5.so
AddHandler php5-script php
AddType text/html php
AddType application/x-httpd-php-source phps

<Directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
</Directory>

<Directory "/home/olegchir/docs/sites/apache22php5main">
Options Indexes FollowSymLinks ExecCGI
DirectoryIndex index.php index.htm phpinfo.php
AllowOverride None
Order allow,deny
Allow from all
</Directory>

</VirtualHost>

//----------------------------------------



5.

Создаем папочку /home/olegchir/docs/sites/apache22php5main
Создаем там файл phpinfo.php
В него пишем следующие строчки:

<? phpinfo(); ?>


6.

Дальше в /etc/hosts прописываем

127.0.0.1 olegchir.ru


7.

Дальше в ~/.bashrc (если он есть, на Федоре есть сразу) прописываем:

PATH=$PATH:$HOME/bin
export PATH

но только если это уже не сделано где-то еще в другом месте типа ~/.bash_profile

Делаем source ~/.bashrc чтобы применить изменения.


Дальше создаем эту самую папочку ~/.bin и грохаем в нее символическую ссылку на /home/olegchir/apps/apache22php5/bin/apachectl, называем ее apache22php5instance1

Запускаем сервак командой apache start

Заходим на olegchir.ru

Радуемся результату.


8.
IMAP.

Ставим пакеты

krb5-devel
krb5-libs
krb5-workstation
mysql-devel
zlib-devel

в вариантах (может быть придется доставить i386 в зависимости от невезучести :)

По идее нужно еще бы установить пакет "ibc-client-devel", который даже входит в Fedora 10.
Но с ним выходит облом. PHP требует libc-client.a, а в этом пакете нету .a, только .so. Пробовал кучу вариантов, скормить .so так почему-то и не получилось.

То есть нужно ручками качать вот это:
ftp://ftp.cac.washington.edu/imap/c-client.tar.Z
и это
http://files.directadmin.com/services/da_imap-2007e.tar.gz
компилировать и устанавливать.

Говорят что для 64-битных ОС необходимо отредактировать Makefile (из da_imap-2007e.tar.gz) и заменить в нем EXTRACFLAGS= на EXTRACFLAGS=-fPIC.


Ну и потом

./configure --prefix="/home/olegchir/apps/php-5.2.9" --with-bz2 --with-curl --with-domxml --with-exif --with-pdf --with-gd2 --with-gettext --with-imap=shared,/usr/lib64 --with-mbstring --with-mysql=/usr/bin --with-mysqli --with-openssl --with-phpdoc --with-pop3 --with-rar --with-sdo --with-smtp --with-soap --with-sockets --with-ssh2 --with-xmlrpc --with-xsl --with-pdo-mysql --enable-zip --enable-spl --with-kerberos --with-imap-ssl --with-zlib --with-libdir=lib64 --with-apxs2=/home/olegchir/apps/apache22php5/bin --disable-cgi --enable-so

make, make install

Ответ на: комментарий от olegchir

> а шо не так? =)

Ну тогда понятно все. Верстальщик/Дизайнер/Программизд/Администратор в одном лице, все знаешь, все умеешь. Убивал бы таких.

phasma ★☆
()
Ответ на: комментарий от phasma

> Убивал бы таких.

Аргументируй, что не так.

Ну или если тебе так не понравилась идея точно клонированных инстансов — тоже просьба аргументировать.

> Верстальщик/Дизайнер/Программизд/Администратор

Зайди на какой-нибудь сайт типа Хедхантера(hh.ru) или нашего новосибирского (job.ngs.ru). Забей туда в поиск "веб-разработчик", "web-developer", "PHP" или "Java".

Стандратные требования: PHP/Java/Python + HTML/CSS/JSS + "плюсом будет умение работать с Linux на уровне продвинутого пользователя и знание графических пакетов".

Вполне так себе нефрилансерские, офисные места.

olegchir
() автор топика
Ответ на: комментарий от olegchir

> Ну или если тебе так не понравилась идея точно клонированных инстансов — тоже просьба аргументировать.

я пока не услышал ни одной проблемы, которая бы возникала при переносе PHP скрипта с одно сервера на другой, начинай.

> Зайди на какой-нибудь сайт типа Хедхантера(hh.ru) или нашего новосибирского (job.ngs.ru). Забей туда в поиск а"веб-разработчик", "web-developer", "PHP" или "Java".


Я как бы работал "веб-разработчиков" и дальше кода я не лез. Есть дизайнер, есть верстальщик, есть я, есть администратор. Я не создавал шаблонов, дизайнер не писал код. Я не администрировал серверы, администратор не верстал шаблоны.

phasma ★☆
()
Ответ на: комментарий от olegchir

> Стандратные требования: PHP/Java/Python + HTML/CSS/JSS + "плюсом будет умение работать с Linux на уровне продвинутого пользователя и знание графических пакетов".

Заметь, "linux на уровне продвинутого пользователя" != "администратор веб-сервера, блюститель внутренней IT-инфраструктуры"

kkw
()
Ответ на: комментарий от boombick

> Да еще и нищеброд :) Боже, как я давно не имел дела с шаред-хостингом..

да, ща хош рейд из сасов, хош 16 ядер, хош 128 RAM ^_^ красота и писать можно в свое удовольствие.

phasma ★☆
()
Ответ на: комментарий от kkw

> Заметь, "linux на уровне продвинутого пользователя" != "администратор веб-сервера, блюститель внутренней IT-инфраструктуры"

И что? Не понял ) Вы все сговорились меня травить за топик?

>> Да еще и нищеброд :) Боже, как я давно не имел дела с шаред-хостингом..

>да, ща хош рейд из сасов, хош 16 ядер, хош 128 RAM ^_^ красота и писать можно в свое удовольствие.

Отдалитесь километров так на несколько от мкада. И попробуйте по городу побегать да вхолодную по телефоном попрозванивать: обязательно говорите что продаете чудесный сайт, который требует кластера за двести тыщ рублей + оплата за обслуживание. Сколько сайтегов купят? =)

> я пока не услышал ни одной проблемы, которая бы возникала при переносе PHP скрипта с одно сервера на другой, начинай.

Самая жесть - попробуй перенести с Оракла на MySQL =) Веселье обеспечено.

Ну или например скрипты, которые выполняются _долго_ — на сервак с ограничением по времени.

Или например какой-нибудь сайтик, который был написан с учетом багов PHP или Апача. Переносится на сервер, где этого бага нет. Почитать баглист можно на сайтах пыха и апача соответственно.

Это гадание на кофейной гуще. Случиться может что угодно ))

Случиться может даже несовпадение версии пхп. Заказчик сказал что пых пятый, а оказалось что четвертый, да еще какой-нибудь доистирической версии 4.0.13 которой даже в пхп-музее под виндовый сервер уже не лежит =) Правда тут уже инстансы непричем.

> Я не создавал шаблонов, дизайнер не писал код.

А документацию к шаблонам и примеры шаблонов для дизайнера — писал святой дух.

(а дизайнер не читал документацию к шаблонной системе, чтобы знать как юзать циклы и проверки, подключать Beans в JSP, и конечно их не юзал — все ваши сайты не содержали опциональных и повторяющихся элементов =)

>Я не администрировал серверы

Мне уже жалко вашего администратора — представляю что вы ему рассказывали о том какие модули нужны к серваку и как они должны работать.

> администратор не верстал шаблоны.

Ну хоть одно достижение.

==========

Какое отношение это всё имеет к топику?

Лучше расскажите, насколько это правильно — использовать setcap 'cap_net_bind_service=+ep' и чем это может обернуться.

olegchir
() автор топика
Ответ на: комментарий от olegchir

> Отдалитесь километров так на несколько от мкада. И попробуйте по городу побегать да вхолодную по телефоном попрозванивать: обязательно говорите что продаете чудесный сайт, который требует кластера за двести тыщ рублей + оплата за обслуживание. Сколько сайтегов купят? =)

Я должен бегать ? Странное представление о работе.

> Самая жесть - попробуй перенести с Оракла на MySQL =) Веселье обеспечено.


Это твоя проблема, а не пхп, я использую ORM для работы с СУБД.

> Ну или например скрипты, которые выполняются _долго_ — на сервак с ограничением по времени.


Это тоже твоя проблема, а не апача с пхп

> Или например какой-нибудь сайтик, который был написан с учетом багов PHP или Апача. Переносится на сервер, где этого бага нет. Почитать баглист можно на сайтах пыха и апача соответственно.


ССЗБ

> Случиться может даже несовпадение версии пхп. Заказчик сказал что пых пятый, а оказалось что четвертый, да еще какой-нибудь доистирической версии 4.0.13 которой даже в пхп-музее под виндовый сервер уже не лежит =) Правда тут уже инстансы непричем.


ССЗБ

> (а дизайнер не читал документацию к шаблонной системе, чтобы знать как юзать циклы и проверки, подключать Beans в JSP, и конечно их не юзал — все ваши сайты не содержали опциональных и повторяющихся элементов =)


дизайнер ? дизайнер рисует шаблон, верстальщик верстает. Что непонятного ?

> Мне уже жалко вашего администратора — представляю что вы ему рассказывали о том какие модули нужны к серваку и как они должны работать.


сейчас я администратор и бывает, что попадаются срилансеры :) вот над ними я люблю поиздеваться ^_^

phasma ★☆
()
Ответ на: комментарий от phasma

phasma, все что ты написал "ССЗБ" и "твоя проблема" — спокойно решается тем что машина для разработки в точности соответствует продакшену.

предыдущие два оратора из комментов подсказали верную мысль — бодяжить VirtualBox'ы. Что-то в этом есть... Собсно эта мысль уже стоила написания поста сюда.

olegchir
() автор топика
Ответ на: комментарий от olegchir

> предыдущие два оратора из комментов подсказали верную мысль — бодяжить VirtualBox'ы. Что-то в этом есть... Собсно эта мысль уже стоила написания поста сюда.

Xen/KVM отличаются от VB, проще тогда BSD'шные jail использовать.

phasma ★☆
()
Ответ на: комментарий от olegchir

> Отдалитесь километров так на несколько от мкада. И попробуйте по городу побегать да вхолодную по телефоном попрозванивать: обязательно говорите что продаете чудесный сайт, который требует кластера за двести тыщ рублей + оплата за обслуживание. Сколько сайтегов купят? =)

ЛОЛ, точно нищеброд-фрилансер :) Я продаю комплексное бизнес-решение, которое подразумевает полный цикл обслуживания (включая хостинг), а не "купите у меня сайтег". И нет никакой разницы, внутри МКАДа я или дома, за много километров от него. Интернет везде есть.

boombick ★★★★★
()
Ответ на: комментарий от boombick

> Я продаю комплексное бизнес-решение, которое подразумевает полный цикл обслуживания (включая хостинг), а не "купите у меня сайтег".

Ну и фразу навертел. Я тоже такие фразы умею, только стараюсь здесь так не распространяться, все свои =)

> И нет никакой разницы, внутри МКАДа я или дома, за много километров от него. Интернет везде есть.

Деньги не у всех есть на сайтики.

Многим непонятно, нафиг им этот сайт нужен. В особо запущенных случаях ("сеть продуктовых ларьков") покупатели могут вообще интернетом не пользоваться, а компутер использовать для 1С и Экселя.

Поэтому купить сайт за 10 т.р. они могут легко, за 20 — с баааальшой натяжкой, за 30 — идите нах.

Не все обладают мега-предприятиями, могущими себе позволить "комплексное бизнес-решение полного цикла".

А если имеется в виду не шаред-хостинг и не удаленный хостинг, то тут ведь еще и СИСАДМИНА нужно нанимать! Возможно приходящего, а не постоянного — но всё-таки.

А еще есть бюджетники. Бюджетникам, как известно, ничего нафиг ненадо, потому что их зарплата фиксированная, хоть уработайся. За то что ты открыл своей биржи безработных сайтик с вакансиями — больше тебе не заплатят, даже премию не дадут (накуй давать премию если ты увеличил расходы?). С такими товарищами всё еще жестче.

Я не нищеброд. Стоимость услуг должна соответствовать бизнесу =)

olegchir
() автор топика
Ответ на: комментарий от olegchir

> сайтик, который был написан с учетом багов PHP или Апача.

примеров, конечно, не будет

kkw
()
Ответ на: комментарий от olegchir

> Самая жесть - попробуй перенести с Оракла на MySQL =) Веселье обеспечено.

Т.е. если Вы сделаете полную копию сервера, то перенос "с Оракла на MySQL" превратится в сказку? Причем здесь это?

pi11 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.