Как я могу заставить Apache использовать PHP 7.0 (а не 7.1)?

Убедитесь, что ваш брандмауэр разрешает исходящее соединение.

Использование команд:

sudo ntpdate ntp.ubuntu.com

и:

sudo ntpdate-debian

Я получал аналогичную ошибку "ntpdate [14593]: сервер, подходящий для синхронизации, не обнаружил" перед изменением брандмауэра маршрутизатора, чтобы разрешить порт 123, протокол UDP, исходящий.

6
задан 8 August 2017 в 15:46

6 ответов

Я разберу свой ответ на две части.

Описание

Отказ от ответственности: Большинство моих описаний в основном являются предположениями, поскольку я не могу действительно знать, что это проблема, и вторая часть - это ответ на вашу проблему.

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

Из описанной проблемы кажется, что вы установили сторонний PPA, который установил PHP 7.1 в вашей системе. Наиболее вероятным PPA является PPA Ondrej.

Когда вы впервые установили PHP, вы установили следующий метод:

sudo apt install php

Пакет php является только мета-пакетом и делает не содержат требуемые файлы. Это зависит от последней версии доступного пакета PHP (по умолчанию 7.0). Поэтому, когда вы устанавливаете его, пакет php7.0 устанавливается вместе с зависимостями php7.0 (и libapache2-mod-php7.0 , если у вас есть apache2), и все эти зависимости помечены в диспетчере пакетов как «автоматически установлены». [ ! d8] $ apt show php Package: php Version: 1:7.0+35ubuntu6 Priority: optional Section: php Source: php-defaults (35ubuntu6) Origin: Ubuntu Maintainer: Ubuntu Developers Original-Maintainer: Debian PHP Maintainers Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 11.3 kB Depends: php7.0 Supported: 5y Download-Size: 2,832 B APT-Manual-Installed: yes APT-Sources: http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages Description: server-side, HTML-embedded scripting language (default) PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Debian's default PHP version (currently 7.0).

Я выделил части результата команды, что объясняет, что я только что упомянул.

PHP PPP Ondrej предлагает несколько версий PHP, которые могут быть установлены рядом друг с другом. Поэтому, когда вы добавили его в свою систему, apt нашли более новую версию PHP, чтобы заменить php7.0 * на php7.1 вместе с любыми связанными пакетами, которые были автоматически установлены.

Ответить

Есть два способа исправить ваши проблемы.

Полностью удалить PPA сторонней стороны и вернуться к пакетам PHP по умолчанию
sudo apt install ppa-purge
sudo ppa-purge ppa:ondrej/php
. PPA Ondrej предлагает несколько версий PHP, поэтому вы можете установить больше чем одна версия рядом друг с другом. Но вы включили бы только модуль php7.0 Apache.
sudo apt install php7.0 libapache2-mod-php7.0
sudo a2dismod php7.1
sudo a2enmod php7.0
sudo apache2ctl restart
Установка их предыдущим способом установила бы пакет php7.0 как «установленный вручную» в apt, поэтому они не будут автоматически удалены без вашего удаления. Не забудьте также установить любые PHP-модули, которые вам нужны для php7.0 (например sudo apt install php7.0-mysql)

* php7.0, возможно, были сохранены в вашей системе, если вы вручную установили модуль специально для php7.0 (например, php7.0-mysql).

3
ответ дан 22 May 2018 в 19:41
  • 1
    Я пошел на решение 1 (полностью удалить сторонний PPA). Затем я очистил и переустановил PHP 7.0 из официальных источников. Вещи теперь к нормальному. Спасибо много! – Free Radical 10 August 2017 в 17:45
  • 2
    libapache2-mod-php7.0 отсутствовал после компиляции Apache из источника. Запуск apt-get install libapache2-mod-php7.0 решил это для меня. – Jeevan Takhar 25 January 2018 в 20:03

Я разберу свой ответ на две части.

Описание

Отказ от ответственности: Большинство моих описаний в основном являются предположениями, поскольку я не могу действительно знать, что это проблема, и вторая часть - это ответ на вашу проблему.

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

Из описанной проблемы кажется, что вы установили сторонний PPA, который установил PHP 7.1 в вашей системе. Наиболее вероятным PPA является PPA Ondrej.

Когда вы впервые установили PHP, вы установили следующий метод:

sudo apt install php

Пакет php является только мета-пакетом и делает не содержат требуемые файлы. Это зависит от последней версии доступного пакета PHP (по умолчанию 7.0). Поэтому, когда вы устанавливаете его, пакет php7.0 устанавливается вместе с зависимостями php7.0 (и libapache2-mod-php7.0 , если у вас есть apache2), и все эти зависимости помечены в диспетчере пакетов как «автоматически установлены». [ ! d8] $ apt show php Package: php Version: 1:7.0+35ubuntu6 Priority: optional Section: php Source: php-defaults (35ubuntu6) Origin: Ubuntu Maintainer: Ubuntu Developers Original-Maintainer: Debian PHP Maintainers Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 11.3 kB Depends: php7.0 Supported: 5y Download-Size: 2,832 B APT-Manual-Installed: yes APT-Sources: http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages Description: server-side, HTML-embedded scripting language (default) PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Debian's default PHP version (currently 7.0).

Я выделил части результата команды, что объясняет, что я только что упомянул.

PHP PPP Ondrej предлагает несколько версий PHP, которые могут быть установлены рядом друг с другом. Поэтому, когда вы добавили его в свою систему, apt нашли более новую версию PHP, чтобы заменить php7.0 * на php7.1 вместе с любыми связанными пакетами, которые были автоматически установлены.

Ответить

Есть два способа исправить ваши проблемы.

Полностью удалить PPA сторонней стороны и вернуться к пакетам PHP по умолчанию sudo apt install ppa-purge sudo ppa-purge ppa:ondrej/php . PPA Ondrej предлагает несколько версий PHP, поэтому вы можете установить больше чем одна версия рядом друг с другом. Но вы включили бы только модуль php7.0 Apache. sudo apt install php7.0 libapache2-mod-php7.0 sudo a2dismod php7.1 sudo a2enmod php7.0 sudo apache2ctl restart Установка их предыдущим способом установила бы пакет php7.0 как «установленный вручную» в apt, поэтому они не будут автоматически удалены без вашего удаления. Не забудьте также установить любые PHP-модули, которые вам нужны для php7.0 (например sudo apt install php7.0-mysql)

* php7.0, возможно, были сохранены в вашей системе, если вы вручную установили модуль специально для php7.0 (например, php7.0-mysql).

3
ответ дан 18 July 2018 в 08:54

Я разберу свой ответ на две части.

Описание

Отказ от ответственности: Большинство моих описаний в основном являются предположениями, поскольку я не могу действительно знать, что это проблема, и вторая часть - это ответ на вашу проблему.

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

Из описанной проблемы кажется, что вы установили сторонний PPA, который установил PHP 7.1 в вашей системе. Наиболее вероятным PPA является PPA Ondrej.

Когда вы впервые установили PHP, вы установили следующий метод:

sudo apt install php

Пакет php является только мета-пакетом и делает не содержат требуемые файлы. Это зависит от последней версии доступного пакета PHP (по умолчанию 7.0). Поэтому, когда вы устанавливаете его, пакет php7.0 устанавливается вместе с зависимостями php7.0 (и libapache2-mod-php7.0 , если у вас есть apache2), и все эти зависимости помечены в диспетчере пакетов как «автоматически установлены». [ ! d8] $ apt show php Package: php Version: 1:7.0+35ubuntu6 Priority: optional Section: php Source: php-defaults (35ubuntu6) Origin: Ubuntu Maintainer: Ubuntu Developers Original-Maintainer: Debian PHP Maintainers Bugs: https://bugs.launchpad.net/ubuntu/+filebug Installed-Size: 11.3 kB Depends: php7.0 Supported: 5y Download-Size: 2,832 B APT-Manual-Installed: yes APT-Sources: http://archive.ubuntu.com/ubuntu xenial/main amd64 Packages Description: server-side, HTML-embedded scripting language (default) PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Debian's default PHP version (currently 7.0).

Я выделил части результата команды, что объясняет, что я только что упомянул.

PHP PPP Ondrej предлагает несколько версий PHP, которые могут быть установлены рядом друг с другом. Поэтому, когда вы добавили его в свою систему, apt нашли более новую версию PHP, чтобы заменить php7.0 * на php7.1 вместе с любыми связанными пакетами, которые были автоматически установлены.

Ответить

Есть два способа исправить ваши проблемы.

Полностью удалить PPA сторонней стороны и вернуться к пакетам PHP по умолчанию sudo apt install ppa-purge sudo ppa-purge ppa:ondrej/php . PPA Ondrej предлагает несколько версий PHP, поэтому вы можете установить больше чем одна версия рядом друг с другом. Но вы включили бы только модуль php7.0 Apache. sudo apt install php7.0 libapache2-mod-php7.0 sudo a2dismod php7.1 sudo a2enmod php7.0 sudo apache2ctl restart Установка их предыдущим способом установила бы пакет php7.0 как «установленный вручную» в apt, поэтому они не будут автоматически удалены без вашего удаления. Не забудьте также установить любые PHP-модули, которые вам нужны для php7.0 (например sudo apt install php7.0-mysql)

* php7.0, возможно, были сохранены в вашей системе, если вы вручную установили модуль специально для php7.0 (например, php7.0-mysql).

3
ответ дан 24 July 2018 в 19:11

Путем поиска пакетов.ubuntu.com для файла libphp7.0, я нашел два пакета, содержащие этот файл. Установлены ли они или оба? libapache2-mod-php7.0 и / или libphp7.0-embed?

Переустановив libapache2-mod-php7.0 с помощью

sudo apt install --reinstall libapache2-mod-php7.0

, затем посмотрите, что нужно прочитать в пакете. Перечислите содержимое с помощью

dpkg -L libapache2-mod-php7.0

Результаты поиска:

 » Ubuntu » Packages » Package Contents Search Results

    Search for libphp7.0.so within filenames
    Search for paths ending with libphp7.0.so 

Search in other suite: [trusty] [xenial] [yakkety] [zesty] [artful]

Limit search to a specific architecture: [amd64] [arm64] [armhf] [i386] [powerpc] [ppc64el] [s390x]

You have searched for files named libphp7.0.so in suite yakkety, all sections, and all architectures. Found 2 results.
File    Packages
/usr/lib/apache2/modules/libphp7.0.so   libapache2-mod-php7.0
/usr/lib/libphp7.0.so   libphp7.0-embed
1
ответ дан 22 May 2018 в 19:41

Путем поиска пакетов.ubuntu.com для файла libphp7.0, я нашел два пакета, содержащие этот файл. Установлены ли они или оба? libapache2-mod-php7.0 и / или libphp7.0-embed?

Переустановив libapache2-mod-php7.0 с помощью

sudo apt install --reinstall libapache2-mod-php7.0

, затем посмотрите, что нужно прочитать в пакете. Перечислите содержимое с помощью

dpkg -L libapache2-mod-php7.0

Результаты поиска:

» Ubuntu » Packages » Package Contents Search Results Search for libphp7.0.so within filenames Search for paths ending with libphp7.0.so Search in other suite: [trusty] [xenial] [yakkety] [zesty] [artful] Limit search to a specific architecture: [amd64] [arm64] [armhf] [i386] [powerpc] [ppc64el] [s390x] You have searched for files named libphp7.0.so in suite yakkety, all sections, and all architectures. Found 2 results. File Packages /usr/lib/apache2/modules/libphp7.0.so libapache2-mod-php7.0 /usr/lib/libphp7.0.so libphp7.0-embed
1
ответ дан 18 July 2018 в 08:54

Путем поиска пакетов.ubuntu.com для файла libphp7.0, я нашел два пакета, содержащие этот файл. Установлены ли они или оба? libapache2-mod-php7.0 и / или libphp7.0-embed?

Переустановив libapache2-mod-php7.0 с помощью

sudo apt install --reinstall libapache2-mod-php7.0

, затем посмотрите, что нужно прочитать в пакете. Перечислите содержимое с помощью

dpkg -L libapache2-mod-php7.0

Результаты поиска:

» Ubuntu » Packages » Package Contents Search Results Search for libphp7.0.so within filenames Search for paths ending with libphp7.0.so Search in other suite: [trusty] [xenial] [yakkety] [zesty] [artful] Limit search to a specific architecture: [amd64] [arm64] [armhf] [i386] [powerpc] [ppc64el] [s390x] You have searched for files named libphp7.0.so in suite yakkety, all sections, and all architectures. Found 2 results. File Packages /usr/lib/apache2/modules/libphp7.0.so libapache2-mod-php7.0 /usr/lib/libphp7.0.so libphp7.0-embed
1
ответ дан 24 July 2018 в 19:11

Другие вопросы по тегам:

Похожие вопросы: