Решено: Установка php

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

Ответить
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Решено: Установка php

Сообщение azsx »

У меня calculate linux, я хочу запустить cli программу на php. Я сделал emerge php и установился

Код: Выделить всё

php -v
 PHP 7.0.23 (cli) (built: Oct  1 2017 01:41:29) ( ZTS )
 Copyright © 1997-2017 The PHP Group
 Zend Engine v3.0.0, Copyright © 1998-2017 Zend Technologies
     with Zend OPcache v7.0.23, Copyright © 1999-2017, by Zend Technologies

При запуске программы выходит ошибка

Код: Выделить всё

PHP Fatal error:  Uncaught Error: Call to undefined function pg_connect() in

ругается на строку в файле

Код: Выделить всё

dbconn = pg_connect("host=***

Соответсвенно нет модуля pgsql (а также мне надо будет pdo, curl, mbstring). Читаю https://wiki.gentoo.org/wiki/PHP/ru
И вот запутался.
Это не верно совсем устанавливать программы emerge php? Надо в /etc/portage/make.conf/custom добавлять флаги use, типа

Код: Выделить всё

USE="-gimp -pidgin -libreoffice -xsane php curl pdo postgres"

Вопросы.
1. Как всё таки правильнее устанавливать и удалять программы, на примере php?
2. Если правильнее писать в use - то как не путаться в параметрах строки use, ведь там будет немеряно всяких программ.
3. Вот нет в описании флагов mb_string для php. И что делать? В инструкции отмечено, что есть другие и как их найти?
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2600
ОС: Gentoo

Re: Решено: Установка php

Сообщение ormorph »

Почитайте про локальные флаги...
Для каждой программы можно задавать отдельно свои флаги, в /etc/portage/make.conf прописываются глобальные флаги...
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Решено: Установка php

Сообщение azsx »

Почитал про локальные и глобальные флаги. С ним не всё понятно, но пока ладно, потом спрошу, если получиться сделать хоть что нибудь.
У меня по пути /etc/portage/packkage.use был пустой файл custom. Я в него вставил, а потом ещё создал файл php и вставил:

Код: Выделить всё

cat php
dev-lang/php pdo curl mbstring pgsql
eix-sync
emerge -avuND @world

результата ноль, ошибка та же.

Код: Выделить всё

PHP Fatal error:  Uncaught Error: Call to undefined function pg_connect() in

Затем попробовал emerge php, делался очень долго, также бесполезно. Мой вопрос!
1. Как всё таки правильно устанавливать программы в calculate linux? Может моя ошибка, что я сразу emerge php набрал, а надо было его как глобальный флаг прописать? Или наоборот в emerge временные флаги прописать?
2. Важно, почему у меня не работают модули? При этом curl вроде как в php info есть. Что я устанавливаю не так?
Вот вывод ещё одной команды:

Код: Выделить всё

php -info | grep configure
Configure Command =>  './configure'  '--prefix=/usr' '--build=x86_64-pc-linux-gnu' '--host=x86_64-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share' '--sysconfdir=/etc' '--localstatedir=/var/lib' '--docdir=/usr/share/doc/php-7.0.23' '--htmldir=/usr/share/doc/php-7.0.23/html' '--prefix=/usr/lib64/php7.0' '--mandir=/usr/lib64/php7.0/man' '--infodir=/usr/lib64/php7.0/info' '--libdir=/usr/lib64/php7.0/lib' '--with-libdir=lib64' '--localstatedir=/var' '--without-pear' '--enable-maintainer-zts' '--with-fpm-acl' '--disable-bcmath' '--with-bz2=/usr' '--disable-calendar' '--disable-gcov' '--enable-ctype' '--with-curl=/usr' '--enable-dom' '--without-enchant' '--enable-exif' '--enable-fileinfo' '--enable-filter' '--enable-ftp' '--with-gettext=/usr' '--without-gmp' '--enable-hash' '--without-mhash' '--with-iconv' '--disable-intl' '--enable-ipv6' '--enable-json' '--without-kerberos' '--enable-libxml' '--with-libxml-dir=/usr' '--enable-mbstring' '--with-mcrypt=/usr' '--with-onig=/usr' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--disable-pcntl' '--enable-phar' '--enable-pdo' '--enable-opcache' '--without-pgsql' '--enable-posix' '--with-pspell=/usr' '--without-recode' '--enable-simplexml' '--disable-shmop' '--without-snmp' '--disable-soap' '--enable-sockets' '--with-sqlite3=/usr' '--disable-sysvmsg' '--disable-sysvsem' '--disable-sysvshm' '--without-fpm-systemd' '--without-tidy' '--enable-tokenizer' '--disable-wddx' '--enable-xml' '--enable-xmlreader' '--enable-xmlwriter' '--without-xmlrpc' '--without-xsl' '--enable-zip' '--with-zlib=/usr' '--disable-debug' '--enable-dba' '--without-cdb' '--with-db4=/usr' '--disable-flatfile' '--with-gdbm=/usr' '--disable-inifile' '--without-qdbm' '--with-freetype-dir=/usr' '--disable-gd-jis-conv' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--without-xpm-dir' '--with-webp-dir=/usr' '--with-gd' '--without-interbase' '--without-mysqli' '--with-mysql-sock=/var/run/mysqld/mysqld.sock' '--without-unixODBC' '--without-iodbc' '--without-oci8' '--without-pdo-dblib' '--with-pdo-mysql=mysqlnd' '--without-pdo-pgsql' '--with-pdo-sqlite=/usr' '--without-pdo-firebird' '--without-pdo-odbc' '--without-pdo-oci' '--with-readline=/usr' '--without-libedit' '--without-mm' '--with-pic' '--with-pcre-regex=/usr' '--with-pcre-dir=/usr' '--cache-file=/var/calculate/tmp/portage/dev-lang/php-7.0.23/temp/config.cache' '--with-config-file-path=/etc/php/cli-php7.0' '--with-config-file-scan-dir=/etc/php/cli-php7.0/ext-active' '--disable-embed' '--enable-cli' '--disable-cgi' '--disable-fpm' '--without-apxs2' '--disable-phpdbg' 'build_alias=x86_64-pc-linux-gnu' 'host_alias=x86_64-pc-linux-gnu' 'CPPFLAGS='
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5281
ОС: Gentoo

Re: Решено: Установка php

Сообщение /dev/random »

azsx писал(а):
11.10.2017 11:01
У меня по пути /etc/portage/packkage.use

Вы эту опечатку только на форуме допустили, или и при создании файла тоже?

azsx писал(а):
11.10.2017 11:01
был пустой файл custom.

Что за "файл custom"?

azsx писал(а):
11.10.2017 11:01
Я в него вставил,

Что именно вы в него вставили?

azsx писал(а):
11.10.2017 11:01
а потом ещё создал файл php и вставил:

Код: Выделить всё

cat php
dev-lang/php pdo curl mbstring pgsql
eix-sync
emerge -avuND @world

Где именно вы создали файл php?
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Решено: Установка php

Сообщение azsx »

Вы эту опечатку только на форуме допустили, или и при создании файла тоже?

Извините, пожалуйста, не могу сообразить кк из mc выводить текущий путь. Эту опечатку я сделал именно на форуме
/etc/portage/package.use
Это каталог и он уже был!
Где именно вы создали файл php?

Внутри каталога /etc/portage/package.use был пустой файл custom, а также я создал файл php, как в инструкции советуют. По cat вывел содержимое файлов + обновление две команды. Обе команды обновления уже вводил в консоли, то есть в файлах их нет! То есть в файлах такой текст:

Код: Выделить всё

dev-lang/php pdo curl mbstring pgsql

Погадаю, что я пакеты как то не так пишу.
Что за "файл custom"?

Я не знаю, почему у вас везде другие файлы. У меня в calculate linux именно custom. А также в каталоге /etc/portage/make.conf файлы: 0-base, binhost, custom.
Спасибо сказали:
Аватара пользователя
/dev/random
Администратор
Сообщения: 5281
ОС: Gentoo

Re: Решено: Установка php

Сообщение /dev/random »

azsx писал(а):
11.10.2017 11:44
Вы эту опечатку только на форуме допустили, или и при создании файла тоже?

Извините, пожалуйста, не могу сообразить кк из mc выводить текущий путь. Эту опечатку я сделал именно на форуме
/etc/portage/package.use
Это каталог и он уже был!
Где именно вы создали файл php?

Внутри каталога /etc/portage/package.use был пустой файл custom, а также я создал файл php, как в инструкции советуют. По cat вывел содержимое файлов + обновление две команды. Обе команды обновления уже вводил в консоли, то есть в файлах их нет! То есть в файлах такой текст:

Код: Выделить всё

dev-lang/php pdo curl mbstring pgsql

Погадаю, что я пакеты как то не так пишу.
Что за "файл custom"?

Я не знаю, почему у вас везде другие файлы. У меня в calculate linux именно custom. А также в каталоге /etc/portage/make.conf файлы: 0-base, binhost, custom.

Понятно. Значит, там теперь по умолчанию каталоги? Если что, portage поддерживает как файлы в /etc/portage/, так и каталоги; если там каталоги, то используется содержимое всех файлов в них, как если бы они были объединены в один в алфавитном порядке. Раньше там по умолчанию были просто файлы, но при желании их можно было заменить на каталоги. Теперь, получается, сразу каталоги, с момента установки?


Только сейчас заметил, а почему вы указали флаг pgsql? Он называется postgres. Откуда вы взяли флаги, которые туда прописали?

P.S. На всякий случай: получить список флагов пакета с описаниями можно командой equery u пакет
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 2600
ОС: Gentoo

Re: Решено: Установка php

Сообщение ormorph »

azsx писал(а):
11.10.2017 11:44
Извините, пожалуйста, не могу сообразить кк из mc выводить текущий путь.

Ctrl + O

Обратно Ctrl + O

Для добавления локальных флагов есть утилита euse
Прочитать информацию по флагу:

Код: Выделить всё

# euse -i флаг

Установить флаг для определенного пакета:

Код: Выделить всё

$ euse -p dev-land/php -E postgres

Убрать флаг из пакета, пример -postgres:

Код: Выделить всё

$ euse -p dev-land/php -D postgres

Я это вам и ранее уже прописывал тыц, но видно вы за все хватаетесь и часть из головы вылетает...
Так же утилита eix показывает информацию с какими флагами можно собрать пакет, и с какими этот пакет уже собран:

Код: Выделить всё

$ eix dev-lang/php

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

Код: Выделить всё

# eix-update

Так же информация о глобальных и локальных флагах присутствует в фалах:

Код: Выделить всё

# cat /usr/portage/profiles/use.desc
# cat /usr/portage/profiles/use.local.desc

Названия файлов говорят сами за себя какие флаги в каком хранятся, с помощью grep, можно получать описание конкретного флага в этих файлах.

Код: Выделить всё

# grep postgres /usr/portage/profiles/use.local.desc
Спасибо сказали:
azsx
Сообщения: 3684
ОС: calculate linux, debian, ubuntu

Re: Решено: Установка php

Сообщение azsx »

Откуда вы взяли флаги, которые туда прописали?

Думал, что прочитал в интернете. Но скорее всего флаг pgsql я придумал сам.
Проблема была именно в этом, прописал в своём файле php postgres вместо pgsql, сделал emerge php и всё заработало.
Я это вам и ранее уже прописывал тыц, но видно вы за все хватаетесь и часть из головы вылетает...

да, вы правы. Ничего не понимаю.
Спасибо сказали:
Ответить