docker部署php项目?
在PhpStrom中配置Docker作为本地开发环境通常在开发PHP项目时,大家都需要在本地安装PHP软件和composer,在进行单元测试时,还需要phpunit。
如果需要单元测试覆盖率,则应打开调试,本文将使用docker镜像来完成此操作。
以下是php7.3+composer2.1+phpunit9.5的dockerfile,大家也可以根据自己的需要修改,然后自己创建为镜像
我搭建好了,将镜像标记为phpstorm:7.3-composer,方便使用
也可以拖拽自己创建的镜像
需要在本地运行dockerdesktop
2.1点击配置》PHP》CLI解释器
2.2点击+》Formdocker》docker》选择第一步嵌入的镜像
23、添加成功后,如下图,我们可以看到php版本和xdebug版本的数字,然后点击Apply确认。
2.4配置成功,Phpstorm会自动生成路径映射放置项目根目录,目录设置完毕到容器中的/opt/project
3.1这个配置步骤比较简单。
看图就可以了
3.2安装并测试包
创建Composer.json文件,点击Composer中的【工具】》[作者]》[管理依赖项]》。
只需在json文件中输入包名称,然后单击安装即可。
如果执行成功,则这一步完成。
如果失败,您可以检查事件日志,看看是否缺少某些PHP扩展,然后将扩展安装到docker文件中,重建镜像,然后再次单击“安装Composer”。
重建镜像时无需重新配置phpstorm。
添加命令行工具,选择Composer
当看到Composer版本号输出时,配置就成功了一半。
我们来实现一下
我们看一下配置图
编写单元测试首先准备一个要测试的文件如下
然后点击【运行覆盖率】开始测试
如何使用docker私下编写PHP项目首先,从Docker容器中的PHP的HelloWorld实例开始。
我们准备PHP文件Index.php
?php?
echo?"PHP?in?Docker";
然后用同样的方式创建文本目录文件名Dockerfile及其为:
#?CreatedfromtheficialPHPimage?
Fromphp?
#index.ph将被复制到位于/var/www目录容器?
ADDindex.php?/var/www/?
#?暴露到外界8080端口?
检测到8080?
#?将容器的默认工作目录设置为/var/www?
WORKDIR/var/www/?
#?容器运行后默认执行的指令
ENTRYPOINT?["php",?"-S",?"0.0.0.0:8080"]
创建这个容器:
docker?build?-t?allovince/php-helloworld?。
运行这个容器
docker?run?-d?-p?8080:8080?allovince/php-helloworld
显示结果:
curl?localhost:8080
PHP?in?Docker
这样我们就创建了一个Docker容器来暴露PHP程序,任何安装了Docker的机器都可以运行这个容器来得到相同的结果。
任何拥有上述php文件和Dockerfile的人都可以创建同一个容器,从而彻底消除了不同环境、不同版本可能导致的不同问题。
想象一下,程序变得更加复杂,我们应该如何扩展它?直接的想法是继续在容器中安装其他使用过的服务并运行所有的服务,我们的Dockerfile很可能会演变成什么样子?这个:
谁
添加index.php?/var/www/
#?安装更多服务
RUN?
安装?-y?\?
mysql-server?\
?
nginx?\
?
php5-fpm?\
?
php5-mysql
#?编写一个启动脚本来启动所有服务ENTRYPOINT
?["/opt/bin/php-nginx-mysql-start.sh"]
虽然我们使用我构建了一个开发环境Docker,不过看起来有点眼熟。
是的,其实这个方法和创建虚拟机镜像类似
在Docker流行之前,搭建开发环境通常有两种选择:一是使用wamp、xampp、mamp等安装包进行集成开发环境,另一种是使用普通虚拟机安装Linux服务器,然后下载一键安装包(如:lnmp)或安装所需的软件一一进行。
前者虽然简单,但是不太灵活,安装额外的软件或版本会很困难,或者根本不知道如何上手,不仅需要很长时间,而且需要大量的本地资源。
资源,这可能会导致系统运行缓慢,而如果忘记及时创建快照,一旦出错就会后悔莫及。
幸运的是,Docker来了!它使用简单、灵活、方便、快捷,消除了上述所有缺点。
如果你想更详细地了解这位虚拟化行业的明星,传送门(快速了解Docker)。
安装Docker
通常的开发环境通常是Mac或Windows。
Linux方面还没有研究,所以只写这两个平台的步骤。
官方平台推荐使用APP和Toolbox两种安装方式。
注:申请方式有特定版本要求系统和配置,Windows要求您安装MicrosoftHyper-V虚拟化产品,详细信息请参见应用程序链接页面。
应用程序
工具包
以上方法主要会在你的系统中安装docker-engine、docker-machine、docker-compose和VirtualBox(Windows应用程序方法除外)。
由于docker严重依赖Linux内核提供的cgroup和namespace等功能和接口,因此Mac和Windows平台需要使用docker-machine和虚拟机在后台构建和运行Linux内核。
我的安装方法是在Mac上直接使用Brewe。
如果尚未安装Brew,请在终端中执行以下代码:
/usr/bin/Ruby-e"$.(curl-fsSL)"
安装docker包必填:
brewinstalldockerdocker-machinedocker-composevirtualbox
创建docker机器:
docker-machinecreate-dvirtualboxdefault
注意:-d指定使用virtualbox创建virtualbox作为机器名
告诉主机如何找到docker-machine:
echo$(docker-machineenv).zshrc
注意:这里的.zshrc是我的用户配置文件,如果你使用的是bash,可以将其更改为.bash_profile。
启动docker-machine:
docker-machinestartdefaultCompose您的应用程序
docker-compose是一个用于定义和运行复杂Docker应用程序的工具。
您可以在docker-compose.yml文件中定义一个多容器应用程序,然后使用命令启动它,之后所有预定义的操作都会自动完成。
为了不重新发明轮子,直接使用GitHub上的第三方包。
当然,你也可以自己创建自己需要的各个容器镜像,然后使用docker-compose.yml组织所有容器来运行,但这需要你有一定的Linux基础、Docker运行机制以及相关语法。
我正在学习laradock,一个基于Docker的开发环境包,然后删除了一些我认为不常用的部分,修改了一些配置,根据自己的需求添加了Elasticsearch容器,最后开启我的新DevDock存储库。
当然,也推荐Laradoc。
我的存储库当前支持的容器组:
nginx、php-fpm、mysql、redis、mongo、apache2、memcached、Elasticsearch、Workspace。
注意:workspace和php-fpm一般依赖于其他容器,因此它们会自动运行,不需要在启动时指定。
输入应用程序的顶级目录:
gitclone
修改主机
如果直接安装并运行它,可以使用DockerIP:192.168.99.100,并且可以直接访问nginx,但一般情况下,对于为了方便记忆,我们修改hosts文件,添加一个:
192.168.99.100laravel.dev
修改你的nginx中的站点配置文件:
在DevDock目录中搜索nginx,修改Sites目录下的站点配置文件,修改localhosts域名分配,并修改nginx容器中Sites文件夹下对应的域名映射。
server_namelaravel.dev
安装启动应用
cdDevDockdocker-composeup-dnginxmysql #按照你要使用的容器即可
然后耐心等待开发环境自动搭建完成。
如果过程中出现错误,一般是GFW的原因,网络会不顺畅,重做一两次就可以了。
打开浏览器并访问:是。
如何使用ZendStudio创建PHP项目
ZendStudio是我们常用的PHP开发工具。
那么如何在ZendStudio中创建PHP项目呢?下面就和大家分享一下。
ZendStudio
01首先,打开ZendStudio软件,点击左上角的“文件”菜单,然后在下拉菜单中选择“新建”选项下拉菜单如下图
02接下来,在出现的新建项目界面中,我们展开PHP文件夹下的,选择PHPProject,如下图如图
03然后您将到达项目配置界面。
这里您需要为项目命名,如下图所示
然后继续。
单击“下一步”按钮。
最后会出现“Finish”按钮,表示项目配置完成,如下图。
完成上述设置后步骤现在开始PHP项目的基本结构创建完成后,ZendStudio会自动将文件夹分配到项目目录,如下图所示
06下一步是在项目文件夹下添加子文件夹,因为对于较大的项目,每个模块都在单独的文件夹中归档,如如下图所示。
需要注意的是,子文件夹的名称必须是有意义的
下一步是在每个子文件夹中创建特定的PHP文件。
这一步基本上就完成了PHP项目的创建,如下图
在这种情况下,您需要将它们添加到IncludePath中,如下图所示。
如何使用zendstudio创建一个本地工程
要在ZendStudio中启动本地项目,首先打开软件,点击文件菜单,进入创建新项目的过程。在新的项目创建菜单中,您可以看到多种类型的PHP项目选项,例如从CVS、Git、GitHub、ZendDeveloperCloud、SVN、本地PHP项目、现有目录和远程服务器创建项目。
本文主要讲解如何创建本地PHP项目。
其他类型项目的将在以后的文章中介绍。
接下来,选择“本地PHP项目”选项。
在“项目名称”字段中,输入项目名称,例如“my_first_project”。
默认的项目保存路径为C:\Users\Administrator\Zend\workspaces\DefaultWorkspace,用户可以根据需要更改为其他路径。
一般情况下,选择可以选择“基本”。
根据您的PHP版本选择版本信息。
单击“下一步”并选择默认启动URL。
在服务器设置中,用户需要创建一个新的服务器。
如果系统中已经创建了服务器,则会显示多个服务器选项。
单击“新建服务器”按钮,弹出新窗口,按照向导完成服务器创建。
完成后,服务器名称将显示在“主机”列中。
单击完成按钮完成项目创建过程。
至此,本地PHP项目已经成功创建。
用户可以开始编辑新项目的代码。
[游戏服务器相关]如何在Mac安装PHP环境并创建项目并运行。
要在Mac上安装PHP环境并创建和运行项目,首先需要安装Homebrew。在终端中运行以下命令进行安装:/bin/bash-c"$(curl-fsSLraw.githubusercontent.com/install-homebrew/brew/install.sh)"安装完成后,需要添加环境终端中的变量。
执行以下命令:(echo;echo'eval"$(/opt/homebrew/bin/brewshellenv)"')>>/users/username/.bash_profile然后运行:eval"$(/opt/homebrew/bin/)brewshellenv)"完成Homebrew配置。
接下来,使用Homebrew安装PHP,在终端中输入并运行:brewinstallphp来验证安装是否成功。
为了简化开发,您可以安装PHPStorm,它支持强大的IDE和AI插件。
创建一个新项目并将其命名为“main.php”。
使用PHPStorm打开项目文件夹。
使用命令启动服务器:php-Slocalhost:8000将端口号8000替换为所需的端口号。
在浏览器中访问生成的页面,验证项目是否成功运行。
如果您想将PHP项目部署到MacDocker虚拟机中的Linux环境中,请将PHP及相关依赖项安装在Docker容器中,并将项目文件放入容器中并通过Docker网络映射到主机端口。
远程访问。
在实际部署过程中,还应考虑安全和资源管理,以保证服务器环境的稳定运行。
完成协议后,您可以使用对应的Docker容器IP地址和端口号访问项目页面,验证服务器是否配置正确并能够正常对外提供服务。