lamp之编译安装php及xcache
admin
2023-06-28 01:43:01
0次

php:

    0.安装相关扩展的rpm包和依赖

        加密功能:

            #tar -xf libmcrypt-xxx.tar.gz

            #cd libmcrypt-xx

            #./configure

            #make && make install



        支持大字符集:

            #yum -y install php-mbstring 支持中文等字符


        支持xml和压缩:

            #yum -y install libxml2-devel bzip2-devel


    1.解压安装包

        #tar xf php.xxx.tar.bz2 php.xxx

        #cd php.xxx


    2.编译安装:

        编译为httpd的模块:

            #./configure --prefix=/usr/local/phpXX --with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-apxs2=/usr/local/httpd/bin/apxs --with-openssl  --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/lib64 --enable-sockets  --with-mcrypt  --with-bz2 --enable-maintainer-zts

            #make

            #make install


        编译为fpm模式:

            将--with-apxs2=/usr/local/httpd/bin/apxs替换为

            --enable-fpm

            删除--enable-maintainer-zts


        编译常见选项:

            --prefix=/usr/local/php


            --with-config-file-path=/etc 指定配置文件的文件夹


            --with-config-file-scan-dir=/etc/php.d 指定配置文件夹片段目录


            --with-mysql=/usr/local/mysql


            --with-openssl 支持openssl功能


            --with-mysqli=/usr/local/mysql/bin/mysql_config php和mysql交互的另一种接口,二进制程序mysql_config


            --enable-mbstring 多字节string,支持中文等多字节,需要安装php-mbstring包。


            --with-freetype-dir freetype字体引擎,引用特定字体


            --with-jpeg-dir


            --with-png-dir


            --with-zlib 启用zlib压缩库支持


            --with-libxml-dir=/usr/lib64 启用xml支持,并指定xml库文件位置,需要安装libxml2-devel包。


            --enable-sockets 启动基于套接字的通信


            --with-apxs2=/usr/local/httpd/bin/apxs 使用apsx将php编译为httpd的模块。


            --with-mcrypt 启用额外的加密库,需要libmcrypt-devel


            --with-config-file-path=/etc 指定php主配置文件存放的目录。配置文件为php.ini


            --with-config-file-scan-dir=/etc/php.d php的配置片段位置。


            --with-bz2 启动压缩库,需要安装相应的bzip2-devel包


            --enable-maintainer-zts 若httpd以线程方式工作则需要此项。即MPM为profork则不需要启动次项。若为event或worker则需要此项支持。



    3.提供配置文件

        #cp php.ini-production /etc/php.ini


    4.编辑httpd的配置文件,增加php的支持:

        #vim /etc/httpd/httpd.conf

            DirectoryIndex index.php index.html

            AddType application/x-httpd-php .php

            AddType application/x-httpd-php-source .phps php源码支持。 



    5.若php以fpm模式编译则需要执行:

        1.给php-fpm提供Sysv风格脚本

            #cp sapi/fpm/init.d.php.fpm /etc/rc.d/init.d/php-fpm

            #chmod +x /etc/rc.d/init.d/php-fpm


        2.为php-fpm提供配置文件

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


        3.修改配置文件

            #vim /usr/local/php/etc/php-fpm.conf

                pm.max_children = 50 最大子进程数

                pm.start_servers = 5 服务启动时的空闲进程数

                pm.min_spare_servers = 2 最小空闲进程数

                pm.max_spare_servers = 8 最大空闲进程数

                pid = /usr/local/php/var/run/php-fpm.pid

                    指定pid文件位置,此项定义在服务脚本php-fpm中,2者保持一致即可。


        启动php-fpm

            #systemctl start php-fpm


        验证:

            #ps-aux|grep php-fpm

            #netsta -tnlp|grep php-fmp


            默认情况下fpm监听在9000端口。


Xcache

    1.解压软件包:

        #tar xf xcache.xxx.tar.gz xcache.xxx

        #cd xcacahe.xxx


    2.安装:

        #/usr/local/php/bin/phpize 在当前目录运行phpize。phpize是在编译安装php扩展之前对其进行准备的程序。

        

        #./configure \

        --enable-xcache\ 启用xcache功能

        --with-php-config=/usr/local/php/bin/php-config php-config是可以获得有关php配置和编译选项的信息的小脚本。


        #make && make install



        安装结束时,会出现类似如下行:

        Installing shared extensions:     /usr/local/php/lib/php/extensions/no-debug-[non]-zts-20100525/


    3.将xcache配置文件样例的内容追加到php配置文件中

        #cat xcache.ini >> /etc/php.ini

        或

        #cp xcache.ini /etc/php.d/


        推荐使用第二种方法。


    4.修改xcache.ini

        #vim /etc/php.d/xcache.ini

            zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-xxx/xcache.so


            用刚才安装结束时生成的路径进行替换。


            zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so


        注意:如果将xcache.ini追加到php.ini文件中,有多条zend_extension指令行,要确保此新增的行排在第一位。



        注意:若php以fpm方式编译,则不需要修改配置文件,直接重启php-fpm服务即可。



        xcache.ini

            [xcache.common]

                zend_extension = /usr/local/php/lib/php/extensions/no-debug-zts-xxx/xcache.so

                ...

            [xcache.admin]

                ...

            [xcache]

                xcache.shm_schem= "mmap" 指定在各php进程间共享内存的方式。mamp为内存映射,一段内存多个进程可以访问。

                xcache.size=60M 缓存Opcode的大小。设置为0表示禁用此功能。


                xcache.count=1 设置cpu个数

                xcache.slots=8K 槽位设置,hash相关

                xcache.ttl=0 缓存项目的过期时间,0表示永不过期,由xcache自行管理。

                xcache.gc_intrval=0 垃圾回收器工作周期。0表示不扫描,其他数值单位是秒。

                xcache.var_size=4M 变量缓存

                xcache.var_count=1 缓存个数

                xcache_var_slots=8K

                xcache_var_ttl=0

                xcache_var-maxttl=0

                xcache.var_gc_intrval=300


                xcache.cather=On xcache的缓存功能

                xcache.stat=On

                xcache.optimizer=Off xcache自身的优化器


                xcache.test=Off

                xcache.experimental=Off


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...