У нас есть собственный SOM, основанный на Beaglebone. Он имеет Apache2 и PHP 7, работающие в ветке Pyro проекта Poky.
PHP 7 прекрасно работает в Apache, однако я пытаюсь заставить PHP composer работать на плате с небольшим успехом.
Следуя Инструкция по установке композитора, это терпит неудачу с сообщением об ошибке, что у меня не включен ssl в php:
root@board-1:~# php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"PHP Warning: copy(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1
PHP Warning: copy(): Unable to find the wrapper "https" - did you forget to enable it when you configured PHP? in Command line code on line 1
PHP Warning: copy(https://getcomposer.org/installer): failed to open stream: No such file or directory in Command line code on line 1
Это мой php_7.%. Bbappend:
PACKAGECONFIG_append_pn-php = " apache2 "
EXTRA_OECONF = "--enable-mbstring \
--enable-wddx \
--enable-fpm \
--enable-zip \
--with-libdir=${baselib} \
--with-gettext=${STAGING_LIBDIR}/.. \
--with-zlib=${STAGING_LIBDIR}/.. \
--with-openssl=${STAGING_DIR_TARGET}${exec_prefix} \
--with-iconv=${STAGING_LIBDIR}/.. \
--with-mcrypt=${STAGING_DIR_TARGET}${exec_prefix} \
--with-bz2=${STAGING_DIR_TARGET}${exec_prefix} \
--with-config-file-path=${sysconfdir}/php/apache2-php${PHP_MAJOR_VERSION} \
${@base_conditional('SITEINFO_ENDIANNESS', 'le', 'ac_cv_c_bigendian_php=no', 'ac_cv_c_bigendian_php=yes', d)} \
${@bb.utils.contains('PACKAGECONFIG', 'pam', '', 'ac_cv_lib_pam_pam_start=no', d)} \
${COMMON_EXTRA_OECONF} \
"
Как видите, я компилирую с SSL. Есть что-то, чего я здесь не хватает? Я не могу заставить композитора собираться на этом устройстве ARM (TI AM335x) и не могу найти инструкции, как это сделать.
После долгой борьбы ответ не слишком сложный. Но это отличается от официальных инструкций композитора.
Во-первых, я просто включил файл composer.phar (с их сайта) в мою сборку.
Затем я изменил свой composer.json, чтобы он выглядел следующим образом (я удалил некоторую информацию, но посмотрите в разделе «config»).
{
"name" : "com.something.whatever",
"type" : "project",
"authors" : [{
...
}
],
"config" : {
"preferred-install" : "dist",
"disable-tls" : true,
"secure-http" : false
},
"autoload" : {
"psr-4" : {
"something\\" : "classes/something"}
}
}
В этом случае composer не обновляется через ssl. Поэтому, в зависимости от вашей модели угрозы, это может быть проблемой. Для нашего проекта это не имеет значения.
Других решений пока нет …