1. php网站程序开发需要哪些基础
php基础语法,了解web开发流程,session,cookie机制
熟悉一款框架, thinkphp, yii,phlacon,swoft(swoole)。现在还得熟悉docker,docker-compose使用,能够使用linux环境写代码(推荐deepin系统)
会使用redis,现在基本都是redis做缓存中间件
会配置nginx,linux下源码编译nginx(网络能搞定即可,至少知道./configure && make && make install)
会sql语句, linux下源码编译mysql(网络能搞定即可,至少知道./configure && make && make install)
基础的html, js, css阅读修改能力
编程思想,这个很抽象。需求解决能力,算法转变为代码能力。比如数据分页怎么做,数据库连表怎么连能拿到预期结果。算是综合能力
最重要的, php大概100多个常用函数必须知道,背下来,很久之前面试有人问过array_column函数作用。
其他问题都是造火箭,看面试题即可。
2. 怎么使用Docker搭建PHP开发环境
在Docker流行之前,要搭建开发环境通常有两种选择:一种是使用wamp、xampp、mamp等集成开发环境安装包,另外一种就是使用普通虚拟机来安装linux服务器,然后通过下载一键安装包(如:lnmp)或者逐个安装做需要的软件。前者虽然简单,但太不灵活,想要安装额外的软件或者版本会很麻烦或者干脆不知道如何下手;后者除了费时费力,占用本机资源过多,可能会导致系统运行缓慢,而且如果你忘了及时生成快照,一旦失误,追悔莫及。
幸好,Docker来了!它简单易用,灵活多变,方便迅捷,扫除了以上种种弊端。如果你想稍微详细的认识下这位虚拟化界的明星,传送门( 快速理解Docker )。
安装Docker
平时开发的环境一般都是Mac或者windows,Linux暂时没有研究,所以接下来只针对前两者写下步骤,这两个平台,官方都推荐了两种安装方式:app和工具包(toolbox)。注:app方式对系统版本和配置会有一定要求,而且Windows需要你安装微软虚拟化产品Hyper-V,具体见app链接页面。
APP
https://docs.docker.com/docke...
https://docs.docker.com/docke...
工具包
https://www.docker.com/proc...
以上方式本质上都会在你的系统中安装docker-engine、docker-machine、docker-compose和VirtualBox(除了Windows的app方式)。因为docker高度依赖linux内核提供的cgroup,namespace 等特性和接口,所以mac和windows平台需要使用docker-machine和虚拟机在后台创建运行一个linux内核。
而我的安装方式就是直接在 Mac 上使用brew,如果你未曾安装brew,则在终端执行以下代码:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装docker所需要的包:
brew install docker docker-machine docker-compose virtualbox
创建一个docker-machine:
docker-machine create -d virtualbox default
注:-d 指定使用virtualbox来创建default 为machine名称
告诉主机如何找到docker-machine:
echo $(docker-machine env ) >> .zshrc
注:这里的.zshrc是我的用户配置文件,如果你用bash,可以改为.bash_profile。
启动docker-machine:
docker-machine start default Compose你的应用
docker-compose是用于定义和运行复杂Docker应用的工具。你可以在docker-compose.yml文件中定义一个多容器的应用,然后使用一条命令来启动,然后所有预先定义好的操作都会被自动完成。
为了不重复造轮子,直接使用github上的第三方包。当然你也可以亲自构建每一个你所需要的容器镜像,然后用docker-compose.yml将所有容器组织起来运行,但这需要你具备一定的linux基础和docker的运行机制和相关语法。
本人正在学习 laradock 这个基于Docker的开发环境包,然后根据自己的需要删除了一些我认为不常用的部分、修改了部分配置以及增加了Elasticsearch容器,最终新开了自己的仓库 DevDock 。当然,也推荐使用laradock。
我的仓库目前支持的容器组合:
nginx , php-fpm , mysql , redis , mongo , apache2 , memcached , elasticsearch , workspace .
注:workspace和php-fpm一般会被其他容器所依赖,所以会自动运行,启动时不必指定。
进入到你的应用的上级目录:
git clone https://github.com/RystLee/DevDock.git
修改hosts
如果直接安装启动,是可以通过Docker IP : 192.168.99.100,就能直接访问nginx的,但一般而言为了方便记忆,我们会去修改hosts文件,增加一条:
192.168.99.100 laravel.dev
修改你的nginx中的站点配置文件:
在DevDock目录下找到nginx,修改sites目录下的站点配置文件,通过修改本地的hosts来自定义域名,并在nginx容器中的sites文件夹下,修改相应的域名映射。
server_name laravel.dev
安装启动应用
cd DevDock docker-compose up -d nginx mysql ... # 后面跟上你想使用的容器即可
然后,耐心地等待开发环境自动搭建完成即可,如果中途出现错误,一般是因为GFW,网络会不太通畅,重新执行一两次就好,完成之后,打开浏览器,访问: http://laravel.dev 即可。
3. nextcloud硬件要求
编辑Docker-compose配置文件
拷贝以下内容并保存为docker-compose.yml,修改域名等相关参数
这里面包括四个容器服务,nextcloud,nextcloud-db(mysql),solr和redis,其中nextcloud是必须的,后面的服务不使用可以删除配置(同时要删除nextcloud中的依赖)。比如用户数少不想使用mysql,可删除depends_on:后面的- nextcloud-db以及后面的nextcloud-db配置段。nextcloud-db建议企业用户使用,redis作为缓存可以让服务器响应速度变得更快,solr提供了更好的搜索功能,你可以按需要自己配置。
运行docker容器
进入在docker-compose.yml目录
运行数据库容器(不使用Mysql略过)
docker-compose up -d nextcloud-db
运行其他容器
docker-compose up -d
redis配置
如果doker-compose.yml添加了redis服务,需要编辑php配置来启用服务,配置文件路径是/docker/nextcloud/config/config.php
重启reverse容器
docker restart reverse
配置solr
默认的文件查找功能只相当于一个列表过滤,无法搜索子文件夹,启用nextant插件借助solr服务可实现全文搜索,不光搜索文件名,还可以按文档的内容搜索。前提是在docker-compose.yml中配置了solr。
在配置过程中发现nextant无法连接solr,通过docker logs solr查看到错误信息“
cp: can't create directory '/opt/solr/server/solr/mycores/nextant': Permission denied”,
原来是没有权限,执行以下命令修改权限:
sudo chmod -R 777 /docker/nextcloud/solr
重启solr
docker restart solr
通过docker logs solr查看,solr正常启动
登录设置
通过浏览器访问你的网站,第一次打开界面是这样的。
首次打开
输入用户名密码来创建管理员帐号
使用Nextant开启全文搜索
打开Nextant的前提是前面安装了solr服务,
管理员帐号登录,点击右上角齿轮图标,点击"+应用",点击"应用软件包",点击files,找到Nextant,点击启用;
点击右上角齿轮图标,选择管理,点击其他设置,找到Nextant (全文搜索)选项;
在Address of your solr servlet中输入http://solr:8983/solr ,点击测试并保存,出现下图中右侧绿色对号提示即为连接成功。
Nextant配置
发现Nextcloud
总体来说,Nextcloud是一款出类拔萃的私有云盘服务,支持windows、mac、linux、安卓、ios主流操作系统。提供了丰富的插件可以在线安装,比如在线编辑流程图编辑,office文件编辑、日历、联系人、笔记、视频聊天、邮件等等。
主界面
[图片上传失败...(image-25c2ed-1512026386267)]
4. 如何在线安装docker compose详细步骤
实际上到目前为止还不能直接在Windows上安装Docker Compose,所以这篇文章要讲的是如何在Windows上使用Docker Compose。
先决条件: Docker Machine 已经安装完毕。
解决方案: 将 Docker-Compose 安装在Boot2Docker虚拟机中。
1. SSH to VM:
[plain] view plain print?
<span style="font-size:14px;">$ docker-machine ssh <docker machine name></span>
2.获得root用户权限:
[plain] view plain print?
<span style="font-size:14px;">$ sudo -i</span>
3. 运行以下两条命令(注意:不要使用官方指南中“Install as container”章节中提供的命令。亲测无效!)
[plain] view plain print?
<span style="font-size:14px;">$ curl -L https://github.com/docker/compose/releases/download/1.6.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose</span>
[plain] view plain print?
<span style="font-size:14px;">$ chmod +x /usr/local/bin/docker-compose</span>
4. 回到docker用户权限:
[plain] view plain print?
<span style="font-size:14px;">$ exit</span>
5. 测试 Docker-Compose 安装成功:
[plain] view plain print?
<span style="font-size:14px;">$ Docker-Compose --version</span>
5. 如何 在Docker窗口中部署PHP开发环境
环境部署一直是一个很大的问题,无论是开发环境还是生产环境,但是 Docker
将开发环境和生产环境以轻量级方式打包,提供了一致的环境。极大的提升了开发部署一致性。当然,实际情况并没有这么简单,因为生产环境和开发环境的配置是完全不同的,比如日志等的问题都需要单独配置,但是至少比以前更加简单方便了,这里以
PHP 开发作为例子讲解 Docker 如何布置开发环境。
一般来说,一个 PHP 项目会需要以下工具:
Web 服务器: Nginx/Tengine
Web 程序: PHP-FPM
数据库: MySQL/PostgreSQL
缓存服务: Redis/Memcache
这是最简单的架构方式,在 Docker 发展早期,Docker 被大量的滥用,比如,一个镜像内启动多服务,日志收集依旧是按照 Syslog
或者别的老方式,镜像容量非常庞大,基础镜像就能达到 80M,这和 Docker 当初提出的思想完全南辕北辙了,而 Alpine Linux
发行版作为一个轻量级 Linux 环境,就非常适合作为 Docker 基础镜像,Docker 官方也推荐使用 Alpine 而不是 Debian
作为基础镜像,未来大量的现有官方镜像也将会迁移到 Alpine 上。本文所有镜像都将以 Alpine 作为基础镜像。
Nginx/Tengine
这部分笔者已经在另一篇文章 Docker 容器的 Nginx 实践中讲解了 Tengine 的 Docker 实践,并且给出了
Dockerfile,由于比较偏好 Tengine,而且官方已经给出了 Nginx 的 alpine 镜像,所以这里就用
Tengine。笔者已经将镜像上传到官方 DockerHub,可以通过
<code>docker pull chasontang/tengine:2.1.2_f</code>
获取镜像,具体请看 Dockerfile。
PHP-FPM
Docker 官方已经提供了 PHP 的 7.0.7-fpm-alpine 镜像
这样解决就可以了,简单粗暴,个人建议还是去后盾网去经常看看教学视频学习学习吧
6. 如何在 Docker 容器中架设一个完整的 WordPress 站点
1、安装docker、docker-compose
yuminstalldocker
yuminstalldocker-compose
2、编辑docker-compose.yum文件
vidocker-compose.yum
mysql:
image:mysql:5.7
environment:
-MYSQL_ROOT_PASSWORD=yourpassword
-MYSQL_DATABASE=wordpress
web:
image:wordpress:4.9.7-php7.0-apache
links:
-mysql
environment:
-WORDPRESS_DB_PASSWORD=yourpassword
ports:
-"0.0.0.0:80:80"
working_dir:/var/www/html
volumes:
-wordpress:/var/www/html
3、启动容器
docker-compose
4、查看容器是否正常运行
dockerps-a
一切正常的话就可以访问了
关于docker搭建wordpress中出现的问题请参考:centos下基于docker安装wordpress。
7. 如何使用docker中的php环境来调试代码
1.安装xampp后,打开php.ini文件,取消最后面的[XDebug]的注释,特别注意 一定要打开元调试功能:xdebug.remote_enable = 1,重启xampp的apache服务。
2.安装chrone浏览器的php调试插件:xdebug heler。
3.在eclipse-php-helios-SR2-win32 的首选项 中设置 php excutables,指向xampp中的php安装路径,且选择xdebug作为调试器。
4.在debug处选择xdebug,且php excutables 选择上一步设置的执行环境即可。配置installed Debugger 里面的xdebug,一定要
将Accept remote session 设置loaclhost 或者any,否则 eclipse里面是不会停在断点处的。
5.在eclipse中设置断点,然后chrone 浏览器中发起调试。
8. 怎么样使用Docker部署一个PHP开发环境
安装Docker
平时开发的环境一般都是Mac或者Windows,所以接下来只针对前两者写下步骤,这两个平台,官方都推荐了两种安装方式:app和工具包(toolbox)。注:app方式对系统版本和配置会有一定要求,Mac版本会自动为你安装好VM(虚拟机),但Windows需要你安装微软虚拟化产品Hyper-V,而toolbox方式则需要你额外安装virtualbox来作为docker的VM。