LINUX.ORG.RU

libastral.so говорит, что нужно заменить mod_php.so

xpahos ★★★★★
()

Спасибо всем. Сейчас потыкаю и скажу как получилось.
Проблема в том, что на серваке уже был php-5.3.3
Я собрал 5.4.7. Теперь хочу заменить у апача на новую.

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

У меня вопрос.
Прошёл я по твоей ссылке

We recommend creating the php-cgi.conf file in Apache's conf.d/ directory and setting these variables there. For CentOS systems this is located at /etc/httpd/conf.d/.

Ок. смотрим туда.

[root@test1 conf.d]# ll
total 16
-rw-r--r--. 1 root root 295 May 21  2009 manual.conf
-rw-r--r--. 1 root root 674 Nov  3  2011 php.conf
-rw-r--r--. 1 root root 392 Dec  8  2011 README
-rw-r--r--. 1 root root 299 May 21  2009 welcome.conf
Так как я здесь ничего не менял, думается что php.сonf это и есть решение моей проблемы.
[root@test1 conf.d]# cat php.conf 
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
<IfModule prefork.c>
  LoadModule php5_module modules/libphp5.so
</IfModule>
<IfModule worker.c>
  LoadModule php5_module modules/libphp5-zts.so
</IfModule>

#
# Cause the PHP interpreter to handle files with a .php extension.
#
AddHandler php5-script .php
AddType text/html .php

#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php

#
# Uncomment the following line to allow PHP to pretty-print .phps
# files as PHP source code:
#
#AddType application/x-httpd-php-source .phps
Здесь нет явного указания на php. Откуда этот файл знает что php в /usr/local/bin ?

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

что бы понятнее было

[root@test1 conf.d]# /usr/local/bin/php -v
PHP 5.4.7 (cli) (built: Apr 13 2013 18:31:05) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
[root@test1 conf.d]# /usr/bin/php -v
PHP 5.3.3 (cli) (built: Nov  3 2011 12:00:26) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

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

Ты собирал как? В твоем случае самый простой способ - это собрать или найти нормальную rpm-ку с новым php, установить её в систему и не городить огород из странных конфигураций.

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

Пример по ссылке:

ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /local-bin/php-cgi

и в нем видно откуда скрипт берется

А ты по-модимому смотришь конфиг для модульного php, а не для php как cgi-скрипта. В нем не через явное указания бинарника обработка запускается.

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

Либо нужно сюда

LoadModule php5_module modules/libphp5.so

Вписать абсолютный путь

LoadModule php5_module /usr/local/php/lib/libphp5.so

Либо в том каталоге где лежат модули апача заменить этот модуль на симлинк.

hidden_4003
()
Ответ на: комментарий от alpha

А ты по-модимому смотришь конфиг для модульного php, а не для php как cgi-скрипта. В нем не через явное указания бинарника обработка запускается.

Чуток поподробнее, если можно. Ну или ссылку где почитаь

In this example, the path to the php-cgi binary is /usr/bin/php-cgi. All files with the php extension will be handed to the PHP CGI binary.

Я такой файл создал.
Указав тот путь который мне нужен. Но думается мне, что где-то в апаче надо заменить использование 5.3.3 на 5.4.7.

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

PHP может работать в разных режимах. Как встроенный в апач модуль или как сторонний интерпретатор.

Что-то типа такого можно прочитать http://firstvds.ru/technology/faq/phpmodes

Вариант с php-cgi больше подходит когда нужно для разных виртуальных хостов разный PHP завести, например, и разделить их по правам доступа, конфигурации и т.п. Ну и вообще он проще, потому что ты не апач курочишь, а отдельностоящее приложение.

Если же ты хочешь поменять именно версию встроенного пхп, то как выше указали - LoadModule указывает путь к модулю, эту директиву и надо править.

Только не надо «заменять этот модуль на симлинк». Привычки раскладывать грабли по системе надо изживать.

Но вообще в случае когда речь о CentOS и о том чтобы вообще заменить системный php на более новый, самый правильный способ - это пойти сюда:

http://pkgs.org/search/?keyword=php&search_on=name&distro=82&exact=1

И взять новый php из репозитрия remi. В специально собранной для CentOS rpm-ке.

alpha ★★★★★
()

Никак. При сборке модуля php для apache важна версия apache и php. Если php был собран не под вашу версию apache, он просто не будет работать. А вообще, если вы собрали свежий php, просто замените символическую ссылку на mod_php.so на ссылку новой версии модуля php(собранную вами для вашей версии apache). И всё будет работать.

lucentcode ★★★★★
()
Последнее исправление: lucentcode (всего исправлений: 2)
Ответ на: комментарий от alpha

Только не надо «заменять этот модуль на симлинк». Привычки раскладывать грабли по системе надо изживать.

Вариант с симлинком не поломается при обновлении апача, а вот вариант с абсолютным путем нет, чтобы абсолютный путь не сломался файл должен лежать в conf.d/php5.conf, а не в основном httpd.conf

Более того даже вариант с /usr/local это уже костыль, я собирал SRPM это не настолько сложно как кажется.

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

Вариант с симлинком не поломается при обновлении апача

Вообще при обновлении пакета конфиги в /etc не затираются, а вот любые файлы в /usr - могут. Поэтому править конфиги нормально, а вот создавать неопакеченные симлинки в системных каталогах - неправильно.

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

Ну а вариант с rpm, конечно лучше. Правда имхо все-таки стоит взять из репозитория remi. Он признанный мастер по сборке php для центоса

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

Ну, ещё проще прописать путь до модуля в списке директив LoadModule... А вообще, лучший способ - это сборка пакетов со свежими apache и php из сорцов. Быстро, надежно и сборку можно получить ванильную. А то патчики, накладываемые дистростроителями не факт, что не несут в себе новых глюков.

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