| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> docker搭建Nginx+PHP踩坑日记 -> 正文阅读 |
|
[系统运维]docker搭建Nginx+PHP踩坑日记 |
最近学习docker,尝试着搭建一个php的运行环境。因为早期已经搭建了lnmp,所以第一部分是开始尝试,使用容器+宿机的结构;第二部分则是全部都使用docker搭建。
踩坑1:pull下Nginx镜像后,使用
运行。nginx容器正常运行。想使用docker exec -it 39a1f739d83d nginx进入nginx容器修改配置,报错:
可以正常进入容器。
3.关闭容器后,重新运行命令:
踩坑3:在宿机的/home/docker/nginx/conf/nginx.conf里修改配置,发现始终无法访问到指定目录的PHP文件,查看浏览器的响应,发现没有如下的PHP版本信息:
但是,我们的nginx在docker容器里,因此我们需要设置宿机的内网ip,ifconfig查看:
此前root的路径设置的宿机绝对路径,尝试修改root的路径为容器绝对路径,即:
此时html可以访问了
这是因为nginx版本不通,document_root高版本已不支持,需要写成绝对路径,要写成绝对宿机的路径,网上还有说法是要设置成容器的绝对路径(此说法也没错),我测试过,此时容器绝对路径依然是404,这部分后面搭建容器PHP时再做解释。我这里就是
关于root的路径,我测试了一下,必须设置容器绝对路径,否则会报错“踩坑6”
拒绝访问!检查/home/docker/nginx/log里的日志,发现报错:
这是因为默认security.limit_extensions只允许访问php,所以造成部分静态文件到PHP部分就出问题,打开注释,设置
重启PHP服务,请求成功
踩坑1:不确定是否是版本问题,我通过 docker pull php后,使用命令:
启动容器,发现网页报错502,在network中查看response,发现没有PHP的信息,并且此目录下html文件可以访问。我一开始以为内网ip地址问题,尝试过使用容器名字,容器内网ip都无效。然后怀疑是路径问题,但我使用了一下三种路径全都不行:
然后想查看日志,docker logs -f php,发现什么都没有
结合第一节踩坑5和踩坑第二节踩坑2,发现fastcgi_param SCRIPT_FILENAME /var/www/myblog/$fastcgi_script_name;这里的路径,是根据PHP的位置来的,可以根据自身情况调整 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 0:43:47- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |