ホームページ >バックエンド開発 >PHPチュートリアル >Linux 上で PHP をコンパイルしてインストールする

Linux 上で PHP をコンパイルしてインストールする

不言
不言オリジナル
2018-06-02 09:34:037076ブラウズ

この記事は主に Linux 上での PHP のコンパイルとインストールを紹介します。必要な友人に参考にしていただけるようにします。

以前のサーバーにインストールしていましたが、しばらくするとインストールが完了しました。いくつかの簡単な手順を思い出したので、後で簡単に参照できるように、新しいサーバーにインストールプロセスを記録しました。 . 初心者にも参考になります。

1. まず、PHP ソースコードのインストールパッケージをダウンロードする必要があります。PHP 公式 Web サイト http://php.net/ にアクセスした後、[ダウンロード] オプションをクリックします。ダウンロードページに含まれるナビゲーションバー この時点で、地域に応じてダウンロードサーバーを選択できます

2. ダウンロードが完了したら、を使用します。 FTP ツールを使用して、PHP がインストールされるサーバーにソース コード パッケージをアップロードします。ここでは、それを /tmp ディレクトリに一時的に置きます

(注: Linux ファイル ダウンロード ツール wget を直接使用して Linux でダウンロードすることもできます) 、 wget -O php-5.6.15.tar.gz http://cn2.php.net/get /php-5.6.15.tar.gz/from/this/mirror の形式で、ここでは使用する必要があります -ダウンロードしたファイルに名前を付けます。そうでない場合、ダウンロードされたファイル名は「mirror」になります。さらに、Sohu のミラー アドレスを使用することもできます。ダウンロード http://mirrors.sohu.com/php/***)

3。圧縮ファイルを解凍します

# tar -zxf php-5.6.15.tar.gz

4. 前の手順で php-5.6.15 ディレクトリが生成され、そのディレクトリに移動します。 このディレクトリ内の実行可能ファイルを実行します (これは、MySQL コマンドの改行を表します)。具体的には、インストールプロセス中のエラーメッセージに従って、アンインストールされた拡張機能を補足できます

# ./configure \
--prefix=/usr/local/php-5.6.15 \
--with-config-file-path=/usr/local/php-5.6.15/etc \
--with-mysqli \
--with-xmlrpc \
--with-openssl \
--with-zlib \
--with-freetype-dir \
--with-png-dir \
--with-jpeg-dir \
--with-gd \
--with-iconv=/usr/local/libiconv \
--enable-sockets \
--enable-zend-multibyte \
--enable-soap \
--enable-mbstring \
--enable-static \
--enable-gd-native-ttf \
--with-mcrypt \
--with-mhash \
--with-curl \
--with-xsl \
--enable-ftp \
--with-libxml-dir \
--enable-pcntl \
--enable-bcmath \
--enable-fpm

対応する説明は次のとおりです:

--prefix=/usr/local/php-5.6.15 \ (指定PHP的安装目录)
--with-apxs2=/usr/sbin/apxs \ (使PHP支持Apache服务器,使用yum安装Apache时,apxs默认在usr/sbin/目录下)
--with-config-file-path=/usr/local/php-5.6.12/etc \ (指定PHP的配置文件php.ini目录)
--with-mysqli[=DIR] \ (指定mysqli的安装路径,使PHP支持mysqli,PHP最新版本已经不再支持mysql扩展了)
--with-xmlrpc \ (使PHP支持XML-RPC,即XML远程方法调用)
--with-openssl \ (使PHP编译安装openssl模块,加密传输https时用到的)
--with-zlib[=DIR] \ (配置gd库的支持包zlib,zlib是提供数据压缩用的函式库)
--with-freetype-dir[=DIR] \ (配置gd库的支持包freetype,FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎)
--with-png-dir[=DIR] \ (配置gd库的支持包libpng)
--with-jpeg-dir[=DIR] \ (配置gd库的支持包libjpeg)
--with-gd \ (静态编译gd库)
--with-iconv=/usr/local/libiconv \ (iconv命令可以将一种已知的字符集文件转换成另一种已知的字符集文件)
--enable-sockets \ (打开对socket的支持)
--enable-zend-multibyte \ (支持zend的多字节)
--enable-soap \ (打开对soap的支持,简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息)
--enable-mbstring \ (打开对多字节多字符串的支持)
--enable-static \ (生成静态链接库,在编译过程中,就将静态库中的代码载入程序,由此生成出的可执行程序在运行中不再需要静态库,但因为库中的程序代码被复制进目标程序中,因此生成的程序体积会比较大)
--enable-gd-native-ttf \  (支持TrueType字符串函数库)
--with-mcrypt \ (mcrypt算法扩展)
--with-mhash \  (mhash算法扩展)
--with-curl \ (打开curl浏览工具的支持)
--with-xsl \ (打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件)
--enable-ftp \ (打开对ftp的支持)
--with-libxml-dir \ (打开libxml2库的支持)
--enable-pcntl \ (扩展可以支持php的多线程操作)
--enable-bcmath \ (打开图片大小调整,用到zabbix监控的时候用到了这个模块)
--enable-fpm (打开对php-fpm的支持)

(注:上記のコンパイルとインストールの設定オプションは比較的完全で、選択的に設定できますが、さらに、PHP には GD ライブラリが統合されているため、サポートされていないことが前提となります。 zlibなどのパッケージを事前にインストールしておく必要があります。 png、jpeg、freetype など)

5. 上記のインストール プロセス中に報告されたエラーに応じて、アンインストールされた拡張機能を見つけ、yum を使用するか、ソース コード パッケージをダウンロードして手動でコンパイルし、インストールして、再コンパイルします。 PHP をインストールします

6. PHP のインストールが完了し、設定し、/usr/local/php-5.6.15/etc と入力すると、php.ini ファイルがないことがわかります。今回は、インストール パッケージ ディレクトリは /tmp/php である必要があります - 5.6.15 の php.ini-production を /usr/local/php-5.6.15/etc にコピーします。 ダウンロード

# cp /tmp/php-5.6.15/php.ini-production php.ini

(注: php.ini-development は開発プログラム、つまりテストに適しています。php.ini-production はより高いセキュリティ設定があり、製品としてオンラインで使用するのに適しています。一般的に、phpテスト環境 (ローカル) が公式環境 (オンライン) と一致するように、.ini-production を php.ini に変更します。PHP の関連構成についてはここでは説明しません)

7. /local/ php-5.6.15/binは、phpやphpizeなどのコマンドの使用を容易にするためにシステム環境変数に追加されます

# vi /etc/profile

export PATH="$PATH:/usr/local/を追加します開いたファイルの最後にphp -5.6.15/bin"を追加し、ファイルを保存してシステムを再起動します

8。phpを実行します。PHPの操作は、php-fpmを実行するのと同等です

# /usr/local/php-5.6.15/bin/php-fpm -c /usr/local/php-5.6.15/etc/php.ini -y /usr/local/php-5.6.15/etc/php-fpm.conf

最后,简单说下PHP的开机启动设置,因为一般的开机启动软件都应该被作为一项系统服务保存在 /etc/rc.d/init.d 中,所以php-fpm也应该作为一个可运行文件存在于该目录下(与MySQL的mysqld以及Apache的httpd相似),然而进入该目录下并未发现php-fpm,没关系,那我们就自己写一个脚本吧。具体脚本如下,可以直接在 /etc/rc.d/init.d 下新建一个php-fpm文件,复制下面代码,修改响应配置与自己所安装的PHP环境相同即可。

#!/bin/bash
#
# Startup script for the PHP-FPM server.
#
# chkconfig: 345 85 15
# description: PHP is an HTML-embedded scripting language
# processname: php-fpm
# config: /usr/local/php-5.6.15/etc/php.ini
 
# Source function library.
. /etc/rc.d/init.d/functions
 
PHP_PATH=/usr/local/php-5.6.15
DESC="php-fpm daemon"
NAME=php-fpm
# php-fpm路径
DAEMON=$PHP_PATH/sbin/$NAME
# 配置文件路径
CONFIGFILE=$PHP_PATH/etc/php-fpm.conf
# PID文件路径(在php-fpm.conf设置)
PIDFILE=$PHP_PATH/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
 
# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0
 
rh_start() {
  $DAEMON -y $CONFIGFILE || echo -n " already running"
}
 
rh_stop() {
  kill -QUIT `cat $PIDFILE` || echo -n " not running"
}
 
rh_reload() {
  kill -HUP `cat $PIDFILE` || echo -n " can't reload"
}
 
case "$1" in
  start)
        echo -n "Starting $DESC: $NAME"
        rh_start
        echo "."
        ;;
  stop)
        echo -n "Stopping $DESC: $NAME"
        rh_stop
        echo "."
        ;;
  reload)
        echo -n "Reloading $DESC configuration..."
        rh_reload
        echo "reloaded."
  ;;
  restart)
        echo -n "Restarting $DESC: $NAME"
        rh_stop
        sleep 1
        rh_start
        echo "."
        ;;
  *)
         echo "Usage: $SCRIPTNAME {start|stop|restart|reload}" >&2
         exit 3
        ;;
esac
exit 0

之后可以通过使用service 命令进行操作

# service php-fpm start 启动php-fpm,
# service php-fpm stop 关闭php-fpm,
# service php-fpm restart重启php-fpm

使用chkconfig 命令添加、删除和查看系统开机自启动服务

# chkconfig --list 显示开机可以自动启动的服务 
# chkconfig --add php-fpm 添加开机自动启动php-fpm服务 
# chkconfig --del php-fpm 删除开机自动启动php-fpm服务

好了,关于PHP的安装基本上就完成啦~

以上がLinux 上で PHP をコンパイルしてインストールするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。