您的位置:

centosphpmysqlnd的简单介绍

本文目录一览:

请教centos php 多版本安装共存切换

Linux下部署php多版本共存

背景说明

自php7问世,身为最新版本控的我马上升级体验,但是由于服务器上还有旧程序在运行,只好部署一个php多版本共存环境。

现有环境是lnmp

- CentOS 6.7

- nginx 1.10.1

- mariadb-10.0.26

- php 7.0.8

为了更好兼容旧的php程序,推荐使用5.4.45. 主要是兼容mysql扩展。

开始安装

首先要下载php-5.4.45.tar.gz源码包。

通过源码安装

# tar xzvf php-5.4.45.tar.gz

# cd php-5.4.45

# ./configure --prefix=/usr/local/php54 --with-config-file-path=/usr/local/php54/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --disable-fileinfo --enable-intl --with-xsl

# make ZEND_EXTRA_LIBS='-liconv'

# make install

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

------------------------------------------------------------------------------------------------

php.ini 配置

post_max_size = 50M

upload_max_filesize = 50M

date.timezone = PRC

short_open_tag = On

cgi.fix_pathinfo=0

max_execution_time = 300

disable_functions=passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,popen,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server

------------------------------------------------------------------------------------------------

php-fpm.conf 配置

------------------------------

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

[global]

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

error_log = /usr/local/php54/var/log/php-fpm.log

log_level = notice

[www]

listen = /tmp/php54-cgi.sock

listen.backlog = -1

listen.allowed_clients = 127.0.0.1:9001

listen.owner = www

listen.group = www

listen.mode = 0666

user = www

group = www

pm = dynamic

pm.max_children = 40

pm.start_servers = 20

pm.min_spare_servers = 20

pm.max_spare_servers = 40

request_terminate_timeout = 100

request_slowlog_timeout = 0

slowlog = var/log/slow.log

----------------------------------------------------------------------------------

启动 php-fpm

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

# chmod +x /etc/init.d/php54-fpm

# /etc/init.d/php54-fpm start

-------------------------------------------------------------------------------------------

修改nginx配置,对需要的服务配置使用php-5.4.45

location ~ [^/]\.php(/|$)

{

try_files $uri =404;

fastcgi_pass unix:/tmp/php54-cgi.sock;

fastcgi_index index.php;

include fastcgi.conf;

}

----------------------------------------------------------------------------------------

配置php-5.4.45 的php54-fpm 开机自动启动

# chkconfig --add php54-fpm

# chkconfig php54-fpm on

centos 6.0安装php-5.2.17报错: 前提是mysql已经安装,已经成功启动OK

1、no mysql_config not found configure: error

2、你的配置

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

--with-mysqli=/usr/local/mysql/bin/ mysql_config 查查这个地方,似乎有个空格

--with-mysql-sock=/tmp/mysql.sock

3、确认已经安装mysql-devel

rpm -qa|grep mysql-devel

4、如果php5.3可以用mysqlnd (MySQL native driver for PHP)

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd

centos的php7怎么安装memcached扩展

最近试了一下PHP7,在编译和支持MySQL上都遇到一些问题,相信不少同学也同样遇到,所以在这里聊一下这个过程。简单来讲编译PHP7只需要3步:1、./buildconf --force2、./configure3、make make install1、3步,都没啥好管的,configure是编译的关键,涉及到PHP对一些库的支持,这里我们使用最小的支持,包括MySQL:curlgdfpmmysqlnd之所以把curl和gd拿来说,目的是要搞清楚,这些三方库在编译PHP之前得安装好,可以直接使用yum安装在默认位置,也可以编译安装到指定位置,yum安装后,编译时不用指定库的安装位置,关于安装这些库,可以搜索一下有很多。下面看看基本的configure./configure --prefix=/apps/php/php7.0 --enable-mbstring --with-curl --with-gd --with-config-file-path=/apps/php/php7.0/etc/ --enable-fpm --enable-mysqlnd --with-pdo-mysql=mysqlndPHP-FPM关于fpm,相信不用多说,用它来支持PHP是一个比较好的选择,PHP5.3.3开始就已经内置了php-fpm,所以PHP7里当然也有,只需要--enable-fpm一下就可以了php-fpm参数:--start 启动--stop 强制终止--quit 平滑终止--restart 重启--reload 重新平滑加载php的php.ini--logrotate 重新启用log文件MySQL支持重点讲一下这个,因为在它上面花了一点时间,不知道从哪一版本开始,PHP不在希望使用mysql的库来支持mysql的连接,启用了mysqlnd来支持,听说比libmysql要快很多,PHP5.x还可以使用libmysql,PHP7貌似已经取消了支持,编译都没有了--with-mysql参数,只支持--with-mysqli和--with-pdo-mysql,可以通过查看configure的参数来知道:./configure -help grep mysql 可以看到,PHP希望使用mysqlnd来支持MySQL,所以参数可以这样写:--enable-mysqlnd--with-mysqli=mysqlnd--with-pdo-mysql=mysqlndmysqlnd是不需要mysql支持的,所以不用先安装好mysql一样可以编译通过,启动php-fpm,查看一下phpinfo,能看到mysqlnd和pdo_mysql表示php已经可以支持mysql了(这里用的是pdo,mysqli同理)几个问题编译问题:cc: Internal error: Killed (program cc1)这个问题是第一次遇到,原来是我的阿里云服务器关掉了swap,内存不够用,就报了这个错。 解决办法很简单,configure时加上--disable-fileinfo参数就可以了。PHP报找不到mysql服务正如它所说,确实没找到,看看phpinfo中pdo_mysql.default_socket项mysql.sock在哪里,再看一下mysql.sock的真正位置,使用命令:ps -efgrep mysql查看:明显不在一个位置上,我的正确位置是:/var/lib/mysql/mysql.sock所以,修改一下php.ini,找到pdo_mysql.default_socket,改为你的实际位置,重启一下php-fpm,很不幸,虽然php.ini有这个配置,修改后,竟然不行,最好是编译的时候,指定mysql.socket的位置:--with-mysql-sock=/var/lib/mysql/mysql.sock 如果还不行,可以到/tmp目录下建立一个mysql.sock的软链接:ln -s /var/lib/mysql/mysql.sock mysql.sock 再重启一次php-fpm,相信已经正常运行了。如果需要PHP支持的库更多,可以再次编译,在configure时把需要的支持加上,就是--with-xxx这中,记得如果是三方的,要先安装这些库才行哦。