Docker容器内手动部署web项目php环境常见问题

   日期:2024-12-26    作者:cnup 移动:http://ljhr2012.riyuangf.com/mobile/quote/49378.html

docker部署web项目需要用到的服务:nginx,php,mysql

1、下载nginx镜像

 

 2、run一个nginx容器

 

参数说明

  • -p 8083:80: 端口映射,把 nginx 中的 80 映射到本地的 8083 端口。
  • ~/nginx/www: 是本地 html 文件的存储目录,/usr/share/nginx/html 是容器内 html 文件的存储目录。
  • ~/nginx/conf/conf.d: 是本地 nginx 配置文件的存储目录,/etc/nginx/conf.d 是容器内 nginx 配置文件的存储目录。
  • --link myphp-fpm:php: 把 myphp-fpm 的网络并入 nginx,并通过修改 nginx 的 /etc/hosts,把域名 php 映射成 127.0.0.1,让 nginx 通过 php:9000 访问 php-fpm。

 

 1、下载php镜像,版本:5.6(最新版也可以

 

 2、run一个php容器

 

参数说明

        1、--name myphp-fpm : 将容器命名为 myphp-fpm。

        2、-v ~/nginx/www:/www: 将主机中目录 ~/nginx/www 挂载到容器的 /www

3、在主机家目录下创建 ~/nginx/conf/conf.d目录,新建runoob-test-php.conf 文件 

 

4、添加以下内容到runoob-test-php.conf文件: 

 

5、在主机家目录下创建 ~/nginx/www 目录,新建index.php文件 

 

6、添加以下内容到index.php文件: 

 

7、浏览器输入主机ip:8083或直接在主机内curl localhost:8083查看php环境页面,能打开表示php部署成功。

 

1、下载mysql镜像

 

2、run一个mysql容器

 

参数说明

  • –link phpfpm:phpfpm   # 将此容器与phpfpm通过网络连接起来,这样在nginx容器里就可以访问到phpfpm容器里提供的phpfpm服务。
  • –link runoob-php-nginx:nginx   # 将此容器与nginx容器通过网络连接起来,在nginx容器以后即可以通过主机名访问到mysql容器进行链接数据库操作。
  • -e MYSQL_ROOT_PASSWORD=123456  # 设置mysql的root用户密码为123456
  • -p 3306:3306  # 映射容器端口

3、登录mysql进行测试

 

回车输入密码123456  看到以下内容表示mysql运行正常


Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 9
Server version: 8.0.27 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

mysql> 

4、复制项目内容到~/nginx/www 目录下

 5、部署完成,浏览器输入主机ip:8083访问主页

1、浏览器访问网站提示缓存目录写入权限不足、**目录创建失败、**文件写入失败

修改主机及nginx容器 www 目录权限

 

2、访问数据库出错

为php容器安装拓展(如果之前启用了gd,需要先在php.ini文件中注释掉extension=gd.so并重启容器后再执行以下步骤

 

执行完毕退出容器,并重启php容器。

3、缺少扩展gd库

 

4、网站图形验证码显示不出来

报错Fatal error: Call to undefined function coreextendcodeimagettftext()

解决方案

 

报错:configure: error: freetype-config not found.

解决方案


 

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号