【旧正月なので、過去記事を毎日1記事ずつ、計7記事投稿していきます。 】
このアイデアは、最初にソースを使用し、php5 と php5 が依存するすべてのプロジェクトをインストールし、次に phpbrew をインストールし、phpbrew を通じて php のバージョンを管理し、7.0.0 をインストールすることです。 まず依存関係をいくつかインストールします
apt-get install gccapt-get install libmcrypt-dev libreadline-dev
php5 が依存するすべてのプロジェクト
apt-get build-dep php5-cli
をインストールします。これには mysql も含まれます。これにより、mysql の root パスワードの入力が求められます。 インストール完了後、現時点でのphpのバージョンを確認するとphp5.6.14(debian8系、ソースも新しい)
phpbrewをインストール( https:// github.com/phpbrew /phpbrew )
curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrewchmod +x phpbrewsudo mv phpbrew /usr/local/bin/phpbrewphpbrew init
さて、実際にphpbrewの実行ファイルをダウンロードしてPATHに置きます。 次に、次のコマンドを .bashrc に追加し、.bashrc を有効にします:
[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc
有効にします:
source ~/.bashrc
phpbrew を使用して、php7.0.0 をコンパイルしてインストールします。
phpbrew install 7.0.0 +default
OK、それでは素晴らしいインストールプロセスをお楽しみください。
古いルーチンである nginx をコンパイルします。
./configure --user=www-data --group=www-data --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-ipv6make -j2make install
Debian は、systemd を使用してサービスを管理します。 まず、nginx 構成ファイルを作成します。
[Unit]Description=The nginx HTTP and reverse proxy serverAfter=syslog.target network.target remote-fs.target nss-lookup.target[Service]Type=forkingPIDFile=/usr/local/nginx/logs/nginx.pidExecStartPre=/usr/local/nginx/sbin/nginx -tExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.confExecReload=/bin/kill -s HUP $MAINPIDExecStop=/bin/kill -s QUIT $MAINPIDPrivateTmp=true[Install]WantedBy=multi-user.target
起動、問題なし:
systemctl start nginx.service
その後、php環境を確認したところ、fpmがインストールされていないことが分かりました。そのため、「メンテナンスのために工場に戻り」、再コンパイルして、fpm をインストールする必要がありました。 (後で、gd ライブラリがインストール時に ttf と jpeg をサポートしていないことが判明したため、ここでいくつかの修正を行う必要があります)
phpbrew install 7.0.0 +default+fpm+mysql+intl -- --with-jpeg-dir=/usr --with-png-dir=/usr --with-gd=shared --enable-gd-natf --enable-gd-native-ttf --with-freetype-dir=/usr
再コンパイル後、ワンクリックで php7-fpm を起動できます。
phpbrew fpm startphpbrew fpm stop
エラーが発生しました。fpm プールが存在しないというメッセージが表示されました。
cd /root/.phpbrew/php/php-7.0.0/etc/php-fpm.d/cp www.conf.default www.conf
www.conf で、ユーザーがプールを設定する必要があることがわかりました。そして group と listen-user と listen- を www-data に変更し、listen の 9000 ポートを UNIX ドメインソケットに変更します: listen = /var/run/php7-fpm.sock を再起動すればOKです。
php-fpm を nginx 構成ファイルに追加します:
location ~ \.php$ { root html; fastcgi_pass unix:/var/run/php7-fpm.sock; fastcgi_index index.php; include fastcgi.conf;}
php コードを /usr/local/nginx/html に追加すると、phpinfo に正常にアクセスできます: