使用docker在服務(wù)器運(yùn)行多個(gè)php版本
php7已經(jīng)出來(lái)好一段時(shí)間了,眾所周知它對(duì)性能的提升很大?,F(xiàn)在假設(shè)我們有臺(tái)比較老的服務(wù)器,系統(tǒng)是centos6,上面運(yùn)行著一些老舊項(xiàng)目,其默認(rèn)自帶的php版本是5.3 。
雖然說(shuō),我們可以升級(jí)到php7版本,但是,老舊不兼容php7,我們不能一刀切。最好的方式是php5.3和php7共存。所以,我們可以考慮利用docker來(lái)安裝其他版本的php,既能保證環(huán)境獨(dú)立,又極少造成性能損耗。
下面以安裝php7版本為例,介紹下具體做法。
centos6安裝docker :
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鏡像
docker pull php:7.2-fpm
新建目錄以及文件/usr/local/docker-php7/zz-docker.conf ,保存以下內(nèi)容:
[global] daemonize = no [www] listen = 9001
;修改php.ini里面的變量就修改php_value數(shù)組相應(yīng)的屬性就好
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
運(yùn)行容器,使用host模式跟宿主機(jī)通訊
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擴(kuò)展
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
由于無(wú)法通過(guò) docker-php-ext-install
安裝redis擴(kuò)展,所以需要手動(dòng)安裝下
#進(jìn)入容器里的命令行 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
以上命令已經(jīng)成功在9001端口運(yùn)行了php7.2。接下來(lái)只要在nginx的配置里php腳本指向到9001端口即可(原來(lái)是指向9000端口)
總結(jié)
以上所述是小編給大家介紹的使用docker在服務(wù)器運(yùn)行多個(gè)php版本,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Docker 動(dòng)態(tài)修改容器端口映射的方法
這篇文章主要介紹了Docker 動(dòng)態(tài)修改容器端口映射的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01Docker獲取鏡像報(bào)錯(cuò)docker: Error response from daemon
這篇文章主要介紹了Docker獲取鏡像報(bào)錯(cuò)docker: Error response from daemon, 出現(xiàn)了鏡像獲取報(bào)錯(cuò)的問(wèn)題,找到了解決的方法記一下,需要的朋友可以參考下2018-08-08Docker安裝Jenkins的實(shí)現(xiàn)步驟
版本與jdk版本以及各類插件有對(duì)應(yīng)關(guān)系,所以普通安裝較為麻煩,本文主要介紹了Docker安裝Jenkins的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01Docker 制作鏡像Dockerfile和commit操作
這篇文章主要介紹了Docker 制作鏡像Dockerfile和commit操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11docker容器調(diào)用yum報(bào)錯(cuò)的解決辦法
在本篇文章里小編給大家分享的是關(guān)于docker容器調(diào)用yum報(bào)錯(cuò)的解決辦法,有興趣的朋友們可以參考下。2020-03-03Docker安裝Mosquitto的實(shí)現(xiàn)示例
mosquitto是一個(gè)常用的MQTT應(yīng)用服務(wù),本文主要介紹了Docker安裝Mosquitto的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn)
本文主要介紹了淺談Docker consul的容器服務(wù)更新與發(fā)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-06-06