当前位置: 首页 > 后端技术 > PHP

基于docker,快速搭建Nginx+Php+https本地开发环境,免去手动安装PHP扩展的烦恼

时间:2023-03-29 16:13:13 PHP

什么是NginxPhpDocker,它主要解决什么问题基于docker,快速搭建一个Nginx+Php本地开发环境(包括常用的PHP扩展),nginx、php的配置文件、日志文件和php项目代码都在宿主机上,这很容易修改。可以解决:新人加入团队,配置LNMP比较麻烦,属于重复性工作。Prod、staging和本地开发环境不一致。当地还好。staging之后,prod出现了各种问题。php扩展安装存在问题,如:mac电脑,本地多个php版本和扩展不一致(eg:memcache,memcached)项目新功能需要安装新的扩展。所有开发人员必须安装NginxPhpDockergithuburl1。如何使用它?1.1下载codegitclonegit@github.com:weiwenwang/NginxPhpDocker.gitcdNginxPhpDocker1.2启动php容器dockerrun-it-d\--namemyphp\-v$PWD/www/php:/www/php\-v$PWD/www/example:/www/example\--privileged=true\wangnan188/nginx-php-docker:v7.2-v11.3启动nginx容器dockerrun-it-d\-p80:80\-p443:443\-v$PWD/nginx-conf/conf.d:/etc/nginx/conf.d\-v$PWD/nginx-conf/nginx.conf:/etc/nginx/nginx.conf\-v$PWD/www/html:/www/html\-v$PWD/www/example:/www/example\-v$PWD/ssl/server.crt:/etc/nginx/ssl/server.crt\-v$PWD/ssl/server.key:/etc/nginx/ssl/server.key\-v$PWD/log/nginx:/var/log/nginx/\--link=myphp:myphp_alias\--privileged=真的\--name=mynginxnginx1.4注意事项,很重要1.2和1.3的两条指令必须执行NginxPhpDocker目录下的PHP代码文件夹,并且必须挂在PHP容器中,小伙伴使用时挂在nginx容器中在里面,nginx和PHP两个容器是隔离的,php只会根据地址在自己的容器中查找文件,而nginx只是通过fastcgi与nginx通信,nginx告诉php用户请求的文件地址,php找到对应的文件在自己的容器中执行完1.2和1.3后文件1.5是什么样子的?3.如何运行现有项目?我在这里举个例子。如果我们现在的项目(thinkphp_3.2.3_full)是用thinkphp框架写的,我怎么运行呢?第一步:将代码放在www/example/目录下第二步:添加配置文件nginx-conf/conf.d/example-thinkphp.conf,剩下的就是纯粹的nginx配置问题。做一个本地主机绑定:“127.0.0.1thinkphp-full.com”浏览器访问:http://thinkphp-full.com/inde...4、wangnan188/nginx-php-docker现在包含了哪些扩展?extensionstatusremark-extensionstatusremark-CoreYES--redisYES--ctypeYES--gdYES--curlYES--xdebugYES--dateYES--mongodbYES--domYES--swooleYES--fileinfoYES--memcachedYES--filterYES--memcacheNO--ftpYES--hashYES--iconvYES--jsonYES--libxmlYES--mbstringYES--mysqlndYES--opensslYES--pcreYES--PDOYES--pdo_sqliteYES--PharYES--posixYES--readlineYES--ReflectionYES--sessionYES--SimpleXMLYES--sodiumYES--SPLYES--sqlite3YES--standardYES--tokenizerYES--xmlYES--xmlreaderYES--xmlwriterYES--zlibYES--5.后续其他php扩展有补充,本文可能不再更新及时。最新版本请移步:github