はじめに
以前サーバー上に lamp
環境を構築したので、よりパフォーマンスの高いものに切り替えます。 強力なnginx
サーバー ソフトウェアとして、php5 を php7 にアップグレードしたいと考えています。
nginx のインストール時に詳細を説明する必要はありません:sudo apt-get install nginx
、ng を開始する前に、Apache ポートを変更します。
php7 のインストール
http://php.net/downloads.php でソース コードをダウンロードし、解凍します。
# cd php7*** # ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-mcrypt=/usr/include --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-iconv --with-zlib --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache # make # make install
5 と競合しないように、すべてのフォルダーで php7 が使用され、インストール プロセス中にエラーが報告された場合のインストール応答の依存関係が使用されます。
nginx への接続
nginx 自体は PHP スクリプトを処理できないため、処理のために PHP スクリプトを PHP インタープリターに送信する必要があります。 nginx は通常、リクエストを fastcgi 管理プロセスに送信して処理し、fascgi 管理プロセスは cgi サブプロセスの処理結果を選択して nginx に返します。
# cp php.ini-production /usr/local/php7/etc/php.ini # cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm # chmod +x /etc/init.d/php7-fpm # cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf # cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
php-fpmを起動
# service php7-fpm start
存在しないログ ファイル パスが見つかった場合は、手動で作成し、書き込み権限を与えます。
# service php7-fpm start Starting php-fpm [07-Apr-2016 11:16:11] ERROR: [pool www] cannot get gid for group 'nobody' [07-Apr-2016 11:16:11] ERROR: FPM initialization failed failed
このエラーが発生した場合は、nobody グループ groupadd nothing
を追加して再起動してください。
nginx の設定
これは、php ファイルにアクセスすると、ng が応答処理用に設定されていないため、ダウンロードされたファイルになります。
location ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
推奨学習: 「PHP7 チュートリアル 」