検索
ホームページバックエンド開発PHPチュートリアルPHPのコンパイルとインストール PHPの各コンパイルパラメータ設定の詳細説明

この記事では、PHP のコンパイルとインストール、および PHP の各コンパイル パラメーターの詳細な設定を紹介します。また、助けが必要な友人の参考としても使用できます。

  • PHPのコンパイルとインストールの基本的な手順

//首先要下载一个php的安装包,例如:php-5.6.25.tar.gz,tar zxvf php-5.6.25.tar.gz   // 解压php安装包,得到一个php-5.6.25的文件夹cd php-5.6.25  ./configure           //对php的安装进行配置,后面要加配置选项# make && make install //编译安装完成之后,需要从解压后的文件夹中把php.ini-development //或是 php.ini-production 重命名成php.ini 复制到php安装文件中的相应位置,//可在phpinfo中查看 相应位置.//  把/usr/local/php/etc/php-fpm.conf.default  复制到当前文件夹下,保存未php-fpm.conf

上記は、PHPのコンパイルとインストールの基本的なプロセスです。以下は、php.


  • の設定パラメータの詳細な紹介です。 php

--prefix=/usr/local/php                      //指定 php 安装目录 --with-apxs2=/usr/local/apache/bin/apxs      //整合apache,
                        //apxs功能是使用mod_so中的LoadModule指令,
                       //加载指定模块到 apache,要求 apache 要打开SO模块--with-config-file-path=/usr/local/php/etc    //指定php.ini位置--with-MySQL=/usr/local/mysql                 //mysql安装目录,对mysql的支持--with-mysqli=/usr/local/mysql/bin/mysql_config                      //mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,
                      //而且还可以使访问数据库工作变得更加稳定。--enable-safe-mode    //打开安全模式 --enable-ftp          //打开ftp的支持 --enable-zip          //打开对zip的支持 --with-bz2            //打开对bz2文件的支持 --with-jpeg-dir       //打开对jpeg图片的支持 --with-png-dir        //打开对png图片的支持 --with-freetype-dir   //打开对freetype字体库的支持 --without-iconv       //关闭iconv函数,各种字符集间的转换 --with-libXML-dir     //打开libxml2库的支持 --with-XMLrpc         //打开xml-rpc的c语言 --with-zlib-dir       //打开zlib库的支持 --with-gd             //打开gd库的支持 --enable-gd-native-ttf //支持TrueType字符串函数库 --with-curl            //打开curl浏览工具的支持 --with-curlwrappers    //运用curl工具打开url流 --with-ttf             //打开freetype1.*的支持,可以不加了 --with-xsl             //打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件 --with-gettext         //打开gnu 的gettext 支持,编码库用到 --with-pear            //打开pear命令的支持,PHP扩展用的 --enable-calendar      //打开日历扩展功能 --enable-mbstring      //多字节,字符串的支持 --enable-bcmath        //打开图片大小调整,用到zabbix监控的时候用到了这个模块--enable-sockets       //打开 sockets 支持--enable-exif          //图片的元数据支持 --enable-magic-quotes  //魔术引用的支持 --disable-rpath        //关闭额外的运行库文件 --disable-debug        //关闭调试模式 --with-mime-magic=/usr/share/file/magic.mime  //魔术头文件位置
の各パラメータの詳細設定
  • CGIインストールにのみ使用されるパラメータ:

--enable-fpm                 //打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序--enable-fastCGI             //支持fastcgi方式启动PHP--enable-force-CGI-redirect  //重定向方式启动PHP--with-ncurses         //支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库--enable-pcntl         //freeTDS需要用到的,可能是链接mssql 才用到--with-mcrypt          //mcrypt算法的扩展--with-mhash           //mhash算法的扩展//以上函数库需要安装--with-gmp                     //应该是支持一种规范--enable-inline-optimization   //优化线程--with-openssl                 //openssl的支持,加密传输时用到的--enable-dbase                 //建立DBA 作为共享模块--with-pcre-dir=/usr/local/bin/pcre-config       //perl的正则库案安装位置--disable-dmalloc
--with-gdbm            //dba的gdbm支持--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte  //支持zend的多字节--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap

  • 注意事項

  • --with-apxs2=/usr/local/apacheを指定した後/bin/apxs、--enable-fpm および --enable-fastCGI をアクティブにしないでください。apxs は PHP を php モジュール モードで読み込みます。

  • Mysql Mysql 開発ライブラリをコンパイルした後は、mysql へのパスを指定する必要はありません。

  • PHP をコンパイルするには、まず XML 拡張機能をインストールする必要があります。これは、php5 コアではデフォルトで XML サポートが有効になっているためです。GD -> zlib、Png、他をサポートする必要がある場合は、実際の状況に応じて拡張ライブラリをコンパイルする必要があります。ttf ライブラリは、freetype ライブラリのサポートを必要とします。

  • --enable-magic-quotes は、基本的な作業を PHP で行う必要がある場合には、実際には問題を完全に解決するものではありません。

  • --openssl を使用するには、openssl ライブラリが必要です。 mysqli は MySQL チームが提供する MySQL ドライバーであり、多くの実用的な機能と代表的な機能を備えています。ただし、PHP プラットフォーム上の MySQL には最適な選択肢ではありません。PDO は、シンプルで同時実行性が高く、作成とリサイクルが簡単な標準インターフェイスであることが証明されています。ただし、PDO は 5.3 よりも前でもメモリ オーバーフローの問題を経験していました。5.3 以降でも、Oracle の LOB リソースを読み取るときに、メモリが制限されていない場合は、依然としてメモリがオーバーフローします。
    製品モードの場合、pear、shmop、ftp などを使用することはお勧めできません。C/C++、Java、またはその他のスクリプト言語を使用する必要があります。高速な優れたオプションはあります。実装するには PHP を使用することに限定する必要があります。馴染みのないクラス ライブラリや一般的に使用されないライブラリは推奨されません。 Magic-quote、session.auto_start、PHP サーバー情報、PHP エラー情報などは、サーバー情報の公開を避けるために、コンパイル完了後できるだけ早く閉じてください。

    PHP に対応する Web サーバー モードでは、Module、fastcgi、fpm のいずれか 1 つだけが必要です。サーバーは実験フィールドではありません。 Fastcgi は Nginx と lighttpd を選択できます。実際、Nginx も fcgi プロセス管理に lighttpd の spwan-fcgi を使用します。 fpm は PHP 自体を使用して複数のプロセスを管理します。これはバックエンド プロキシに似ています。モードに関係なく、製品サーバーをリリースするときは、プロセスとスレッドのチューニングを実行し、プロセス番号の最適な組み合わせを見つけるために十分なストレス テストを実行する必要があります。

    PHP OPCode キャッシュ拡張機能を選択します。これも非常に重要です。Linux 2.6 コアと fcgi では、同時実行数が増加すると、xcache のパフォーマンスが大幅に低下します。

    本当にそれを体験したい場合は、さまざまな環境に適応するために 1 つのバージョンの PHP にさまざまな拡張機能を収集するよりも、さらにいくつかの PHP バージョンをコンパイルすることをお勧めします。


  • 別途インストールする必要がある拡張機能

  • gdライブラリ。

  • ミング拡張子。

  • mhash と mcrypt の拡張機能。

詳細なオプションに関しては、上記のインストールの紹介に加えて、コンパイル中に他のオプションを追加することもできます。
apache module
構文: --with-apache=DIR
説明: **PHP
** を Apache モジュールとして使用するには、このオプションを使用します。DIR の文字列は /usr/local/apache またはその他にすることができます。 Apache がインストールされているディレクトリ
例: --with-apache=/var/lib/apache
fhttpd サーバー モジュール
構文: --with-fhttpd=DIR
説明: fttpd サーバーを使用する場合は、このコマンドを使用できますPHPをコンパイルします。モジュールを使用して fttpd サーバーと連携すると、効率が向上します。
Adabas D データベース
構文: --with-adabas=DIR
説明: このオプションは、データベース システムが Adabas D データベースの場合に必要です。 Adabas D データベースの詳細については、以下を参照してください。 http://www.adabas.com。
例: --with-adabas=/usr/local/adabasd
dBase データテーブル
構文: --with-dbase
説明: このオプションが追加されている限り、他のパラメータや関数ライブラリがなくても、PHP はシステムには、dBase データテーブルにアクセスする機能があります。
filePro データベース
構文: --with-filepro
説明: データベース パスや他の関数ライブラリを指定せずに、filePro データベース (読み取り専用) を読み取ることができます。
mSQL データベース
構文: --with-msql=DIR
説明: mSQL データベースへのアクセスを提供します。詳細については、mSQL Web サイトを参照してください。 http://www.ヒューズ.com.au。
例: --with-msql=/usr/local/Hughes
MySQL データベース
構文: --with-mysql=DIR
説明: MySQL データベースへのアクセスを提供します。詳細については、MySQL Web サイトを参照してください。 http://www.tcx.se。
例: --with-mysql=/usr/local/mysql
iODBC データベース デバイス
構文: --with-iodbc=DIR
説明: バックエンド データベースにアクセスするための ODBC データベース デバイスを提供します。詳細については、iODBC Web サイトを参照してください。 http://www.iodbc.org。
例: --with-iodbc=/usr/local/iodbc
OpenLink ODBC データベースのインストール
構文: --with-openlink=DIR
説明: OpenLink ODBC データベースのインストールを使用して、バックエンド データベースにアクセスします。詳細については、OpenLink ODBC Web サイトを参照してください。 http://www.openlinksw.com。
例: --with-openlink=/usr/local/openlink
Oracle データベース
構文: --with-oracle=DIR
手順: Oracle データベースを使用します。 Oracle のバージョンはバージョン 7.3 以降である必要があります。 PHP プログラムで環境変数 ORACLE_HOME を使用して、Oracle へのパスを指定することもできます。 Oracle の詳細については、Oracle の Web サイトを参照してください。 http://www.oracle.com。
例: --with-oracle=/export/app/oracle/product/7.3.2
PostgreSQL データベース
構文: --with-pgsql=DIR
手順: PostgreSQL データベースを使用します。 PostgreSQL の詳細については、PostgreSQL Web サイトを参照してください。 http://www.postgreSQL.org または台湾ミラー サイト http://postgresql.ccit.edu.tw。
例: --with-pgsql=/usr/local/pgsql
ソリッド データベース
構文: --with-solid=DIR
説明: ソリッド データベースを使用します。 Solid の詳細については、Solid の Web サイトを参照してください。 http://www.solidtech.com。
例: --with-solid=/usr/local/solid
Sybase データベース
構文: --with-sybase=DIR
説明: Sybase データベースを使用します。 Sybase の詳細については、Sybase の Web サイトを参照してください。 http://www.sybase.com。
例: --with-sybase=/home/sybase
Sybase-CT データベース
構文: --with-sybase-ct=DIR
説明: Sybase-CT データベースを使用します。
例: --with-sybase-ct=/home/sybase
Velocis データベース
構文: --with-velocis=DIR
手順: Velocis データベースを使用します。 Velocis データベースの詳細については、Raima の Web サイトを参照してください。 http://www.raima.com。
例: --with-velocis=/usr/local/velocis
カスタマイズされた ODBC データベース ドライバー
構文: --with-custom-odbc=DIR
説明: カスタマイズされた ODBC 関数ライブラリを使用します。もちろん、この方法を使用する場合は、CUSTOM_ODBC_LIBS 変数と CFLAGS 変数を指定する必要があります。たとえば、QNX マシン上で Sybase **SQL
** Anywhere を使用する場合、システム環境変数 CFLAGS=-DODBC_QNX、LDFLAGS=-lunix および CUSTOM_ODBC_LIBS="-ldblib -lodbc" を構成し、 -- を追加する必要がある場合があります。 with- PHP 設定内でcustom-odbc=/usr/lib/sqlany50
例: --with-custom-odbc=/usr/local/odbc
ODBC データベースドライバーを使用しないでください
構文: --disable- unified-odbc
手順: このオプションを使用すると、すべての ODBC データベース ドライバーが無効になります。このオプションではパスを指定する必要はありません。このオプションの影響を受けるオプションは、--with-iodbc、--with-solid、--with-adabas、--with-velocis、および --with-custom-odbc です。
LDAP ディレクトリ プロトコル
構文: --with-ldap=DIR
説明: ディレクトリ プロトコル (Lightweight Directory Access Protocol、LDAP) を使用する場合は、このオプションをオンにする必要があります。 LDAP の詳細については、RFC ドキュメント RFC1777 および RFC1778 を参照してください。
例: --with-ldap=/usr/local/ldap.
mcrypt エンコード関数ライブラリ
構文: --with-mcrypt=DIR
说明: 当安装了 mcrypt 函数库后,可在编译 PHP 时加入本选项,让程序可以使用编解码功能。
范例: --with-mcrypt=/usr/local/include
Sys V 信号
语法: --enable-sysvsem
说明: 要使用 SysV 的信号 (semaphores) 机制,则要打开本选项。
XML 支持
语法: --with-xml
说明: 打开本选项可以支持 James Clark's 写的 XML 解析程序库。
维护模式
语法: --enable-maintainer-mode
说明: 本选项一般不会打开,除非是 PHP 开发人员比较有用。
正则表达式程序库
语法: --with-system-regex
说明: 若您需要额外的正则表达式功能,可以加入本选项。
PHP 配置文件
语法: --with-config-file-path=DIR
说明: 用来指定 php3.ini 或 php4.ini 的路径,供 PHP 初始化时使用。
范例: --with-config-file-path=/usr/local/lib
PHP 执行路径
语法: --with-exec-dir=DIR
说明: 有时为了系统的安全性考虑,会指定 PHP 程序一定要在哪个目录执行。
范例: --with-exec-dir=/usr/local/bin
调试模式
语法: --enable-debug
说明: 本选项一般不会使用,除非在开发 PHP 程序时比较有用。它可以显示额外的错误信息。
安全模式
语法: --enable-safe-mode
说明: 默认值是打开的,可以对系统安全提供比较多的保护。
变量追踪
语法: --enable-track-vars
说明: 让 PHP 能 追踪 HTTP_GET_VARS、HTTP_POST_VARS 及 HTTP_COOKIE_VARS 三个变量,一般是打开的。
自动加引入字符
语法: --enable-magic-quotes
说明: 可让程序在执行时自动加入反斜线的引入字符。
打开调试器
语法: --enable-debugger
说明: 打开内建的 PHP 调试器。目前本功能还在实验阶段,尚未成熟。
取消路径 (discard path)
语法: --enable-discard-path
说明: 打开这个选项,**用户
**就不能透过浏览器读取 .htaccess 等和系统安全相关的文件。
高精确度数学函数
语法: --enable-bcmath
说明: 打开高精确度函数。必须要先安装本函数库,本选项方有效。
强制 CGI 重定向
语法: --enable-force-cgi-redirect
范 例: 若使用 CGI VERSION 模式来执行 PHP 的设,打开本选项会增加安全性。例如用户读 http://my.host/cgi-bin/php/secret/doc.html 遇到比较了解 PHP 系统的黑客级用户可能会自已输入以下网址 http://my.host/secret/doc.html 来读取相关信息。若 PHP 和 Apache 编译在一起,让 PHP 变成 Apache 的一部份,则不需要加入本选项。
不使用短的标记
语法: --disable-short-tags
说明: 配置本选项后,PHP 的程序就不能使用短的标记,一定要用的长标记。
引入远端档宁
语法: --enable-url-includes
说明: 配置本选项可让 PHP 程序可以引入 (include) 远端的 HTTP 或 FTP 服务器中的文件。
关闭语法效果
语法: --disable-syntax-hl
说明: 使用本选项会关闭 PHP 语法的彩色效果。
函数库路径
语法: CPPFLAGS=-IDIR 及 LDFLAGS=-LDIR
说明: 若 PHP 在安全或编译所需的函数库在值得的路径,需要加入本选项,LDFLAGS 表示函数库的路径,CPPFLAGS 表示标头文件的路径。
范例: LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure


  • 配置项代码

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php  
--enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg 
--enable-sysvsem  --enable-sysvshm --enable-shmop --enable-zip 
--enable-ftp --enable-soap --enable-xml --enable-mbstring --disable-rpath 
--disable-debug --disable-fileinfo --with-mysql=mysqlnd 
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pcre-regex 
--with-iconv --with-zlib --with-gd --with-openssl --with-xmlrpc 
--with-curl --with-imap-ssl --with-freetype-dir --enable-fpm 
--enable-pcntl --with-mcrypt --with-mhash

转自:https://www.jianshu.com/p/0a79847c8151

相关推荐:

Centos 下PHP编译安装fileinfo扩展

PHP编译安装时常见错误解决办法_PHP教程


以上がPHPのコンパイルとインストール PHPの各コンパイルパラメータ設定の詳細説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?セッションに関連するクロスサイトスクリプティング(XSS)攻撃からどのように保護できますか?Apr 23, 2025 am 12:16 AM

セッション関連のXSS攻撃からアプリケーションを保護するには、次の測定が必要です。1。セッションCookieを保護するためにHTTPonlyとセキュアフラグを設定します。 2。すべてのユーザー入力のエクスポートコード。 3.コンテンツセキュリティポリシー(CSP)を実装して、スクリプトソースを制限します。これらのポリシーを通じて、セッション関連のXSS攻撃を効果的に保護し、ユーザーデータを確保できます。

PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?PHPセッションのパフォーマンスを最適化するにはどうすればよいですか?Apr 23, 2025 am 12:13 AM

PHPセッションのパフォーマンスを最適化する方法は次のとおりです。1。遅延セッション開始、2。データベースを使用してセッションを保存します。これらの戦略は、高い並行性環境でのアプリケーションの効率を大幅に改善できます。

session.gc_maxlifetime構成設定とは何ですか?session.gc_maxlifetime構成設定とは何ですか?Apr 23, 2025 am 12:10 AM

thesession.gc_maxlifettinginttinginphpdethinesthelifsessessiondata、setinseconds.1)it'sconfiguredinphp.iniorviaini_set()。 2)AbalanceSneededToAvoidPerformanceIssues andunexpectedLogouts.3)php'sgarbagecollectionisisprobabilistic、影響を受けたBygc_probabi

PHPでセッション名をどのように構成しますか?PHPでセッション名をどのように構成しますか?Apr 23, 2025 am 12:08 AM

PHPでは、session_name()関数を使用してセッション名を構成できます。特定の手順は次のとおりです。1。session_name()関数を使用して、session_name( "my_session")などのセッション名を設定します。 2。セッション名を設定した後、session_start()を呼び出してセッションを開始します。セッション名の構成は、複数のアプリケーション間のセッションデータの競合を回避し、セキュリティを強化することができますが、セッション名の一意性、セキュリティ、長さ、設定タイミングに注意してください。

セッションIDをどのくらいの頻度で再生する必要がありますか?セッションIDをどのくらいの頻度で再生する必要がありますか?Apr 23, 2025 am 12:03 AM

セッションIDは、機密操作の前、30分ごとにログイン時に定期的に再生する必要があります。 1.セッション固定攻撃を防ぐためにログインするときにセッションIDを再生します。 2。安全性を向上させるために、敏感な操作の前に再生します。 3.定期的な再生は長期的な利用リスクを減らしますが、ユーザーエクスペリエンスの重量を量る必要があります。

PHPでセッションCookieパラメーターをどのように設定しますか?PHPでセッションCookieパラメーターをどのように設定しますか?Apr 22, 2025 pm 05:33 PM

PHPのセッションCookieパラメーターの設定は、session_set_cookie_params()関数を通じて達成できます。 1)この関数を使用して、有効期限、パス、ドメイン名、セキュリティフラグなどのパラメーターを設定します。 2)session_start()を呼び出して、パラメーターを有効にします。 3)ユーザーログインステータスなど、ニーズに応じてパラメーターを動的に調整します。 4)セキュリティを改善するために、セキュアとhttponlyフラグを設定することに注意してください。

PHPでセッションを使用する主な目的は何ですか?PHPでセッションを使用する主な目的は何ですか?Apr 22, 2025 pm 05:25 PM

PHPでセッションを使用する主な目的は、異なるページ間でユーザーのステータスを維持することです。 1)セッションはsession_start()関数を介して開始され、一意のセッションIDを作成し、ユーザーCookieに保存します。 2)セッションデータはサーバーに保存され、ログインステータスやショッピングカートのコンテンツなど、さまざまなリクエスト間でデータを渡すことができます。

サブドメイン間でセッションをどのように共有できますか?サブドメイン間でセッションをどのように共有できますか?Apr 22, 2025 pm 05:21 PM

サブドメイン間でセッションを共有する方法は?一般的なドメイン名にセッションCookieを設定することにより実装されます。 1.セッションCookieのドメインをサーバー側の.example.comに設定します。 2。メモリ、データベース、分散キャッシュなど、適切なセッションストレージ方法を選択します。 3. Cookieを介してセッションIDを渡すと、サーバーはIDに基づいてセッションデータを取得および更新します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。