Как скомпилировать PHP, чтобы сделать его независимым от системных библиотек? - PullRequest
1 голос
/ 14 декабря 2010

Мне нужна отдельная версия PHP для независимых от библиотек, чтобы иметь возможность распространять ее в виде ZIP-файла, содержащего двоичные файлы.Ранее .zip содержал libxml2.so.2, libpng12.so.0, php.ini и исполняемый файл php.Недавно мне нужно было добавить некоторые функции и перекомпилировать PHP.Я сделал это с помощью:

./configure \
    --prefix=/home/user/php/out \
    --libdir=. \
    --enable-static=YES \
    --enable-shared=NO \
    --with-pdo_mysql \
    --with-gd \
    --with-mysql \
    --enable-zip \
    --enable-zend-multibyte \
    --enable-cgi \
    --enable-fastcgi \
    --with-ldap=shared
make && make install

Затем я взял php из out / bin и libmysqlclient.so.16 из / usr / lib /.Но новый php не хочет собирать библиотеку.После запуска я получаю следующую ошибку:

./php: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory

libmysqlclient.so.16 и php находятся в одном каталоге.Если я помещаю libmysqlclient.so.16 в / usr / lib, php работает нормально.

Есть ли какая-то дополнительная опция, о которой я забыл во время компиляции?Почему не "--libdir =."вариант работает?

Ответы [ 2 ]

2 голосов
/ 14 декабря 2010

Во-первых, директива --with-libdir, а не --libdir. Во-вторых, я думаю, что это относительно /usr, поэтому добавление . означает, что вам нужно поместить общие библиотеки в /usr.

Если вы выполнили какое-либо C-кодирование с общими библиотеками, вы должны знать о ld. Самый простой способ обработки пути к разделяемым библиотекам - использовать ld.

Вы можете установить путь к библиотеке для текущего сеанса (оболочки):

bash-4.1$ export LD_LIBRARY_PATH=/path/to/your/libs

Вы также можете настроить ld на постоянную работу:

bash-4.1$ echo /path/to/your/libs >> /etc/ld.so.conf
bash-4.1$ ldconfig
0 голосов
/ 14 декабря 2010

Может быть, вы могли бы использовать XAMPP и сэкономить время?Он поставляется в расфасованном виде и довольно компактен.

http://www.apachefriends.org/en/xampp.html

...