php7已经出来好一段时间了,众所周知它对性能的提升很大。现在假设我们有台比较老的服务器,系统是centos6,上面运行着一些老旧项目,其默认自带的php版本是5.3 。
虽然说,我们可以升级到php7版本,但是,老旧不兼容php7,我们不能一刀切。最好的方式是php5.3和php7共存。所以,我们可以考虑利用docker来安装其他版本的php,既能保证环境独立,又极少造成性能损耗。
下面以安装php7版本为例,介绍下具体做法。
centos6安装docker :
1
2
3
|
yum install -y https: //get .docker.com /rpm/1 .7.1 /centos-6/RPMS/x86_64/docker-engine-1 .7.1-1.el6.x86_64.rpm
service docker start
chkconfig docker on
|
拉取php7.2镜像
1
|
docker pull php:7.2-fpm
|
新建目录以及文件/usr/local/docker-php7/zz-docker.conf ,保存以下内容:
1
2
3
4
|
[global]
daemonize = no
[www]
listen = 9001
|
;修改php.ini里面的变量就修改php_value数组相应的属性就好
1
2
3
4
5
6
7
|
php_value[session.save_handler] = redis
php_value[session.save_path] = tcp: //127 .0.0.1:6379
php_value[post_max_size] = 20M
php_value[upload_max_filesize] = 20M
php_value[ date .timezone] = Asia /Shanghai
php_value[opcache. enable ] = 1
php_value[opcache.enable_cli] = 1
|
运行容器,使用host模式跟宿主机通讯
1
|
docker run -d - v /var/www/html : /var/www/html - v /usr/local/docker-php7/zz-docker .conf: /usr/local/etc/php-fpm .d /zz-docker .conf --net=host --name php7.2 php:7.2-fpm
|
安装各种常用php扩展
1
2
3
4
5
6
7
8
9
10
11
12
|
docker exec php7.2 apt-get update -y
docker exec php7.2 apt-get install -y libfreetype6-dev
docker exec php7.2 apt-get install -y libjpeg62-turbo-dev
docker exec php7.2 apt-get install -y libpng-dev
docker exec php7.2 docker-php-ext- install pdo_mysql
docker exec php7.2 docker-php-ext- install mysqli
docker exec php7.2 docker-php-ext- install iconv
docker exec php7.2 docker-php-ext- install gd
docker exec php7.2 docker-php-ext- install mbstring
docker exec php7.2 docker-php-ext- install opcache
#顺便改下配置
docker exec php7.2 mv /usr/local/etc/php/php .ini-production /usr/local/etc/php/php .ini
|
由于无法通过 docker-php-ext-install
安装redis扩展,所以需要手动安装下
1
2
3
4
5
6
7
8
9
|
#进入容器里的命令行
docker exec -it php7.2 sh
docker-php- source extract
curl -L -o /tmp/redis . tar .gz https: //github .com /phpredis/phpredis/archive/4 .2.0. tar .gz
tar -zxvf /tmp/redis . tar .gz -C /usr/src/php/ext
mv /usr/src/php/ext/phpredis- * /usr/src/php/ext/phpredis
docker-php-ext- install phpredis
#到这里按ctr+p 和 ctrl+q 以退出容器
docker restart php7.2
|
以上命令已经成功在9001端口运行了php7.2。接下来只要在nginx的配置里php脚本指向到9001端口即可(原来是指向9000端口)
总结
以上所述是小编给大家介绍的使用docker在服务器运行多个php版本,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.star7th.com/2019/04/2348.html