Установка Magento 2 на Manjaro (Arch Linux) ~ php, расширение отсутствует - PullRequest
2 голосов
/ 10 января 2020

Я устанавливаю Magento 2 в своей системе, и после долгих хлопот я наконец-то добрался до мастера установки localhost. На экране «Готовность-Проверка-Установка» возникла следующая проблема (в Интернете есть несколько решений, большинство из которых я уже испробовал):

enter image description here

ОШИБКА: 1 отсутствует PHP расширения: PHP Расширение curl Важная часть заключается в том, что для этого я использую Manjaro, который является дистрибутивом Arch Linux.

1: вещь в том, что в хранилище пакетов arch linux нет no php -curl пакета , я думаю, что расширение curl уже установлено с php.

2: я проверил свой php .ini файл, и нет строки с расширением = php_curl, просто расширение = curl.

3: php -m печатает это:

php -m
[PHP Modules]
bcmath
bz2
calendar
Core
ctype
curl
date
dba
dom
exif
FFI
fileinfo
filter
ftp
gd
gettext
gmp
hash
iconv
intl
json
ldap
libxml
mbstring
mysqli
mysqlnd
odbc
openssl
pcntl
pcre
PDO
pdo_dblib
pdo_mysql
PDO_ODBC
pdo_pgsql
pdo_sqlite
pgsql
Phar
phpdbg_webhelper
posix
pspell
readline
Reflection
session
shmop
SimpleXML
soap
sockets
sodium
SPL
sqlite3
standard
sysvmsg
sysvsem
sysvshm
tidy
tokenizer
xml
xmlreader
xmlrpc
xmlwriter
xsl
Zend OPcache
zip
zlib

[Zend Modules]
Zend OPcache

4: я установил все с помощью brew для linux, поэтому я могу проверить пакет php следующим образом:

brew info php@7.3
php@7.3: stable 7.3.13 (bottled) [keg-only]
General-purpose scripting language
https://www.php.net/
/home/linuxbrew/.linuxbrew/Cellar/php@7.3/7.3.13 (520 files, 86.2MB)
Poured from bottle on 2020-01-10 at 10:32:22
From: https://github.com/Homebrew/linuxbrew-core/blob/master/Formula/php@7.3.rb
==> Dependencies
Build: httpd ✘, pkg-config ✘, xz ✔
Required: apr ✔, apr-util ✔, argon2 ✔, aspell ✔, autoconf ✔, curl-openssl ✔, freetds ✔, freetype ✔, gettext ✔, glib ✔, gmp ✔, icu4c ✔, jpeg ✔, libpng ✔, libpq ✔, libsodium ✔, libzip ✔, openldap ✔, openssl@1.1 ✔, sqlite ✔, tidy-html5 ✔, unixodbc ✔, webp ✔, bzip2 ✔, libedit ✔, libxml2 ✔, libxslt ✔, zlib ✔
==> Caveats
To enable PHP in Apache add the following to httpd.conf and restart Apache:
LoadModule php7_module /home/linuxbrew/.linuxbrew/opt/php@7.3/lib/httpd/modules/libphp7.so

<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>

Finally, check DirectoryIndex includes index.php
DirectoryIndex index.php index.html

The php.ini and php-fpm.ini file can be found in:
/home/linuxbrew/.linuxbrew/etc/php/7.3/

php@7.3 is keg-only, which means it was not symlinked into /home/linuxbrew/.linuxbrew,
because this is an alternate version of another formula.

If you need to have php@7.3 first in your PATH run:
echo 'export PATH="/home/linuxbrew/.linuxbrew/opt/php@7.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/home/linuxbrew/.linuxbrew/opt/php@7.3/sbin:$PATH"' >> ~/.zshrc

For compilers to find php@7.3 you may need to set:
export LDFLAGS="-L/home/linuxbrew/.linuxbrew/opt/php@7.3/lib"
export CPPFLAGS="-I/home/linuxbrew/.linuxbrew/opt/php@7.3/include"


Warning: php@7.3 provides a launchd plist which can only be used on macOS!
You can manually execute the service instead with:
php-fpm
==> Analytics
install: 75 (30 days), 96 (90 days), 96 (365 days)
install-on-request: 75 (30 days), 96 (90 days), 96 (365 days)
build-error: 0 (30 days)

Я действительно не знаю, как я могу предотвратить эту ошибку.

1 Ответ

2 голосов
/ 11 января 2020

Я считаю, что ext-curl является частью основного пакета Arch PHP, поэтому вы не можете найти его в pacman. Я не думаю , что он включен по умолчанию, и вам нужно отредактировать соответствующий файл /etc/php/php.ini. Вы, вероятно, хотите раскомментировать ;extension=curl в php -fpm.ini. Возможно, вам придется установить extension_dir, но это вряд ли для Arch / pacman.

Я только что заметил, что вы используете brew для linux ... почему? Это даже поддерживается Arch? Вы можете проверить местоположение /home/linuxbrew/.linuxbrew/etc/php/7.3/ и узнать, почему curl не включен, или просто использовать pacman. Обратите внимание, что для времени выполнения cli & fpm существует отдельный INI-файл.

...