Ubuntu где лежат so php

Установка модулей PHP (Debian / Ubuntu)

Ниже мы рассмотрим установку модулей PHP на сервер с операционной системой Ubuntu или Debian.

Создание phpinfo-скрипта

В процессе установки модулей нам потребуется получать информацию о параметрах PHP на сервере, поэтому в первую очередь разместим скрипт phpinfo.php в директории сайта.

Для этого подключитесь к серверу по SSH и выполните следующие шаги:

1. Перейдите в директорию сайта:

Например, если на сервере установлен LAMP (автоматически при создании сервера):

Если на сервере установлена панель VestaCP:

cd /home/имя_пользователя/web/имя_домена/public_html

2. Создайте файл phpinfo.php :

3. Добавьте в него следующее содержимое:

phpinfo();
phpinfo(INFO_MODULES);
?>

4. Сохраните изменения (нажмите Ctrl+X для выхода из nano, далее Y для сохранения изменений и Enter).

После перейдите по адресу http://вашдомен/phpinfo.php , и в браузере будет отображена информация о настройках PHP.

Установка модулей на примере imagick

Рассмотрим установку модулей php на примере модуля imagick .

Если вы не уверены в точном названии пакета, можно воспользоваться командой ниже, указав часть названия пакета. Для PHP названия большинства библиотек будут начинаться с «php».

Вывод команды выглядит примерно следующим образом:

В данном случае нам будет нужен пакет php-imagick .

2. Обновите информацию из репозиториев:

4. Проверьте, какая директория задана для расширений. Для этого нужно на странице http://вашдомен/phpinfo.php найти параметр «extension_dir»:

Перейдите в указанную директорию:

Проверьте, есть ли в ней установленная библиотека:

Можно указать часть имени библиотеки, чтобы упростить вывод, например:

Если библиотека присутствует, она будет выведена в консоли:

5. Проверьте, какая директория используется для дополнительных конфигурационных файлов. Для этого нужно на странице http://вашдомен/phpinfo.php найти параметр «Scan this dir for additional .ini files»:

Перейдите в указанную директорию и просмотрите ее содержимое:

Можно указать часть имени библиотеки, чтобы упростить вывод, например:

Если конфигурационный файл с директивой, подключающей библиотеку, успешно создан, он будет выведен в консоли:

Если файл отсутствует, воспользуйтесь командой ниже, чтобы его создать:

echo "extension=imagick.so" > /директория/из/пункта/5/imagick.ini 
echo "extension=imagick.so" > /etc/php/7.2/apache2/conf.d/imagick.ini

Она создаст файл конфигурации imagick.ini в нужной директории и добавит в него директиву extension=imagick.so .

6. Перезагрузите веб-сервер Apache:

7. Обновите страницу http://вашдомен/phpinfo.php и найдите установленный модуль, чтобы убедиться, что все в порядке:

Подключение внешних библиотек

Если вам требуется подключить библиотеку, скачанную не из репозитория, необходимо:

1. Загрузить файл с расширением .so в директорию с остальными библиотеками (см. значение параметра extension_dir на странице http://вашдомен/phpinfo.php ; в нашем примере это директория /usr/lib/php/20170718 ).

2. Перейти в директорию с дополнительными конфигурационными файлами (см. значение параметра «Scan this dir for additional .ini files» на странице phpinfo.php ; в нашем примере это /etc/php/7.2/apache2/conf.d ):

3. Создать конфигурационный файл:

4. Указать в данном файле директиву и сохранить изменения:

extension=имя_библиотеки.so 

6. Обновить страницу http://вашдомен/phpinfo.php и убедиться, что библиотека установлена.

Если файл библиотеки был размещен в другой директории, то на шаге 4 необходимо в директиве extension указать соответствующий путь, например:

extension=/usr/local/lib/php/extensions/curl.so

Источник

Locating PHP extension folder using bash

I’m trying to build a bash script to install the Source Guardian PHP extension however the destination directory is different on every subsequent release of Ubuntu. Installing PHP5 on Ubuntu 14.04 results in the extensions being stored in /usr/lib/php5/20121212+lfs/, in Ubuntu 15.04 this directory changes, e.g. /usr/lib/20131226/ I’ve checked /etc/php5/fpm/php.ini and /etc/php5/fpm/php-fpm.conf but neither of these files has any mention of 20121212+lfs or 20131226. If I place the Source Guardian extension anywhere else, it does not load. Is there a way to programmatically determine the extension folder?

5 Answers 5

If php-config doesn’t exist, then apt-get install php-config if Ubuntu/Debian or yum install php-config if CentOS/Red Hat)

That command will give exact location of your php extension folder.

Don’t forget to change your php.ini in order to use extensions.

php-config it’s just a shell script and it comes with php if was compiled with —with-php-config flag.

php -i | grep extension_dir 

You might also want to try php -i | grep ^extension_dir as there is also a sqlite3.extension_dir . The caret will match from the beginning of the string only (for those that don’t know about regex) which helps if you’re using the output somehow

You can search for the xdebug file extension: find $(php -r ‘echo ini_get(«extension_dir»);’) -type f -name ‘xdebug.so’

Or just get the value: php -r ‘echo ini_get(«extension_dir»);’

You can find it as well by creating a phpinfo script (a file that invokes phpinfo(); ) and then run it in the browser.

enter image description here

Just wanted to add that although

would give you the extension directory but usually we modify some extension location in the active php.ini file. (there can be more than one php versions installed on the system at the same time. And current php.ini file location could be found by looking to the output of phpinfo function; using finding php.ini in the output of phpinfo function).

For example, xdebug might be located in the some other folder than the extension directory using the variable zend_extension; mostly located at the end of the php.ini file.

zend_extension=/usr/lib/php/20170718/xdebug.so 

So be careful when replace module file in the directory; (had made be nuts once; because although i was changing the file but was not actually reflected in the output of phpinfo file).

Источник

unixforum.org

Как узнать куда установлен PHP? (а то после винды так не привчен этот линукс)

Как узнать куда установлен PHP?

Сообщение n9uf » 21.12.2009 16:20

Не могу настроить apache и PHP. Apache работает на ура, PHP тоже установлен, но нужно подключить его как модуль, и какой путь надо указать я понятия не имею. Как вообще узнать куда установлена программа, а то как я понял она кидает свои файлы в несколько директорий, поди потом разберись какой путь указывать!

Re: Как узнать куда установлен PHP?

Сообщение aandy » 21.12.2009 16:49

> и какой путь надо указать я понятия не имею

скачать пакет содержащий mod_php из репозитория.
например, для дебиан он называется libapache2-mod-php5, распаковать и посмотреть где же находится libphp5.so
в дебиан он здесь: /usr/lib/apache2/modules/libphp5.so а в вашем дистрибутиве. наверное, где-то в той же степи)

> узнать куда установлена программа,

читайте документацию к вашему пакетному менеджеру)

> поди потом разберись какой путь указывать!

Re: Как узнать куда установлен PHP?

Сообщение n9uf » 21.12.2009 17:23

Так, mod_php стоит, в файле /etc/sysconfig/apache2 строчка APACHE_MODULES содержит php5. Т.е. он подключен? Или я не прав? Ну в любом случае скрипты не выполняются

Re: Как узнать куда установлен PHP?

Сообщение tmp13 » 21.12.2009 18:13

rpm -qa|grep apache2-mod_php5

Красных бей и белых бей!
Вот вам иерархия!
Я люблю тебя за это, милая моя,
Разудалая, хмельная мать моя – Анархия!

Источник

How to list and install php modules on ubuntu linux

hide the pain meme

I always, always forget how to do this and it takes an hour of googling to figure this out again. Basically I often need to see not just what php modules are installed on my system, but also what can be installed.

For example you can see what is already installed and available to you on your current system you simply type

php -m

in your command line. This command will list all of what is installed currently on your system.

But that is not what I want and probably not what you want if you are reading this. What I want is to know what is available for installing, or better what are the exact names of the packages. For this information you need a different command.

sudo apt-cache search php7*

This command searches the apt cache for packages that contain php7* the * is a wildcard meaning anything that looks like php7 such as php7.4-mysql. Try the command above and you will get a list of all of the php modules specifically for version 7.4. Not all modules will be listed. You can use another command to see all of the available php modules even if they don’t contain 7.4 in the name you can install them.

To see all php modules available use this command.

Minus the 7 and it will return every last module that contains the word php.

Then to install anything you need you use a command like the following

sudo apt install php7.4-mysql php7.4-curl php7.4-json php7.4-cgi php7.4-xsl

And that is how you list and install php modules/extensions.

Pro-tip : add -y to the end of the apt install command so you don’t have to keep answering yes during the module installs

After you install the modules you need to restart the PHP service. To see all the services currently running in order to find your PHP service type
service —status-all
That will list all of your systems services. Find the name of your php installation and restart it with this line of code
service php7.4-fpm restart

Here is an interesting article about how apt-cache works on linux
Here is a link to some more resources about this topic.

Источник

Читайте также:  Изменить таблицу excel python
Оцените статью