Сделайте Ubuntu признаком того, что установлена ​​пользовательская встроенная версия PHP

Я пытаюсь установить PHP из исходного кода на Ubuntu 12.04 VPS.

Я устанавливаю PHP следующим образом:

  1. Загрузите последнюю версию с веб-сайта php.net.
  2. Настройте его, используя приведенные ниже параметры.
  3. При необходимости установите любые зависимости. (Libxxxxx-DEV)
  4. Затем сделайте make
  5. Затем установите make
  6. Переместите файл php.ini и файлы конфигурации fpm в нужном месте

Я использую эти параметры в команде configure:

--enable-intl --with-openssl --without-pear --with-gd --with-jpeg-dir=/usr --with-png-dir=/usr --with-freetype-dir=/usr --with-freetype --enable-exif --enable-zip --with-zlib --with-zlib-dir=/usr --with-mcrypt=/usr --with-pdo-sqlite --enable-soap --enable-xmlreader --with-xsl --enable-ftp --with-curl=/usr --with-tidy --with-xmlrpc --enable-sysvsem --enable-sysvshm --enable-shmop --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --enable-pcntl --with-readline --enable-mbstring --with-curl --with-pgsql --with-pdo-pgsql --with-gettext --enable-sockets --with-bz2 --enable-bcmath --enable-calendar --with-libdir=lib --enable-maintainer-zts --with-gmp --enable-fpm 

Теперь все идет хорошо и хорошо. Версия работает так, как ожидалось, и во время установки у меня не было проблем. Теперь забавный материал приходит. Всякий раз, когда я хочу установить что-то вроде mcrypt (например), я бы обычно apt-get install php5-mcrypt но когда я это сделаю, и взгляните на зависимости, которые я вижу, что PHP5 по-прежнему отображается как один и будет установлен после того, как я Нажмите y (переписывая мою собственную версию).

Теперь я имею в виду, как я могу сообщить Ubuntu, что у меня уже установлен PHP5, чтобы он больше не пытался устанавливать PHP5 как зависимость. Мне нужно что-то изменить в процессе настройки? Должен ли я сначала установить PHP5 с помощью метода apt-get , удалить его вручную и установить мою собственную версию PHP после.

Стоит отметить, что мне нужна эта настраиваемая PHP-сборка, чтобы заставить Pthreads работать, поскольку нет репо, которое предлагает версию PHP ZTS (все же, пожалуйста, сделайте кого-нибудь?).

2 Solutions collect form web for “Сделайте Ubuntu признаком того, что установлена ​​пользовательская встроенная версия PHP”

Здесь есть несколько альтернатив:

  1. Добавьте --prefix=/usr/local в скрипт configure (при условии, что это то, что использует PHP) или иным образом убедитесь, что ваш PHP установлен в /usr/local . Это означало бы, что у вас будет собственная сборка PHP, установленная рядом с системой. Так как, например, /usr/local/bin имеет приоритет над /usr/bin в PATH , ваша собственная сборка будет использоваться во многих случаях (особенно при запуске из командной строки). По умолчанию это не должно мешать системным пакетам, которые могут быть созданы против конкретной версии PHP, и быть разбитыми, если они попытаются использовать библиотеки, предоставленные вашей собственной сборкой. При таком подходе, хотя вам нужно обратить внимание на то, какие программы используют библиотеки, однако это должно быть возможным без проблем.

  2. Найдите пакетную версию PHP, которая ближе к вашим потребностям. Если это более новая версия, есть много Ubuntu ppas, которые предлагают это (желательно сначала посмотреть в официальных репозиториях «backport», так как каждый может создать возможно сломанный ppa). Обратите внимание, что это также может привести к конфликтам, которые заставляют вас устанавливать другие пакеты из ppa (или оставить вас привинченными, если они недоступны).

  3. Загрузите исходный пакет и перекомпилируйте его. Это может быть то, что вам нужно сделать, если вы хотите настраивать параметры сборки. Для этого есть много учебников по всему Интернету, но в основном вы должны добавить необходимые строки deb-src в файл sources.list (или sources.list.d ) и загрузить с помощью apt-get source (или просто загрузить необходимые файлы напрямую от packages.ubuntu.com ). Извлеките с помощью архивов dpkg-source Затем вы можете настроить параметры сборки в каталоге пакета debian , создать с помощью debuild или dpkg-buildpackage и установить с помощью dpkg -i . Вы даже можете сделать это с пакетом из ppa, если вам также нужна более новая версия (хотя применяются те же оговорки).

  4. Наконец, самым сложным вариантом является создание собственного пакета. Начиная с одного из вышеуказанных исходных пакетов и использования другой версии источника восходящего потока, чем в противном случае, это хорошее место для запуска. Тем не менее, здесь полностью зависит от вас, чтобы пакет прекрасно сочетался с остальной частью вашей системы.

Итак, вместо метода, который вы упомянули, сначала попробуйте следующее:

Во-первых, убедитесь, что у вас есть записи deb-src в файле sources.list и вы запустили apt-get update . Это упростит шаги ниже. Теперь установите строительные инструменты:

 sudo apt-get install devscripts 

установите зависимости сборки:

 sudo apt-get build-dep php5 

Получите источники php5:

 apt-get source php5 cd php5* 

Вы заметите, что помимо загрузки источников, он также применял исправления. Теперь найдите скрипт конфигурации, который находится в debian/rules . Есть запись под названием COMMON_CONFIG , отредактируйте ее как хотите:

 editor debian/rules ## add, remove, change the configuration and save the file. ## You will find that most of them are enabled by default, ## or already included. 

Я бы рекомендовал использовать версию PHP с помощью dch -i . Теперь вы готовы строить свои вещи:

 debuild -us 

Это создаст файлы, готовые для установки в родительский каталог. Теперь вам действительно нужно пересмотреть, почему вам нужно строить материал из источника. Большинство проблем с безопасностью устраняются сразу же, когда доступно исправление, и из-за характера PHP (что-то используется в производстве) рекомендуется использовать официальные пакеты.

  • Sendmail SMTP не работает на сервере apache2
  • Обновление sources.list.d
  • Добавление ярлыка в службу start-stop-daemon в списке процессов
  • Каковы последствия установки имени хоста?
  • Ошибки двойной загрузки Win10 / Ubuntu16.04
  • perf не работает над действительно большим процессом
  • Настройка файловых ассоциаций в Ubuntu с вином
  • Существует ли такое программное обеспечение, как Nokia Ovi Suite для синхронизации телефонов Nokia Symbian с GNU / Linux?
  • Удаление неиспользуемых приложений / программ
  • Автоматическое обновление hwclock при загрузке
  • Не работает системный вызов «открытый» режим
  • Interesting Posts

    Откройте программу (VLC) и переместите ее на передний план

    screen: автоматическое создание или повторное подключение сеансов в разных конфигурациях

    Перечисление предыдущих логинов через sftp

    Как заменить строку в файле другим файлом?

    Защищенные паролем zip-архивы открываются без пароля

    Сортировка строки datetime в 12-часовом формате

    Почему мои две виртуальные машины получают один и тот же IP-адрес?

    Невозможно изменить или удалить пользователя SELinux

    bash, список всех файлов по определенному размеру

    как сделать непривилегированный скрипт сбросить даже привилегии, которые он имеет в файле

    Удалены файлы Sys (rm -rf / *)

    Является ли `ls -l` сортировка файлов неинтуитивно?

    Параметры ядра «console» и «earlycon» относятся к старому оборудованию?

    Запретить пользователю читать другие домашние каталоги и связать его с / var / www / folder

    Как отключить систему после выхода определенного процесса

    Linux и Unix - лучшая ОС в мире.