以前我用debian系统编译安装了一个 lnmp 环境《这是一个我弄的Docker lnmp镜像基于Debian构建》虽然很稳定,但是由于php版本不高,导致我有些程序运行不了;
所以呢,我昨天尝试在 docker 容器中使用debian和 centos 系统重新编译lnmp一键安装脚本来安装php高版本,可惜尝试多次均已失败告终,浪费大量时间就是无法编译高版本的php和mysql;
既然没搞定,而且花费这么多时间去编译安装,,我何不直接用docker镜像来组合lnmp呢?甚至都不需要编译,触手可及;
通过谷歌搜索和youtube大佬视频介绍对比,我在GitHub中选择了一个开源项目nanoninja/docker- Nginx -php-mysql 地址: 全是英文看着有点点累,我把它用中文在这里重新记录一下,方便国人使用和自己以后看;
本文中的路径全部都是相对路径!!!!
PHP版本:7.2.2
Msql版本:5.7.21
(默认情况下未配置HTTPS)
phpmyadmin (用户名:dev,密码:dev)
关于phpmyadmin使用提示:
通过phpmyadmin连接数据库时,需要填写数据库服务地址,这个地址是数据库容器IP,我的ip是172.18.0.2
通过ps- ef命令可以找到数据库容器ip,或者直接打印全部docker 容器ip,找到数据库的ip地址就可以了,命令如下
docker inspect --format='{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $(docker ps -aq)Copy
默认网站目录为:web/public
汉化开始:
这是一个在Docker容器中运行Nginx, PHP-FPM, MySQL & PHPMyAdmin的项目,首先你的linux系统中需要安装,docker docker-compose git环境;
默认对应的端口为: | |
---|---|
环境 | 端口 |
mysql | 8989 |
phpmyadmin | 8080 |
nginx | 8000 |
nginx ssl | 3000 |
一、下载源码到本地然后切换到该目录:
git clone docker- nginx -php-mysqlCopy
二、生成SSL证书
source .env && sudo docker run --rm -v $(pwd)/etc/ssl:/certificates -e "SERVER=$NGINX_HOST" jacoelho/generate-certificateCopy
$(pwd)表示当前路径
$NGINX_HOST”绑定域名的意思,替换成自己的域名即可;
三、让SSL生效
编辑 vi etc/nginx/default.conf 配置文件,找到关于ssl的注释内容把#号全部删除让它生效;
server {
server_name localhost;
listen 443 ssl;
fastcgi_param HTTPS on;
ssl_certificate /etc/ssl/server.pem;
ssl_certificate_key /etc/ssl/server.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
index index.php index.html;
error_log / var /log/nginx/error.log;
access_log /var/log/nginx/access.log;
root /var/www/html/public;
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}Copy
四、编辑vi etc/php/php.ini,找到里面的IP地址,改成本机ip,不然运行的时候php会报错;
xdebug.remote_host=192.168.10.243 #改成本机ip地址Copy
五、复制 composer 配置文件
cp web/app/composer.json.dist web/app/composer.jsonCopy
六、运行启动lnmp环境
docker-compose up -dCopy
七、查看工作运行状态
docker-compose logs -fCopy
八、停止lnmp服务
docker-compose down -v