PHP编译常用命令详解

 更新时间:2016年11月25日 15:27  点击:1293
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

下面我们来看一篇关于MAC安装PHP扩展之MEMCACHE的例子,希望这篇教程可以帮助到各位朋友的哦。

在执行phpize的时候,出现错误提示
grep: /usr/include/php/main/php.h: No such file or directory
grep: /usr/include/php/Zend/zend_modules.h: No such file or directory
grep: /usr/include/php/Zend/zend_extensions.h: No such file or directory
Configuring for:
PHP Api Version:
Zend Module Api No:
Zend Extension Api No:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
1.由于/usr/include目录不存在,所以需要执行命令
sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include/ /usr/include
2.系统没有安装autoconf所以需要安装之,此项可参考http://blog.wwllcchf.com/?p=260
安装php扩展还可以按照以下方法
为了扩展管理方便,首先来安装pecl扩展管理器:
cd /usr/lib/php
sudo php install-pear-nozlib.phar
安装Redis、Memcache、Mongo等扩展。
sudo pecl install redis
sudo pecl install memcache
sudo pecl install mongo
sudo pecl install xdebug
将扩展配置添加的php.ini文件中:
extension=memcache.so
extension=mongo.so
extension=redis.so
zend_extension=xdebug.so
安装xcache,从官网下载Release-3.2.0解压缩并安装
tar xvf xcache-3.2.0.tar
cd xcache-3.2.0
phpize
/configure
make
sudo make install
配置XCache
[xcache]
xcache.size = 128M
xcache.var_size = 8M
xcache.var_count = 1
xcache.var_slots = 8K
xcache.var_ttl = 0
xcache.var_maxttl = 0
xcache.var_gc_interval = 300
xcache.optimizer = Off
由于Mac自带的PHP环境是不包括mcrypt扩展的,所以需要下载同版本的php源码包,单独编译这个模块加载。从官网的归档里面找到php5.5.14的源码包,下载:http://php.net/releases/
tar zxvf php-5.5.14.tar.gz
cd php-5.5.14/ext/mcrypt/
phpize
。/configure
make
sudo make install
配置ext-mcrypt
extension=mcrypt.so
为了加速,还需要打开opcache。
zend_extension=opcache.so
[opcache]
; Determines if Zend OPCache is enabled
opcache.enable=0
; Determines if Zend OPCache is enabled for the CLI version of PHP
opcache.enable_cli=0

PHP 5.5+版本以上的,可以使用PHP自带的opcache开启性能加速(默认是关闭的),但如果没有安装opcache的话可以和小编一起来看看PHP 7安装和开启opcache的教程,希望文章能够帮助到大家哦。


鸟哥在博客中说,提高PHP 7性能的几个tips,第一条就是开启opache,引用下原文:

记得启用Zend Opcache, 因为PHP7即使不启用Opcache速度也比PHP-5.6启用了Opcache快, 所以之前测试时期就发生了有人一直没有启用Opcache的事情

我的阿里云服务器是通过一个叫remi的centos源提供的PHP 7,默认没装opcache,用yum list yum70*命令搜索一下,果然有,于是install下来:

yum install php70-php-opcache.x86_64

然后重启php-fpm,使用service php70-php-fpm restart命令。(不同的系统和环境根据自己的情况安装和开启opache)

opcache

新建一个php文件,用phpinfo()函数显示php.ini信息,如果可以找到OPcache项,说明成功启用了。安装和启用PHP 7,就是给PHP 7再加一个翅膀!

PHP7在windows环境中安装已经不像低版本的php了它需要安装其它的一些插件才可以正常的运行了,下面我们来看一篇关于Windows服务器安装配置PHP7.0环境图文教程了,希望对各位有帮助。

在Windows环境下载及配置PHP7.0,2015年9月可下载PHP5.4至7.0,这次使用最新PHP版本7.0。而「PHP 7.0.0 RC 1」、「PHP 7.0.0 RC 2」是属于开发当中的版本,在生产环境使用需注意,稳定版是PHP5.6.13。

确认Microsoft Visual C++版本

Microsoft Visual C++的版本至关重要,根据Microsoft Visual C++版本下载的PHP不同。

PHP官网的左侧栏有以下注释。

VC9, VC11 & VC14
More recent versions of PHP are built with VC9, VC11 or VC14 (Visual Studio 2008, 2012 or 2015 compiler respectively) and include improvements in performance and stability.
– The VC9 builds require you to have the Visual C++ Redistributable for Visual Studio 2008 SP1 x86 or x64 installed
– The VC11 builds require to have the Visual C++ Redistributable for Visual Studio 2012 x86 or x64 installed
– The VC14 builds require to have the Visual C++ Redistributable for Visual Studio 2015 x86 or x64 installed
根据Microsoft Visual C++版本选择下载的PHP版本。

VC9:Microsoft Visual C++ 2008
VC11:Microsoft Visual C++ 2012
VC14:Microsoft Visual C++ 2015

点击「开始」->「控制面板」>->「卸载程序」,可以查看到现在的Microsoft Visual C++的版本。


MicrosoftVisual

Microsoft Visual C++版本是2015,因此必须选择VC14开始的PHP文件。

下载PHP7.0

从以下PHP官网进行下载。

  • http://www.php.net/
PHP7.0.0RC2Released

「PHP 7.0.0 RC 2」处写着「Windows source and binaries can be found on windows.php.net/qa/」。

WindowsPHPNet-QA

下载源码访问如下URL。
  • http://windows.php.net/qa/
DownLoad-PHP7.0

PHP7.0(7.0.0RC2)的32位有「VC14 x86 Non Thread Safe」、「VC14 x86 Thread Safe」,64位有「VC14 x64 Non Thread Safe」、「VC14 x64 Thread Safe」。这次使用环境是Windows Server2008 64位因此选择下载64位的「VC14 x64 Thread Safe」,大家根据自己的实际环境选择下载的源文件(下载之前再次提醒大家注意VC9、VC11、VC14是根据Windows环境的Microsoft Visual C++版本选择,如果Microsoft Visual C++ 2012的话,就不可以下载VC14的PHP文件。)。

重要的是在左侧栏,有以下注意事项。

IIS
If you are using PHP as FastCGI with IIS you should use the Non-Thread Safe (NTS) versions of PHP.
Apache
Please use the Apache builds provided by Apache Lounge. They provide VC9, VC11 and VC14 builds of Apache for x86 and x64. We use their binaries to build the Apache SAPIs.
If you are using PHP as module with Apache builds from apache.org (not recommended) you need to use the older VC6 versions of PHP compiled with the legacy Visual Studio 6 compiler. Do NOT use VC9+ versions of PHP with the apache.org binaries.
With Apache you have to use the Thread Safe (TS) versions of PHP.
这次是在以Apache为Web服务器的环境下使用PHP。Apache可在Apache Lounge进行下载(具体的下载方法参照下载Apache2.4.16,安装方法参照安装Apache2.4.16)。
PHP有「Non Thread Safe」、「Thread Safe」版本,在这里使用「Thread Safe」版本。

点击「VC14 x64 Thread Safe (2015-Sep-04 02:40:39)」的Zip。

DownLoad-VC14 x64 Thread Safe

点击「保存」下载到任意的目录下,就完成PHP的下载步骤了。

SavePHP7.0

安装PHP7.0

接着来进行PHP的安装步骤。把下载的文件解压以后,存放到任意的目录下就完成安装了。这次安装到「C:\MiddleWare\PHP」。

PHP7.0

运行PHP所需的所有文件都在该目录下。

1) 添加PHP模块

首先确认PHP模块的路径。

php7apache2_4

在「httpd.conf」文件,寻找「Dynamic Shared Object (DSO) Support」的部分。默认是在61行附近。
并在最后追加如下一行。
LoadModule php7_module C:/MiddleWare/PHP/php7apache2_4.dll
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
・・・
・・・
#LoadModule xml2enc_module modules/mod_xml2enc.so
LoadModule php7_module C:/MiddleWare/PHP/php7apache2_4.dll
追加以上配置以后Apache启动时,会读取PHP模块。

2) 登录扩展名

把PHP的扩展名(.php)和PHP关联起来。例如访问「http://www.example.com/sample.php」时,返回给浏览器的不是sample.php的内容,而是sample.php记载的PHP脚本的执行结果。

在「httpd.conf」文件里搜索「AddType」。默认是在404行附近,并追加如下2行。
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
#
    # TypesConfig points to the file containing the list of mappings from
    # filename extension to MIME-type.
    #
    TypesConfig conf/mime.types

    #
    # AddType allows you to add to or override the MIME configuration
    # file specified in TypesConfig for specific file types.
    #
    #AddType application/x-gzip .tgz
    #
    # AddEncoding allows you to have certain browsers uncompress
    # information on the fly. Note: Not all browsers support this.
    #
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    #
    # If the AddEncoding directives above are commented-out, then you
    # probably should define those extensions to indicate media types:
    #
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
  AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
・・・
・・・
</IfModule>
追加以上2行之后当访问扩展名为.php文件时,PHP程序会进行处理。

3) 指定php.ini配置文件路径(PHPIniDir)

首先确认存放php.ini文件目录。

phpini
在「httpd.conf」文件里指定PHP配置文件php.ini的目录,在这里添加到「httpd.conf」文件的最后。
PHPIniDir “c:/MiddleWare/PHP”
Apache会参照PHPIniDir目录下的php.ini文件。

4) 确认PHP运行情况

PHP相关的Apache配置已经完成。在这里作一个简单的PHP脚本文件确认配置是否正确。变更配置文件之后别忘了重启Apache。

打开文本编辑器,追加如下内容。
<?php
phpinfo();
?>

文静名为「phpinfo.php」,保存到Apache的htdocs目录下。

phpinfo

打开浏览器输入「http://localhost/phpinfo.php」。如以下页面显示PHP相关信息的话,Apache可以正常调用PHP了。

phpinof


好了以上就是关于Windows服务器安装配置PHP7.0环境图文教程了,这里介绍了安装那个版本的插件可以支持php 7正常在windows中运行了。

[!--infotagslink--]

相关文章

  • 使用percona-toolkit操作MySQL的实用命令小结

    1.pt-archiver 功能介绍: 将mysql数据库中表的记录归档到另外一个表或者文件 用法介绍: pt-archiver [OPTION...] --source DSN --where WHERE 这个工具只是归档旧的数据,不会对线上数据的OLTP查询造成太大影响,你可以将...2015-11-24
  • Linux中grep命令详解

    grep命令是Linux系统中最重要的命令之一,功能是从文本文件或管道数据流中筛选匹配的行和数据,如果再配合正则表达式,功能十分强大,是Linux运维人员必备的命令,这篇文章主要介绍了Linux中grep详解,需要的朋友可以参考下...2023-02-15
  • C#隐式运行CMD命令(隐藏命令窗口)

    这篇文章主要介绍了C#隐式运行CMD命令(隐藏命令窗口),本文实现在winform窗口中运行CMD命令,需要的朋友可以参考下...2020-06-25
  • PHP实现连接设备、通讯和发送命令的方法

    本文实例讲述了PHP实现连接设备、通讯和发送命令的方法。分享给大家供大家参考。具体如下:开发的BS架构的软件(PHP),需要跟设备进行通讯,在此记录一下,欢迎各位指正:1. 采用php socket技术使用TCP/IP连接设备参数$service_po...2015-10-21
  • 对MySQL日志操作的一些基本命令总结

    MySQL日志主要包含:错误日志、查询日志、慢查询日志、事务日志、二进制日志;日志是mysql数据库的重要组成部分。日志文件中记录着mysql数据库运行期间发生的变化;也就是说用来记录mysql数据库的客户端连接状况、SQL语句...2015-11-24
  • VSCode C++多文件编译的简单使用方法

    这篇文章主要介绍了VSCode C++多文件编译的简单使用方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-03-29
  • Mysql命令大全(详细篇)

    一、连接Mysql格式: mysql -h主机地址 -u用户名 -p用户密码1、连接到本机上的MYSQL。首先打开DOS窗口,然后进入目录mysql/bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密...2015-11-08
  • Vue3 编译流程-源码解析

    今天将从 Vue 的入口文件开始,看看声明了一个 Vue 的单文件之后是如何被 compile-core 编译核心模块编译成渲染函数的。下面小编讲解并附上代码分析展现在文章里,感兴趣的小伙伴不要错过奥...2021-09-25
  • 查看Redis内存信息的命令

    Redis 是一个开源、高性能的Key-Value数据库,被广泛应用在服务器各种场景中。本文介绍几个查看Redis内存信息的命令,包括常用的info memory、info keyspace、bigkeys等。...2021-01-15
  • 解决jmap命令打印JVM堆信息异常的问题

    这篇文章主要介绍了解决jmap命令打印JVM堆信息异常的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-12-04
  • vscode和cmake编译多个C++文件的实现方法

    这篇文章主要介绍了vscode和cmake编译多个C++文件的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-10
  • MySQL的常用命令集锦

    下面是我们经常会用到且非常有用的MySQL命令。下面你看到#表示在Unix命令行下执行命令,看到mysql>表示当前已经登录MySQL服务器,是在mysql客户端执行mysql命令。 登录MySQL,如果连接远程数据库,需要用-h指定hostname。登...2015-11-24
  • 使用 C# 动态编译代码和执行的代码

    一个控制台例子, 演示了如何用 C# 动态的生成代码, 编译代码, 最后执行...2020-06-25
  • C#实现的调用DOS命令操作类实例

    这篇文章主要介绍了C#实现的调用DOS命令操作类,实例分析了C#调用系统常用DOS命令的相关技巧,非常具有实用价值,需要的朋友可以参考下...2020-06-25
  • shell脚本批量复制及执行命令的示例详解

    这篇文章主要介绍了批量复制及执行命令shell脚本,本文通过列举几个示例给大家详细介绍,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下...2020-07-11
  • 一条命令重启所有已停止的docker容器操作

    这篇文章主要介绍了一条命令重启所有已停止的docker容器操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-20
  • QT5编译使用QFtp的方法步骤

    这篇文章主要介绍了QT5编译使用QFtp的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-04
  • 在docker中执行linux shell命令的操作

    这篇文章主要介绍了在docker中执行linux shell命令的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-30
  • 手把手教你如何编译打包video.js

    这篇文章主要介绍了编译打包video.js的方法,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧...2020-12-09
  • jsp 自动编译机制详细介绍

    这篇文章主要介绍了 Jasper的自动检测实现的机制比较简单,依靠某后台线程不断检测JSP文件与编译后的class文件的最后修改时间是否相同,若相同则认为没有改动,但倘若不同则需要重新编译,需要的朋友可以参考下...2016-12-02