标签:php7.1 log tail install efault das 定向 grep test
添加remi源:
见:软件安装&仓库\2_yum源收集
===================================================================
安装7.2
搜索扩展:
yum list install "php*" --disablerepo=remi-safe,epel,base --enablerepo=remi-php72
===================================================================
安装7.0
搜索扩展:
yum list install "php*" --disablerepo=remi-safe,epel,base --enablerepo=remi-php70
===================================================================
安装5.6
搜索扩展:
yum list install "php*" --disablerepo=remi-safe,epel
安装:
yum install php.x86_64 php-cli.x86_64 php-common.x86_64 php-fpm.x86_64 \
php-mcrypt.x86_64 php-gd.x86_64 php-mbstring.x86_64 php-mysqlnd.x86_64 php-opcache.x86_64 php-pdo.x86_64 php-pear.noarch php-pecl-http.x86_64 php-pecl-jsonc.x86_64 php-pecl-memcache.x86_64 php-pecl-memcached.x86_64 php-pecl-mongo.x86_64 php-pecl-redis.x86_64 php-pecl-swoole.x86_64 php-pecl-xdebug.x86_64 php-process.x86_64 php-xml.x86_64 php-pecl-amqp.x86_64 php-bcmath.x86_64 php-pecl-event.x86_64 --enablerepo=remi-php56,remi
http://php.net/manual/zh/configure.about.php
./configure --help
./configure --help | grep ‘xxx’查找某个配置项
--prefix 指定php安装目录
--with-config-file-path 指定配置文件(php.ini)所在目录
如:--with-config-file-path=/usr/local/php/etc
--enable-debug
激活调试模式
--with-apxs2=/usr/bin/apxs
apache相关的配置(这里会在/usr/lib64/httpd/modules生成libphp5.so 模块)
--enable-maintainer-zts
开启php的线程安全机制(Thread Safe Resource Manager(TSRM)/Zend Thread Safety(ZTS))
--enable-embed
php的嵌入式开发的场景中。平时我们把php作为apache的一个module进行编译,得到libphp5.so,而这个选项便使php编译后得到一个与我们设定的SAPI相对应的结果。
==========================
--with-pear 安装pear扩展,并指定pear和pecl包的安装路径,默认路径是[prefix]/lib/php
--without-pear --disable-phar
http://www.cnblogs.com/tjxwg/p/3967744.html
安装5.1.2时,make 的时候报错: PEAR package PHP_Archive not installed: generated phar will require PHP‘s phar extension be enabled.
这个错误的意思是,php编译时默认是会依赖pear package,而现在pear还没有安装,所以编译会出问题的。
因此需要再configure的时候就指定参数--without-pear --disable-phar。
--without-pear就是使得php的编译不再依赖pear package,但由于phar是pear的子库,所以需要—disable-phar把phar这个模块也关掉。
当执行make install命令,后再执行下面的操作安装pear包即可。
wget http://pear.php.net/go-pear.phar
php go-pear.phar
==========================
--enable-fpm 开启php-fpm
--with-fpm-systemd 把php-fpm加入到systemctrl管理
--with-pdo-mysql 开启mysql pdo扩展
--enable-mysqlnd 使用mysqlnd驱动,mysql推荐就是使用此驱动
--with-gd 开启gd扩展
--enable-mbstring 开启mbstring扩展
--with-curl 开启curl扩展
--enable-bcmath 开启bcmatch扩展
--with-openssl 开启openssl扩展
--with-libxml 开启xml扩展
http://jingyan.baidu.com/article/e9fb46e1a3eb277521f76619.html
PEAR是PHP的上层扩展,PECL是PHP的底层扩展。它们都是为特定的应用提供现成的函数或者类。
==================================================
PEAR的所有扩展都是用纯粹的PHP代码编写的,用户在下载到PEAR 扩展以后可以直接使用将扩展的代码包含(include)到自己的PHP 文件中使用,如:memcached库。PEAR目前比较少用,已经被Composer代替了。
==================================================
PECL是使用C 语言开发的,需要通过生成一个so文件(动态链接文件)然后在php.ini文件中include对应的so文件,
注意:无论是核心扩展或是非核心扩展,都属于PECL
http://pear.php.net/manual/en/
https://www.ibm.com/developerworks/cn/linux/sdk/php/pear1/index.html
https://pear.php.net/manual/en/installation.getting.php
wget http://pear.php.net/go-pear.phar
php go-pear.phar
安装完添加命令映射:
ln -sf /usr/local/php/bin/pear /usr/local/bin/pear
ln -sf /usr/local/php/bin/pecl /usr/local/bin/pecl
如果不用上面这种方式,也可以在编译php源码包的时候安装(使用--with-pear参数)
安装后,
首先要确保pear包所在目录已经加入到配置的include_path中:
然后直接在php代码include对应的php文件即可。
http://pear.php.net/manual/en/guide.users.commandline.commands.php
pear 查看所有pear相关命令
pear install xxx 安装某个pear包,安装后的包放在:/usr/share/pear目录
pear list 列出已经安装的pear包
pear list-channels
pear config-show 查看pear的配置
pear config-get 查看某项配置
pear config-set 设置某项配置
http://php.net/manual/zh/install.pecl.intro.php
把PECL扩展库静态编译到PHP源码包,那么以后就可以跟核心模块一样使用configure参数配置安装模块。
pecl 查看所有pecl相关命令
pecl install xxx 安装某个pecl包,安装后的包放在:/usr/local/php/lib/php/extensions/debug-non-zts-20131226目录
pecl list 列出已经安装的pecl包
pecl list-channels
pecl channel-update pecl.php.net 更新channel
pecl config-show 查看pecl的配置
pecl config-get 查看某项配置
pecl config-set 设置某项配置
vim extension-7.0.32.sh
phpIni=/usr/local/php-7.1.11/lib/php.ini
pecl install redis-3.1.5
pecl install xdebug-2.6.0
pecl install swoole-1.10.3
pecl install yar-2.0.4
pecl install imagick-3.4.3
pecl install yar-2.0.4
pecl install mongodb-1.3.4
pecl install event-2.3.0
安装lib
cd /usr/local/src/
wget https://github.com/alanxz/rabbitmq-c/releases/download/v0.7.1/rabbitmq-c-0.7.1.tar.gz
tar -zxvf rabbitmq-c-0.7.1.tar.gz
cd rabbitmq-c-0.7.1/
./configure --prefix=/usr/local/rabbitmq-c-0.7.1
make -j4 && make install
pecl install amqp-1.9.3
之后如果要填写路径,则填写:/usr/local/rabbitmq-c-0.7.1
extension = amqp.so
http://pecl.php.net/package/memcached
http://www.cnblogs.com/dyllove98/archive/2014/11/27/4126840.html
安装libmemcached(安装php memcached扩展前需安装libmemcached)
wget https://launchpad.net/libmemcached/1.0/1.0.17/+download/libmemcached-1.0.17.tar.gz
===============================================================================
安装memcached扩展
(安装memcached-2.2.0.tgz这个版本没有问题、安装memcached-3.0.3.tgz就一直报错,原因是3.0版本开始都是需要php7的,见:这里)
扩展安装成功会有这么一条记录。
===============================================================================
使用pecl安装
php 5.6.30:
pecl install memcached-2.2.0
extension=memcached.so
php 7.1.11:
pecl install memcached
extension=memcached.so
安装时会要求输入libmemcached的路径,输入/usr/local/libmemcached即可
http://pecl.php.net/package/redis
php 5.6.30:
pecl install redis-2.2.8
extension=redis.so
=======================
php 7.1.11:
pecl install redis-3.1.5
http://pecl.php.net/package/xdebug
pecl install xdebug
添加配置:
php 5.6.30:
zend_extension=/usr/local/php-5.6.30/lib/php/extensions/debug-non-zts-20131226/xdebug.so
php 7.1.11:
zend_extension=/usr/local/php-7.1.11/lib/php/extensions/debug-non-zts-20160303/xdebug.so
php 7.2.1
暂时不支持安装
swoole官网提供的:
https://github.com/swoole/swoole-src
pecl 官网提供的:
http://pecl.php.net/package/swoole
php 5.6.30:
pecl install swoole-1.9.23
php 7.1.11:
pecl install swoole
cd /usr/local/src
wget http://cloud.github.com/downloads/libevent/libevent/libevent-2.0.20-stable.tar.gz
tar zxvf libevent-2.0.20-stable.tar.gz
cd libevent-2.0.20-stable/
./configure --prefix=/usr/local/libevent/
make && make install
or
yum install libevent-devel
php 5.6.30:
pecl install libevent-0.1.0
extension=libevent.so
===================================
php 7.1.11:
php7不能采用pecl安装,估计还没更新吧。参考:这里
cd /usr/local/src
wget https://github.com/expressif/pecl-event-libevent/archive/master.zip -O pecl-event-libevent.zip
unzip pecl-event-libevent.zip
cd pecl-event-libevent-master/
phpize
./configure --with-php-config=php-config
make && make install
===================================
添加到php.ini:
extension=libevent.so
php 7.1.11:
pecl install event=2.3.0
extension=event.so
php 7.1.11:
pecl install yar-2.0.4
extension=yar.so
php 7.1.11:
pecl install mongodb-1.3.4
extension=yar.so
yum install -y ImageMagick ImageMagick-devel
php 7.1.11:
pecl install imagick-3.4.3
extension=imagick.so
切换到php-7.2.1
rm -f /usr/local/php && ln -sf /usr/local/php-7.2.1/ /usr/local/php
killall php-fpm && php-fpm -y /etc/php-fpm.conf -c /usr/local/php/lib/php.ini
=======================================================================
切换到php-7.1.11
rm -f /usr/local/php && ln -sf /usr/local/php-7.1.11/ /usr/local/php
killall php-fpm && php-fpm -y /etc/php-fpm.conf -c /usr/local/php/lib/php.ini
=======================================================================
要切换到php-7.0.32
rm -f /usr/local/php && ln -sf /usr/local/php-7.0.32/ /usr/local/php
killall php-fpm && php-fpm -y /etc/php-fpm.conf -c /usr/local/php/lib/php.ini
=======================================================================
切换到php-5.6.30
rm -f /usr/local/php && ln -sf /usr/local/php-5.6.30/ /usr/local/php
killall php-fpm && php-fpm -y /etc/php-fpm.conf -c /usr/local/php/lib/php.ini
ln -sf /usr/local/php/bin/php /usr/local/bin/php && \
ln -sf /usr/local/php/bin/php-config /usr/local/bin/php-config && \
ln -sf /usr/local/php/bin/phpize /usr/local/bin/phpize && \
ln -sf /usr/local/php/bin/php-cgi /usr/local/bin/php-cgi && \
ln -sf /usr/local/php/bin/pecl /usr/local/bin/pecl && \
ln -sf /usr/local/php/bin/pear /usr/local/bin/pear
ln -sf /usr/local/php/sbin/php-fpm /usr/local/bin/php-fpm
=========================
如果不想创建上面的ln,可以直接修改PATH为:export PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH
php --ini 获取php加载的php.ini文件路径
此路径可以在安装php时通过参数--with-config-file-path
===================================================================================
安装php后,可以从php源码包中复制一份php.ini到php --ini命令指定的目录
如:cd /usr/local/src/php-5.6.30/ && cp php.ini-development /usr/local/php/lib/php.ini
===================================================================================
关于php.ini配置文件的备份,见:相关目录。
安装php后,会生成php-fpm的配置文件,我们需要复制一下:
cp /usr/local/php-7.1.11/etc/php-fpm.conf.default /etc/php-fpm.conf
cp -r /usr/local/php-7.1.11/etc/php-fpm.d/ /etc/
当然,你也可以沿用之前使用yum方式安装的配置文件。
===================================================================================
关于php-fpm配置文件的备份,见:相关目录。
===================================================================================
启动php-fpm,php-fpm -y /etc/php-fpm.conf -c /usr/local/php/lib/php.ini
安装lib
yum install -y \
libxml2-devel.x86_64 \
libpng libpng-devel libjpeg-turbo libjpeg-turbo-devel freetype freetype-devel gd \
libmcrypt libmcrypt-devel \
postgresql-devel
======================================================================================
# 添加用户
执行命令:
useradd www
# 创建相关目录
mkdir /var/log/php-fpm/
chown www:www /var/log/php-fpm/
======================================================================================
# 配置参数
执行命令:
./configure --prefix=/usr/local/php-7.1.11/ \
./configure --prefix=/usr/local/php-7.0.32/ \
--enable-fpm --with-fpm-user=www --with-fpm-group=www --with-fpm-systemd=no \
--enable-debug \
--enable-mysqlnd --with-mysqli --with-pdo-mysql --with-pdo-pgsql \
--enable-pcntl \
--enable-sysvsem --enable-sysvshm --enable-sysvmsg \
--with-gd --with-zlib --with-png-dir --with-jpeg-dir --with-freetype-dir \
--enable-zip \
--enable-mbstring \
--with-curl \
--enable-bcmath \
--with-openssl \
--enable-sockets \
--enable-soap \
--with-mcrypt \
--with-pear
======================================================================================
# 安装
执行命令:
make -j8 && make install
======================================================================================
安装成功会展示文件路径。可以看到php-7.1.11的安装路径中所有的东西都是安装在/user/local目录下面,所以一旦要卸载php,直接把php-7.1.11目录删除就可以了,非常方便。
======================================================================================
# 配置参数
执行命令:
参考php7.1.11安装,改一下--prefix=/usr/local/php-7.0.32/ 即可。
======================================================================================
# 安装
执行命令:
make -j8 && make install
http://www.cnblogs.com/brishenzhou/p/6140699.html
./configure --prefix=/usr/local/php-5.6.30/ --with-config-file-path=/usr/local/php-5.6.30/lib\
--enable-fpm --enable-debug \
--with-pdo-mysql --enable-mysqlnd \
--with-gd --with-zlib --with-png-dir --with-jpeg-dir --with-freetype-dir \
--enable-mbstring --with-curl --enable-bcmath --with-openssl --enable-pcntl --enable-sockets \
--with-pear
6. make -j8&& make install (安装完之后,可以选择性地执行make test,有什么作用?)
安装成功会展示文件路径。可以看到php5.6.30的安装路径中所有的东西都是安装在/user/local目录下面,所以一旦要卸载php,直接把php-5.6.30目录删除就可以了,非常方便。而php5.6.12的安装路径就比较分散一点了。
http://bovin.szecp.com/?p=76 (编译php遇到的各种问题)
./configure --prefix=/usr/local/php/ --enable-debug --enable-maintainer-zts
的时候有时候会说
error: xml2-config not found. Please check your libxml2 installation.
这个时候就可以用yum命令去安装
yum install libxml2-devel.x86_64
见:configure参数中--without-pear --disable-phar说明
http://blog.csdn.net/lovely_1014/article/details/54023976
如果./configure 中有--with-gd参数就有可能报这个错误。
需要安装libpng和devel
yum install libpng libpng-devel
指定curl目录即可
--with-curl=/usr/local/bin/curl
gd库特别难安装,主要就是jpeg和free type库的问题,采用yum方式安装lib后,--with-freetype-dir和--with-jpeg-dir选项一直没有生效,--with-freetype-dir和--with-jpeg-dir指定的路径不知道应该指定什么。后来找到的原因是重新编译时需要make clean。
/usr/local/bin/php
/usr/local/bin/phpize
其实是在源码的根目录下就可以找到了。 = =!
php.ini-development or php.ini-production
把这些配置文件复制到
/usr/local/php/lib/php.ini
如果搭建的环境是lamp,那么生成的libphp5.so生成在目录/usr/lib64/httpd/modules/下
标签:php7.1 log tail install efault das 定向 grep test
原文地址:https://www.cnblogs.com/jasonzhi/p/10159388.html