- PHP Установка из исходного кода (компиляция в Linux) с указанием модулей и настроек — Подробная инструкция (Ubuntu/Debian)
- Primary tabs
- Forums:
- Выбираем версию PHP и качаем архив с исходным кодом из терминала (комадной строки)
- Компилируем исходный код с опциями и включением модулей
- Русские Блоги
- Компиляция и установка PHP
- Интеллектуальная рекомендация
- Используйте Maven для создания собственного архетипа скелета проекта (4)
- Станция интерпретации больших данных B пользуется популярностью среди гигантов района «призрачные животные» Цай Сюкуня.
- Вопрос A: Алгоритм 7-15: алгоритм кратчайшего пути Дейкстры
- Учебный дневник — перелистывание страниц
- Нулевое основание для отдыха-клиента
- Вам также может понравиться
- Подробно объясните, как новички используют sqlmap для выполнения инъекционных атак на базы данных mysql.
- Vue заметки сортируют, пусть вам начать с Vue.js:. 04_3 Сетевое приложение: AXIOS плюс Вью
- Шаблон алгоритма конной повозки
- 35 Line Code, чтобы получить метод исследования событий (ON)
- Образ докера: gitlab
- Как скомпилировать php linux
- User Contributed Notes 5 notes
- Скомпилировать PHP в Linux или использовать apt-get / yum?
- 5 ответов
PHP Установка из исходного кода (компиляция в Linux) с указанием модулей и настроек — Подробная инструкция (Ubuntu/Debian)
Primary tabs
Forums:
Выбираем версию PHP и качаем архив с исходным кодом из терминала (комадной строки)
- Выбираем версию: Выберем нужную нам версию (и ссылку на неё) на странице: http://php.net/releases/, — здесь есть все версии даже старые, последние же версии (в т.ч. стабильные) можно выборать тут: http://php.net/downloads.php
Далее в примере я буду качать версию 5.5.38, причем в формате архива tar.bz2
В моё случае это будет ссылка (в моём случае):
http://php.net/get/php-5.5.38.tar.bz2/from/a/mirror
— но обратите, внимание что нам нужен хвост URL не from/a/mirror (как на страницах сайта, о которых мы говорили выше) — а from/this/mirror, то есть приведите ссылку к виду:
- Перейдём во временную папку:
- Выкачаем архив по ссылке с которой мы определилсь выше, командой:
wget -O php-5.5.38.tar.bz2 http://php.net/get/php-5.5.38.tar.bz2/from/this/mirror
— где php-5.5.38.tar.bz2 имя файла, в который мы сохраним архив из Интернета. - Распакуем архив (убедитесь, что правильно указываете имя файла — надо то, что скачалось 😉
- И перейдём в нужную нам папку с исходным кодом php (ту что сказал архиватор) — в моё случае:
Теперь исходный код у нас есть, дальше его нужно скомпилировать.
Компилируем исходный код с опциями и включением модулей
Компилируем php тремя коммандами:
Сначала запускаем кофигурацию с указанием нужных опций:
— при установке возможны ошибки, обычно для их устранения требуется что-то дополнительно установить.
Далее в той же папке выполняем:
ждем, пока команды выполнит инструкции исходного кода php.
Источник
Русские Блоги
Компиляция и установка PHP
Это старая тема, иногда я много ищу в Интернете, всевозможные беспорядочные команды, здесь только вводит компиляцию и установку php7, минимизирует команды, глупые операции.
Если вы покупаете совершенно новый сервер Linux (здесь в качестве примера используется CentOS), сначала вам нужно сделать следующее:
Затем вам нужно установить среду компиляции
У PHP есть две библиотеки, которые необходимо установить: zlib , xml2
В нормальных условиях вам необходимо использовать библиотеку php GD, на этот раз вам нужно скачать: libpng , libjpeg , freetype
Кроме того, если вам нужно использовать такие фреймворки, как Laravel и т. Д., Вам также понадобятся библиотеки, связанные с шифрованием: libmcrypt , openssl
Наконец установите php
Среди них библиотеки, такие как —with-iconv, —with-openssl, —with-curl, установлены по умолчанию, а php-fpm и apache уже интегрированы в более поздние версии, и нет необходимости повторно указывать. В приведенном выше процессе предварительной обработки каждая строка представляет отдельный тип, обратите внимание на расположение указанного файла конфигурации.
- Если вы не можете найти файл заголовка openssl, вам необходимо установить его yum install openssl-dev , То же самое относится и к другим библиотекам.Проблема обычно возникает после того, как вы подтвердили, что установили, но вам будет предложено найти его во время предварительной обработки.
- Если при компиляции make произошла ошибка или необходимо добавить другие библиотеки после успешной компиляции make, вам необходимо сначала make clean Разберитесь с этим, а затем скомпилируйте с помощью make, в противном случае вновь добавленную библиотеку нельзя будет скомпилировать.
Интеллектуальная рекомендация
Используйте Maven для создания собственного архетипа скелета проекта (4)
Один, базовое введение в Maven Во-вторых, скачайте и настройте Maven Три, настроить домашнее зеркало на Али В-четвертых, создайте содержимое скелета архетипа В-пятых, создайте проект через архетип 6. .
Станция интерпретации больших данных B пользуется популярностью среди гигантов района «призрачные животные» Цай Сюкуня.
Автор | Сюй Линь Ответственный редактор | Ху Вэйвэй Предисловие Недавно Цай Сюкунь отправил письмо юриста на станцию B. Содержание письма юриста показало, что «на станции B имеется большое кол.
Вопрос A: Алгоритм 7-15: алгоритм кратчайшего пути Дейкстры
Название Описание Во взвешенном ориентированном графе G для исходной точки v задача о кратчайшем пути от v до оставшихся вершин в G называется задачей кратчайшего пути с одной исходной точкой. Среди ш.
Учебный дневник — перелистывание страниц
Используйте плагин Layui.
Нулевое основание для отдыха-клиента
Предисловие: статья, обобщенная, когда я только что связался с тестом API, в дополнение к остальному клиенту этот инструмент сам, некоторые из мелких пониманий API, я надеюсь помочь тому же белую белу.
Вам также может понравиться
Подробно объясните, как новички используют sqlmap для выполнения инъекционных атак на базы данных mysql.
Шаг 1. Откройте для себя инъекцию Со мной все было нормально, когда я был свободен, я случайно нажал на чужой блог и обнаружил, что ссылка заканчивается на id, поэтому я проверил его вручную. Результа.
Vue заметки сортируют, пусть вам начать с Vue.js:. 04_3 Сетевое приложение: AXIOS плюс Вью
В предыдущем разделе мы ввели основное использование AXIOS, по сравнению с нативным Ajax, который при условии, что способ является более простым и, а сетевые данные теперь в состоянии получить его ров.
Шаблон алгоритма конной повозки
Блог гангстеров Тележки, запряженные лошадьми, используются для решения проблемы самой длинной подстроки палиндрома. Основное внимание уделяется подстрокам, а не подпоследовательностям. Если вы хотите.
35 Line Code, чтобы получить метод исследования событий (ON)
Об авторе: Чжу Сяою,Личный публичный номер: языковой класс большой кошки Эта проблема научит вас этой большой классе Cat.Как написать наиболее эффективное метод исследования событий с 35 Line R Code C.
Образ докера: gitlab
GitLab Docker images Both GitLab CE and EE are in Docker Hub: GitLab CE Docker image GitLab EE Docker image The GitLab Docker images are monolithic images of GitLab running all the necessary services .
Источник
Как скомпилировать php linux
Иногда использование инсталлятора pecl не подходит. Это может быть связано с тем, что вы находитесь за файерволом или из-за того, что модуль, который вы хотите установить, недоступен в PECL-совместимом пакете (к примеру, модули из git, у которых ещё нет релизов). Если вам необходимо собрать такой модуль, вы можете использовать низкоуровневые утилиты для выполнения сборки вручную.
Команда phpize используется для подготовки окружения PHP-модуля. В следующем примере директория, где находятся исходные коды модуля, называется extname :
В случае успешной установки будет создан файл extname.so и помещён в PHP директорию модулей. Вам будет необходимо добавить строку extension=extname.so в php.ini перед использованием этого модуля.
Если в системе нет phpize , но существует возможность установки заранее скомпилированных пакетов (типа RPM), убедитесь, что установлена соответствующая версия пакета PHP для разработчиков, так как они часто содержат команду phpize с подходящими файлами заголовков для сборки PHP и его модулей.
Для дополнительной информации используйте команду phpize —help.
User Contributed Notes 5 notes
If you have multiple PHP versions installed, you may be able to specify for which installation you’d like to build by using the —with-php-config option during configuration.
—with-php-config=[Insert path to proper php-config here]
For example (my case):
./configure —with-php-config=/usr/local/php5/bin/php-config5
When compiling an extension for a stack which is 64 bits (for example) and your compiler is configured to compile in 32 bits, you can manually compile your extensions using C flags before your configure.
Example: my system compiler is 32 bits and my stack is 64 bits. To compile my xdebug:
# phpize
# CFLAGS=-m64 CPPFLAGS=-m64 CCASFLAGS=-m64 ./configure —enable-xdebug
# gmake
# file modules/xdebug.so
modules/xdebug.so: ELF 64-bit LSB dynamic lib AMD64 Version 1, dynamically linked, not stripped, no debugging information available
When you have multiple installations of PHP, running phpize from a specific installation will not force the module to be compiled with that installation’s include files.
In my case, I had a standard PHP distribution installed, and am evaluating Zend Core / Zend Platform, which installed it’s own Apache & PHP in a /usr/local/Zend/.. install path. It was missing the json.so module, so I had to compile my own.
Running Zend Core’s phpize, the output indicates that configuration for that module will occur. But when running ./configure, the standard installation’s include files are used. The result json.so being compiled against the wrong PHP would not load when Zend Core’s php initializes.
The only way I could see to correct the situation was to temporarily change the standard PHP include path to point to the Zend Core’s include files. In my case, I made a backup copy of /usr/include/php5 and did a «ln -s /usr/local/Zend/Core/include/php/ /usr/include/php5».
If you failed to run phpize command, then you should install php-devel package. Command line to install the php-devel package using yum is: yum install php-devel.
If you failed to compile the PECL extension, then you should install gcc package. Command line to install the gcc package using yum is: yum install gcc.
Источник
Скомпилировать PHP в Linux или использовать apt-get / yum?
Я много лет компилировал PHP с нужными мне вариантами конфигурации. Я компилирую расширения, которые использую, из исходников. Есть ли в этом преимущество перед установкой из диспетчера пакетов, такого как apt-get или yum. Я предполагал, что это также даст мне более компактный двоичный файл. Я заметил, что это модули PHP в репозиториях, такие как «php53-gd». Что делать, если не было пакета для чего-то, что я хотел, например cURL для PHP?
Я понимаю недостатки компиляции, такие как необходимость загрузки / установки зависимостей на основе моих параметров конфигурации. Меня это не особо беспокоит.
Таким образом, вопрос заключается в том,
Скомпилировать PHP в Linux или просто использовать apt-get / yum? Могу ли я получить все необходимое из репозиториев? Кто-нибудь все еще компилирует его из исходников?
Любое понимание приветствуется! Спасибо.
5 ответов
Я каждый раз компилирую из исходников. Устранить упомянутые проблемы, связанные с компиляцией вручную, несложно. Например, мои настройки ./configure сохраняются в файле, который контролируется версиями, поэтому, когда новая версия PHP станет стабильной и я готов переключиться, я загружаю и извлекаю файл, а затем запускаю эту команду:
Не так уж и сложно. И поскольку он находится в системе контроля версий, я могу добавить примечания о том, почему модуль был добавлен или удален.
Еще одно преимущество ручной компиляции заключается в том, что она позволяет мне минимизировать объем PHP-кода. Я передаю флаг —disable-all , затем добавляю нужные мне модули. Однако у этого минималистского подхода есть обратная сторона: недавно мне потребовалось установить Magento, поэтому мне пришлось перекомпилировать с флагами —enable-hash и —with-mcyrpt . Несмотря на то, что мне нужно было добавить новые флаги, это было несложно добавить в файл конфигурации и перекомпилировать.
Я считаю, что основная причина компиляции — наличие последней бинарной версии (стабильной или ночной). менеджеры пакетов (большинство дисторторов) часто в этом отношении раздражающе медленны.
Другая причина заключается в том, что очень распространенная проблема заключается в том, что производственные системы не обновляются оптом с помощью диспетчеров пакетов. Даже если это может быть легко. Поскольку менеджеры пакетов создают цепочки зависимостей, и вы можете не захотеть обновлять эти элементы. Так что, чтобы просто выбрать один элемент, можно использовать компиляцию. Все остальное остается как есть. Вы, конечно же, всегда должны изучать проблемы обновления и убедиться, что все остальное не даст сбой.
Лично это вопрос мнения. Если вы торопитесь, получите его, если у вас есть время для изучения и, возможно, потребуется переустановить 20 раз . скомпилируйте его.
Существует множество руководств по компиляции PHP. В нем есть масса флагов для настройки, особенно для GD и других библиотек. Лично, если это для обучения и развития, просто получите LAMP или используйте apt-get . особенно если вам нужно использовать Apache
Я скомпилировал php только для определенных нужд, например:
- очень мало места на жестком диске, поэтому требуется минималистичная версия php
- нужно всего несколько конкретных модулей или расширений
- необходимо для конкретного приложения
- необходимо для оптимизации производительности: при компиляции на машине, где он используется, это позволяет некоторые улучшения производительности, при использовании параметров компиляции для получения реальной настроенной версии для вашей системы,
- требовалось несколько разных версий php на одном компьютере.
- У меня был конкретный дистрибутив nux, например, busybox, поэтому не было других вариантов, кроме компиляции.
Но для общего использования, например в 80% случаев не стоит тратить время на компиляцию и лучше использовать репозиторийную версию. Но я многому научился, компилируя.
Компиляция из исходников имеет несколько причуд:
- Существуют сотни параметров конфигурации и флагов. И вы можете не знать оптимальных, которые нужно использовать.
- Если вы полагаетесь на PHP от apt-get, вы можете быть уверены, что получите последние исправления и обновления безопасности, если настроите автоматическое обновление на своем сервере.
- Конфигурация php.ini сильно различается. Иногда ваша ОС может устанавливать для вас некоторые настройки по умолчанию, которые могут лучше работать с остальной частью системы.
- установка расширений, таких как xdebug или других пакетов, намного проще с помощью apt.
Однако стоит скомпилировать php с нуля, если вы хотите научиться. Кроме того, если вы не используете некоторые его части, вы всегда можете отключить их в конфигурации — но опять же, это может не иметь большого значения для производительности.
Источник