Рубрики
Uncategorized

Переключение PHP с несколькими версиями Ubuntu

Автор оригинала: David Wong.

В последнее время я хочу узнать о Свуле. Хотя машина оснащена php 7.0, учитывая, что некоторые сведения о swool зависят от более высоких версий (таких как swooletw), я обновил php7.2 на машине. Вот некоторые заметки, которые я сделал, выполнив поиск в Интернете или самостоятельно.

Операция обновления версии (прямое обновление с 7.0 до 7.2):

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get upgrade php
Expansion and Upgrade
sudo apt-get install php7.2-mbstring
sudo apt-get install php7.2-gd
sudo apt-get install php7.2-dom
sudo apt-get install php7.2-mysql
sudo apt-get install php7.2-curl
......

Вы можете установить swole: https://wiki.swoole.com/wiki/…

Рекомендуется устанавливать непосредственно с помощью PECL install swool, один шаг на месте, если скомпилирован вручную, кажется, что возникнет множество проблем, потому что версия не соответствует.

Переключаемая версия:

# Disable Version 7.0
sudo a2dismod php7.0

# Enable Version 7.2
sudo a2enmod php7.2

# Restart nginx (or apache)
sudo service nginx restart

Если ОШИБКА: Модуль php7.0 не существует!, выполните sudo apt-get install libapache2-mod-php7.0, а затем выполните описанные выше действия.

Вы должны увидеть версию 7.2, когда посмотрите на phpinfo () в своем браузере, но в командной строке cli по-прежнему 7.0. Вам нужно сделать следующее:

CLI switch
sudo update-alternatives --set php /usr/bin/php7.2

Таким образом, вы можете увидеть версию 7.2 при выполнении php-v в командной строке

Если у вас две версии, вы можете переключаться напрямую с помощью службы sudo php7.0-остановка/перезапуск fpm. Конечно, это может переключить только php-fpm, то есть веб-сайт или сторону командной строки cli переключить невозможно.

Ошибка синтаксического анализа: синтаксическая ошибка, неожиданное “?”, ожидание переменной (T_VARIABLE):

Обновленную версию я также выбросил PHP 7.1, а затем вернулся, чтобы загрузить компьютер на следующий день, и обнаружил, что все проекты laravel сообщали о таких ошибках. После поиска в Интернете я понял, что это проблема с версией, но после просмотра php-v никаких проблем не возникло. В настоящее время я намерен перезапустить отчеты об ошибках PHP. Проблема заключается в следующем сообщении об ошибке: ОШИБКА: не удается привязать прослушивающий сокет для адреса ‘127.0.0.1:9001’: Адрес уже используется (98) Грубо говоря, порт занят, а затем программа PHP fast CGI не запускается.

Разрешение: ps aux|grep php Просматривая все процессы php-fpm, мы обнаруживаем, что существует процесс PHP 7.1-fpm, получаем идентификатор процесса, а затем убиваем его, а затем мы можем перезапустить его.

Решением онлайн-запроса является команда killall php-pfm. После выполнения отображается только php-pfm: операция не найдена. Этот метод бесполезен. Наконец, используется описанный выше процесс запроса, и идентификатор процесса используется для завершения процесса.