GitからPHP 7.3のパッケージをビルドする際に問題があります。現時点では、Utdatet php 7.0.xでUbuntu 16.04を使用しています。 (ブート時にクラッシュするため、VPSでUbuntu 16.04を18.04にアップグレードすることは不可能です。デバッグするのはVirtuozzoのみであり、クラッシュするポイントが見つからないため、18.04へのアップグレードはまだオプションではありません。)
これまでの手順:
ビルド用のすべてのプログラム(git、build essential、libtool、bison、およびre2c)をインストールしました。
GitHubからgitを複製しました:
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-server
PPAを検索しませんでした。それを行うことで学習するために、自分でPPAを実行したかったからです。
依存関係をインストールします。
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/
PHP 7.3を GitHub からダウンロードして解凍し、cd
を使用してディレクトリを新しいディレクトリに変更します。 php.net/downloads.php からPHP 7.3をダウンロードすることもできます。インストール手順はまったく同じです。通常、これはPHP 7.3をダウンロードする好ましい方法ですが、私はPHP 7.3を https://github.com/php/ から使用していますその代わりに、質問で尋ねられたPHP 7.3アーカイブに一致させるために、この回答。
PHPを構成します。不要なオプションをすべて削除します(MySQLやPostgres(--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
おそらく、PostgreSQLがインストールされていない場合は、--with-pdo-pgsql=/usr/bin/pg_config
以外のオプションを削除する必要はありません。インストールされていないパッケージに固有のオプションを削除しない場合、このコマンドは、コマンドを正常に実行するために削除する必要があるオプションを示すエラーメッセージを返します。
バイナリをコンパイルします。
make # wait until make is finished
make install
PHP.iniファイルをインストールディレクトリにコピーします
cp php.ini-development ~/bin/php-latest/lib/
2つのファイルの名前を変更します。
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
バイナリファイル用のシンボリックリンクを作成します。
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
ローカルPHPをphpコマンドにリンクします。デフォルトのUbuntuリポジトリからインストールされたバージョンではなく、ローカルバージョンに切り替えるには、ログアウトしてから再度ログインする必要があります。
# add this to .bashrc
if [ -d "$HOME/bin" ] ; then
PATH="$HOME/bin:$PATH"
fi
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.
ソース: https://github.com/php/php-src.git のphp-src-masterディレクトリにあるインストールファイルには https://php.net/installへのリンクが含まれています これらの指示が改訂されたソース。いくつかの小さな改訂に加えて、PHP 7.3をホームディレクトリにローカルにインストールする方法に関する情報を追加しました。ルート権限は必要ありません。