Заставить Apache использовать скомпилированный PHP вместо связанного пакета в Debian
Моя конечная цель - установить OwnCloud на мою коробку Debian, 64-битное сжатие.
Моя установка довольно проста. Я установил OpenPanel, который в свою очередь устанавливает все необходимые модули LAMP через APT-GET. Это устанавливает PHP5.3.7 в моей системе и указывает Apache2 на его использование, все красиво и правильно.
Однако OwnCloud требует, чтобы mbstring был включен в PHP. Это требует, чтобы я скомпилировал свою собственную версию PHP с --with-mbstring
вариант конфигурации, так как PHP, входящий в состав репозиториев Debian, по-видимому, не будет иметь этого, и нет такого пакета, как php-mbstring
или же php5-mbstring
как раньше было с PHP4.
Я скомпилировал PHP с помощью учебника, найденного здесь, исключив APXS2 из конфигурации (так как я не мог заставить его работать ради любви ко мне) и заменив 5.2 на 5.4. Тем не менее, Apache2 установлен APT-GET (в /etc/apache2
) не распознает это и продолжает говорить "5.3.7".
Я также попытался сначала скомпилировать PHP, а затем установить OpenPanel, но безрезультатно.
Наличие OpenPanel очень важно, так как оно поможет моим клиентам управлять своими DNS, доменами и базами данных, а также доступом к Shell.
Наличие OpenCloud необходимо также, потому что мои клиенты требуют использования комплекта для совместной работы с открытым исходным кодом.
Как мне этого добиться.
(Ранее спрашивал на stackoverflow.com, но решил, что он там не принадлежит.)
1 ответ
Debian действительно может помочь вам здесьapt-get
есть режим для загрузки исходного кода и сборочных зависимостей для пакета, который вы затем можете настроить и собрать самостоятельно. Теоретически, установка должна быть идентична той, что содержится в репозитории Debian, поэтому она должна хорошо интегрироваться с вашей версией Apache.
Первоначально я обнаружил, что это PHP Magazine, где они использовали его для настройки версии GD, которую они компилировали с PHP. Но вы можете использовать его для изменения других флагов сборки так же легко.
http://web.archive.org/web/20101229025544/http://www.phpmag.ru/2009/09/12/ubuntu-9-04-php-5-gd-2/
Так как оригинальный сайт больше не доступен (ссылка выше через Way Back Machine), я воспроизводлю инструкции здесь:
# Install build tools, debian helpers and fakeroot
apt-get install build-essential debhelper fakeroot
# Get PHP source (it should go into /usr/src)
cd /usr/src
apt-get source php5
# Install all packages required to build PHP5
apt-get build-dep php5
#Now what we need is to update compile options,
# so we need to edit debian/rules file:
cd php5-5.2.6.dfsg.1
vim debian/rules
# locate the line having "--with-gd=shared,/usr --enable-gd-native-ttf \"
# replace with "--with-gd=shared --enable-gd-native-ttf \"
# that's remove reference to /usr so that bundled library is used
# compile (drink some coffee, walk you dog, see the latest House episode)
dpkg-buildpackage -rfakeroot
# install the new php5-gd package
cd ..
dpkg -i php5-gd_5.2.6.dfsg.1-3ubuntu4.2_i386.deb
# finally restart apache
/etc/init.d/apache2 restart
Очевидно, измените номер версии в соответствии с версией, которую вы на самом деле компилируете, и замените флаги на те, которые вам действительно нужны.