安装7.4.27-apache
docker pull php:7.4.27-apache
在本地新建几个文件夹
mkdir -p ~/lamp/www ~/lamp/apache2 ~/lamp/mysql
进入容器把apache2的配置文件都拷贝出来
docker run --name php-apache-74 -d php:7.4.27-apache
docker cp php-apache-74:/etc/apache2 ~/lamp
现在~/lamp/apache2目录下有各种apache2的配置文件了.
在~/lamp/www新建index.php
<?php
phpinfo();
?>
重新新建一个容器挂载对应配置
docker rm -f php-apache-74
docker run --name php-apache-74 -p 80:80 -d \
-v ~/lamp/www:/var/www/html:rw \
-v ~/lamp/apache2:/etc/apache2:ro \
php:7.4.27-apache
浏览器打开http://localhost
进入php:7.4.27-apache进行各种常用软件与扩展安装
docker exec -it php-apache-74 /bin/bash
安装常用组件与工具
cd /
更新下源
apt-get update
安装常用组件与工具
apt-get -y install wget libc-client-dev libkrb5-dev libzip-dev libzstd-dev vim zip unzip
=====安装git=====
apt-get install git
git config --global user.name "zhanglei"
git config --global user.email "jiayouzl@vip.qq.com"
git config --list
git --version
=================
安装常用php扩展
我们分别先安装:mysqli,exif,pod_mysql
先用php -m看下目前已加载的模块
root@ca7f28c4bf43:/# php -m
[PHP Modules]
Core
ctype
curl
date
dom
fileinfo
filter
ftp
hash
iconv
json
libxml
mbstring
mysqlnd
openssl
pcre
PDO
pdo_sqlite
Phar
posix
readline
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
zlib
[Zend Modules]
开始通过docker-php-ext-install安装扩展:
docker-php-ext-install mysqli
docker-php-ext-install exif
docker-php-ext-install pdo_mysql
安装后在用php -m看下已经加载的扩展会发现上面通过docker-php-ext-install安装的扩展都被加载了.
通过pecl安装redis扩展
pecl search redis
先装依赖
pecl install igbinary
在装redis
pecl install redis
提示全部y,y,y回车
cd /usr/local/etc/php/conf.d
vim upload.ini
按i后加入:
#加载模块
extension=igbinary.so
extension=redis.so
#上传最大M
upload_max_filesize=20M
#POST最大M
post_max_size=20M
#设置错误级别
error_reporting = E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
#设置时区
date.timezone = Asia/Shanghai
安装PHP composer
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
#换阿里云源(可选)
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer
外部调用composer
docker exec -it php-apache-74 /bin/bash -c 'composer -V'
重启容器让其生效
退出容器:
exit
重启容器:
docker restart php-apache-74
保存修改过的容器为新镜像,不然删除容器后全没了.
docker ps
docker commit ca7f28c4bf43 jiayouzltest/my-apache-php74:v1
直接上传到docker hub
docker push jiayouzltest/my-apache-php74:v1
到时候直接通过pull就能把刚才二次修改的镜像下来再来直接用
docker pull jiayouzltest/my-apache-php74:v1
运行容器
docker run --name php-apache-74 -p 80:80 -d \
-v ~/lamp/www:/var/www/html:rw \
-v ~/lamp/apache2:/etc/apache2:ro \
jiayouzltest/my-apache-php74:v1