Как создать PHP 7.3?

У меня есть проблема с созданием пакета для PHP 7.3 от мерзавца. В данный момент я использую Ubuntu 16.04 с utdatet php 7.0.x. (Невозможно обновить Ubuntu 16.04 до 18,04 в моем VPS, потому что это отказывает при начальной загрузке. У меня только есть Virtuozzo для отладки, и я не могу найти точку, где это отказывает, таким образом обновление до 18,04 еще не является опцией.)

Мои шаги до сих пор:

Я установил все программы для сборки, (мерзавец, создайте важный, libtool, бизон и re2c).

Я клонировал мерзавца от GitHub с:

git clone https://github.com/php/php-src.git 

Затем я выбрал ответвление, которое я хочу:

git checkout PHP-7.3 

Затем я работал:

./buildconf

Каков следующий шаг?

Мне нужны следующие пакеты:

  php7.3
  libapache2-mod-php7.3
  php7.3-mysql
  mysql-сервер

Я не искал PPA, потому что я хотел сделать это самостоятельно для изучения его на практике.

4
задан 21 January 2019 в 04:18

1 ответ

  1. Зависимости от установки.

    sudo apt install autoconf automake bison build-essential curl flex \
      libtool libssl-dev libcurl4-openssl-dev libxml2-dev libreadline7 \
      libreadline-dev libsqlite3-dev libzip-dev libzip4 nginx openssl \
      pkg-config re2c sqlite3 zlib1g-dev
    

    Таким образом, Вы не перезаписываете существующих установок PHP в своей системе, установите PHP в своем корневом каталоге. Создайте каталог для двоичных файлов PHP.

    mkdir -p ~/bin/php7-latest/
    
  2. Загрузите PHP 7.3 с GitHub, распакуйте его, затем измените использование каталогов cd к новому каталогу. Можно также загрузить PHP 7.3 с php.net/downloads.php, и инструкции по установке являются точно тем же. Обычно это было бы предпочтительным способом загрузить PHP 7.3, но я использую PHP 7.3 от https://github.com/php/в этом ответе вместо этого для соответствия архиву PHP 7.3, о котором спрашивают в вопросе.

  3. Настройте PHP. Удалите любые опции, в которых Вы не нуждаетесь (как MySQL или Пост-ГРЭС (-with-pdo-pgsql))

    ./configure --prefix=$HOME/bin/php-latest \
        --enable-mysqlnd \
        --with-pdo-mysql \
        --with-pdo-mysql=mysqlnd \
        --with-pdo-pgsql=/usr/bin/pg_config \
        --enable-bcmath \
        --enable-fpm \
        --with-fpm-user=www-data \
        --with-fpm-group=www-data \
        --enable-mbstring \
        --enable-phpdbg \
        --enable-shmop \
        --enable-sockets \
        --enable-sysvmsg \
        --enable-sysvsem \
        --enable-sysvshm \
        --enable-zip \
        --with-libzip=/usr/lib/x86_64-linux-gnu \
        --with-zlib \
        --with-curl \
        --with-pear \
        --with-openssl \
        --enable-pcntl \
        --with-readline
    

    Вероятно, Вы не должны будете удалять ни одну из опций за исключением --with-pdo-pgsql=/usr/bin/pg_config если PostgreSQL не установлен. Если Вы не удалите опцию, которая характерна для пакета, который не установлен, то эта команда возвратит сообщение об ошибке, которое говорит Вам, какая опция должна быть удалена так, чтобы команда работала успешно.

  4. Скомпилируйте двоичные файлы:

    make # wait until make is finished
    make install
    
  5. Скопируйте файл PHP.ini в каталог установки

    cp php.ini-development ~/bin/php-latest/lib/
    
  6. Переименуйте два файла.

    cd ~/bin/php-latest/etc/  
    mv php-fpm.conf.default php-fpm.conf
    mv php-fpm.d/www.conf.default php-fpm.d/www.conf
    
  7. Создайте символьные ссылки для Вашего для Вашего двоичного файла.

    cd ~/bin
    ln -s php-latest/bin/php php
    ln -s php-latest/bin/php-cgi php-cgi
    ln -s php-latest/bin/php-config php-config
    ln -s php-latest/bin/phpize phpize
    ln -s php-latest/bin/phar.phar phar
    ln -s php-latest/bin/pear pear
    ln -s php-latest/bin/phpdbg phpdbg
    ln -s php-latest/sbin/php-fpm php-fpm
    
  8. Свяжите свой локальный PHP с командой php. Необходимо будет выйти из системы, затем входят в том, чтобы php переключился на локальную версию вместо установленной версии из репозиториев Ubuntu по умолчанию.

    # add this to .bashrc
    if [ -d "$HOME/bin" ] ; then
      PATH="$HOME/bin:$PATH"
    fi
    
  9. Запустите PHP-FPM

    sudo ~/bin/php-latest/sbin/php-fpm  
    

    При выполнении вышеупомянутой команды как обычный пользователь без sudo она покажет следующие уведомления:

    NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root.    
    NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root.    
    

Источник: файл Установки в php-src-master каталоге от https://github.com/php/php-src.git содержит ссылку на https://php.net/install, от которого получают эти инструкции, были пересмотрены. В дополнение к нескольким небольшим изменениям я добавил информацию о том, как установить PHP 7.3 локально в Вашем корневом каталоге, не требуя корневых полномочий.

7
ответ дан 1 December 2019 в 09:12

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

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