• PHP安装、配置及拓展总结


    PHP安装、配置及拓展总结:

    本篇文章主要总结的是PHP的安装、配置、拓展库的添加及验证,实现平台为Unix/Linux/Mac OS X,这里也包括日后的技术文章,只将PHP语言作为服务器端脚本和命令式脚本的使用进行总结,其中不涉及对桌面应用程序的处理。

    ·     如何安装

    ·     如何配置

    ·     如何拓展

    ·     如何验证

    ·     遇到问题

    .      附加内容

    一、如何安装

    1、下载安装包

    下载地址:http://php.net/downloads.php 下载最新的PHP软件安装包到本地。

    2、解压安装包

    $ tar –xvf php-5.6.20.tar

    3、配置并安装

    $ cd php-5.6.20

    $ ./configure --enable-fpm --with-mysql // 开启php-fpm和mysql支持

    $ make            

    $ make install   

    4、创建配置文件

    $ cd php-5.6.20

    $ cp php.ini-development  /usr/local/php/php.ini

    $ cp /usr/local/etc/php-fpm.conf.default  /usr/local/etc/php-fpm.conf

    $ cp sapi/fpm/php-fpm  /usr/local/bin

    NOTE:

    创建配置文件,并将其复制到正确位置才能生效哦。

    二、如何配置

    1、php.ini配置

    对于PHP的配置部分,我们大部分只需要配置php.ini配置文件即可。而这里我们基本保持默认的php.ini中的配置,以后会继续对这个文件进行配置说明及优化。如果文件不存在时,为了防止恶意脚本注入攻击问题,需要阻止Nginx服务器请求发送到php-fpm,所以需要在php.ini中解注释并修改内容如下:

    cgi.fix_pathinfo=0

    2、涉及到的配置

    Php-fpm配置:

    参考:

    http://www.cnblogs.com/quanzhiguo/p/7520576.html 

    Nginx配置:

    参考:

    http://www.cnblogs.com/quanzhiguo/p/7520620.html

    Mysql配置:

    参考:

    http://www.cnblogs.com/quanzhiguo/p/7520658.html

    三、如何拓展

    在PHP开发中,很多常用的功能是以第三方库形式提供拓展支持的,所以需要为php添加拓展库支持,目前支持三种方式添加拓展,可参考官方说明:

    http://php.net/manual/zh/install.pecl.pear.php

    而在这里,我比较喜欢使用PHPIZE底层编译安装拓展支持,生成的动态.so库文件存放路径:/usr/local/lib/php/extensions/no-debug-non-zts-20131226,具体如下:

    PS:修改过php.ini配置之后,记得重启fpm哦,否则修改不生效。

    1、Xcache

    $ tar -xvf xcache-3.2.0.tar

    $ cd xcache-3.2.0

    $ sudo phpize

    $ sudo ./configure --enable-xcache --enable-xcache-coverager

     --enable-opcache --enable-xcache-optimizer

    $ sudo make

    $ sudo make install

    NOTE:

    --enable-xcache:包含对xcache的支持;

    --enable-xcache-coverager:包含测量加速器的指标的附加特性;

    --enable-xcache-optimizer:包含操作码优化支持;

    配置:

    php.ini:

    [xcache-common]

    extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

    [xcache.admin]

    xcache.admin.enable_auth = On

    xcache.admin.user = "admin"

    xcache.admin.pass = ""

    [xcache]

    xcache.shm_scheme ="mmap"

    xcache.size=1024M

    xcache.count =16

    xcache.slots =8K

    xcache.ttl=0

    xcache.gc_interval =0

    xcache.var_size=16M

    xcache.var_count =1

    xcache.var_slots =8K

    xcache.var_ttl=0

    xcache.var_maxttl=0

    xcache.var_gc_interval =300

    xcache.test =Off

    xcache.readonly_protection = On

    ;xcache.mmap_path ="/dev/zero"

    xcache.mmap_path ="/tmp/xcache"

    xcache.coredump_directory =""

    xcache.cacher =On

    xcache.stat=On

    xcache.optimizer =Off

    [xcache.coverager]

    xcache.coverager = On

    xcache.coveragedump_directory = ""

    [opcache]

    ; so地址

    zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/opcache.so

    ; 开关打开

    opcache.enable=1

    ; 开启CLI

    opcache.enable_cli=1

    ; 可用内存, 酌情而定, 单位为:Mb

    opcache.memory_consumption=128

    ; Zend Optimizer + 暂存池中字符串的占内存总量.(单位:MB)

    opcache.interned_strings_buffer=8

    ; 对多缓存文件限制, 命中率不到 100% 的话, 可以试着提高这个值

    opcache.max_accelerated_files=4000

    ; Opcache 会在一定时间内去检查文件的修改时间, 这里设置检查的时间周期, 默认为2, 定位为秒

    opcache.revalidate_freq=60

    ; 打开快速关闭, 打开这个在PHP Request Shutdown的时候回收内存的速度会提高

    opcache.fast_shutdown=1

    NOTE:

    经过很多的优化处理及确保程序本身没有问题,只是因为操作太多无法再进行优化,这时可以考虑使用xache、apc等PHP加速器来减少cpu解析php文件的性能消耗问题

    2、Xdebug

    $ tar –xvf xdebug-2.4.0.tar

    $ cd debug-2.4.0

    $ phpize

    $ sudo ./configure –prefix=/usr/local/xdebug

    $ sudo make

    $ sudo make install

    配置:

    php.ini:

    [xdebug]

    xdebug.auto_trace = off

    xdebug.auto_profile = off

    xdebug.collect_params = on

    xdebug.collect_return = on

    xdebug.profiler_enable = on

    xdebug.remote_enable = off

    xdebug.trace_output_dir = "/tmp"

    xdebug.profiler_output_dir ="/tmp"

    zend_extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so

    NOTE:

    如何监控和调试PHP程序?这里使用了Xdebug拓展库支持。

    3、Mcrypt

    $ tar libmcrypt-2.5.8.tar.gz

    $ cd libmcrypt-2.5.8

    $ sudo ./configure –disable-posix-threads –enable-static

    $ sudo make

    $ sudo make install

    $ cd php-5.6.20/ext/mycrypt

    $ sudo phpize

    $ sudo ./configure

    $ sudo make

    $ sudo make install

    配置:

    php.ini:

    extension=/usr/local/lib/php/extensions/no-debug-non-zts-20131226/mcrypt.so

    四、如何验证

    1、验证PHP

    php –v

    2、验证PHP拓展

    在验证的PHP的拓展时,有两种方法:

    phpinfo()及php –m,这里就以phpinfo()为例说明验证。

    Xcache:

    Xdebug:

    Mcrypt:

    五、遇到问题

    1、PHP拓展已经安装成功,并且已经添加php.ini配置,也重启了fpm,但是php –m或是phpinfo() 始终不显示。

    解决办法:

    <? phpinfo() ?> 查看Configuration File (php.ini) Path,这个路径即为当前生效的php.ini存放的路径,那么问题很可能你配置的php.ini路径不对。

    2、PHP拓展xcache已经安装及配置完成,也重启了fpm,但是php –m或是phpinfo() 始终不显示。

    解决办法:

    修改zend_extension=xxx为extension=xxx即可,原因是因为xcache在3.0后,不再支持使用zend_extension加载xcache.so了,而是使用extension加载,也就是只把xcache当作为一个拓展库,对于PHP的加速才是使用zend_extension=xxx/opcache.so。

    NOTE:

    对于上面的PHP拓展,会在后面的总结文章中进行汇总介绍及使用说明。

    六、附加内容

    我们可以使用php-config查看当前PHP的相关安装及配置信息:

    $php-config  --help

    选项说明(来自于官网):

    选项

    说明

    --prefix

    PHP 所安装的路径前缀,例如 /usr/local

    --includes

    列出用 -I 选项包含的所有文件

    --ldflags

    PHP 编译时所使用的 LD 标志

    --libs

    PHP 编译时所附加的库

    --extension-dir

    扩展库的默认路径

    --include-dir

    头文件的默认路径前缀

    --php-binary

    PHP CLI 或者 CGI 可执行文件的完整路径

    --php-sapis

    列出所有可用的 SAPI 模块

    --configure-options

    重现当前 PHP 在编译时的配置选项

    --version

    PHP 版本号

    --vernum

    PHP 版本号,以整数表示

    另外,有时我们需要知道所安装的拓展是否需要安装依赖或启动支持,那么可以使用下面的指令查询即可:

    $./configure  --help | grep extname(拓展名)

  • 相关阅读:
    10 个你需要了解的 Linux 网络和监控命令
    U盘安装 bt5
    SpringCloud RabbitMQ 使用
    两个大数相乘笔试题目
    activemq 话题模式(三)
    activemq 队列模式(二)
    activemq 安装 (一)
    安装mysql5.7时缺少my.ini文件
    linux 远程rsa 登录配置 文件 /etc/ssh/sshd_config
    java -jar 解决占用终端问题
  • 原文地址:https://www.cnblogs.com/quanzhiguo/p/7520521.html
Copyright © 2020-2023  润新知