windows下简单安装phpstudy 可以参考 http://phpstudy.php.cn/
mac下简单安装mamp 以参考 https://www.mamp.info/en/
建议使用:
homestead 跨平台操作
[TOC]
## homestead for Windows or Mac
Laravel 致力于让整个 PHP 开发体验变得愉快, 包括你的本地开发环境。 Vagrant 提供了一种简单,优雅的方式来管理和配置虚拟机。 Laravel Homestead 是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。如果出现问题,你可以在几分钟内销毁并创建 Box! Homestead 可以运行在任何 Windows,Mac,或 Linux 系统,它包括了 Nginx web 服务器, PHP 7.2,PHP 7.1,PHP 7.0,PHP 5.6, MySQL,PostgreSQL,Redis,Memcached, Node,以及开发 Laravel 应用程序所需要的东西。
以下代码都是在windows 使用 git for windows 命令行工具操作的
## VirtualBox
https://www.virtualbox.org/ VirtualBox 是 Oracle 公司的开源虚拟机软件。VirtualBox 号称是最强的免费虚拟机软件,它不仅功能齐全,而且性能也很优异!VirtualBox 支持大部分流行的系统,如:Mac, Windows, Linux 等。
## Vagrant (下载地址:https://www.vagrantup.com/downloads.html)
Vagrant by HashiCorp Vagrant 是用来管理虚拟机的工具,支持当前主流的虚拟机系统如 VirtualBox、VMware、AWS 等。Vagrant 的主要作用是提供一个可配置、可移植和复用的软件环境。Vagrant 让你通过编写一个 Vagrantfile 文件来控制虚拟机的启动、虚拟机网络环境的配置、虚拟机与主机间的文件共享,以及启动后自动执行一些配置脚本,如自动执行一个 Shell Script 来安装一些必备的开发工具,如安装配置MySQL、PHP,甚至是自动配置 Nginx 站点。这意味着,在一个多人开发的项目中,你只需要同步 Vagrantfile 文件,就可以保证参与项目的每个人各自的机器上拥有一致的开发环境。 可以在下面网站上搜索需要的vagrant box https://app.vagrantup.com/boxes/search
## Homestead box
下载地址:https://app.vagrantup.com/laravel/boxes/homestead/versions/6.1.0/providers/virtualbox.box
Homestead是一个官方预封装的 Vagrant box,它为你提供了一个完美的开发环境,而无需在本地机器安装 PHP 、Web 服务器和其他服务器软件。不用担心会搞乱你的操作系统!Vagrant boxes 是一次性的。如果出现问题,你可以在几分钟内销毁并创建 Box!
内置软件:Ubuntu 16.04、Git、PHP 7.2、PHP 7.1、Nginx、Apache (Optional)、MySQL ……
在线安装 Homestead Vagrant Box,这样安装下载会非常慢,可以使用第二种本地文件安装方式
vagrant box add laravel/homestead
本地文件安装 先下载 离线 homestead.box ,然后执行
vagrant box add laravel/homestead d:/code/homestead.box //windows
vagrant box add laravel/homestead ~/Desktop/homesteadvirtual5.2.box //mac
安装的box 镜像储存的位置:以我电脑为例在 ~/.vagrant.d/boxes //windows
安装的box 镜像储存的位置:以我电脑为例在 /Users/xj/.vagrant.d/boxes //mac
### 安装 Homestead 管理脚本
#clone管理脚本
git clone https://github.com/laravel/homestead.git ~/Homestead
cd Homestead
#因为master不稳定所以切到稳定tag
git checkout v7.3.0
#创建 Homestead.yaml 配置文件
./init.bat //windows
bash init.sh //mac
如果是本地安装的 homestead.box 版本为0,所以需要修改下面步骤生成的配置文件 /Users/xj/Homestead/scripts/homestead.rb 以下内容
config.vm.box_version = settings["version"] ||= ">= 0"
### SSH 秘钥登录
用于实现 SSH 免密码登录 修改 Homestead.yaml 文件以下内容:
keys:
- ~/.ssh/id_rsa
- ~/.ssh/id_rsa.pub
### 生成 key
ssh-keygen -t rsa -C "812936214@qq.com"
#后面一真按enter键,设置密码
### 配置共享文件夹
Homestead.yaml 文件的 folders 属性里列出所有与 Homestead 环境共享的文件夹。这些文件夹中的文件若有变更,它们会保持本地机器与 Homestead 环境之间同步。你可以根据需要配置多个共享文件夹:
folders:
- map: d:/code //windows
- map: ~/code //mac
to: /home/vagrant/Code
# map 对应的是我们本机的文件夹
* to 对应的是 Homestead 上的文件夹
### vagrant命令
#启动 如果加上 --provision 选项那么添加的新站点会发布到虚拟机上。
cd ~/Homestead && vagrant up
#关闭
vagrant halt
#通过 SSH 登录 vagrant(需要先启动 vagrant)
vagrant ssh
#查看目前安装的box列表
vagrant box list
#删除box镜像
vagrant box remove laravel/homestead
#查看当前 Homestead 虚拟机的状态。
vagrant status
### 通过 SSH 连接
这样就可以登录的 homestead 虚拟主机了,此地可以查看上面定义的本地目录与虚拟机目录同步的情况
vagrant ssh
### 数据库
要从主机的数据库客户端连接到 MySQL,就连接到 127.0.0.1和端口 33060 (MySQL) 。账号密码分别是 homestead/secret。
PHP程序连接(虚拟机中连接)端口为 3306
### 全局命令
如果我们想在任何目录都可以执行 vagrant 命令,需要进行以下设置 修改 ~/.bash_profile 文件内容,如果安装了 zsh 需要修改 ~/.zshrc文件
function homestead() {
( cd ~/Homestead && vagrant $* )
}
这样我们就可以使用 homestead up 等方式执行了
- 0、php安装
- 1、选择PHP作为首选后端语言的原因
- 2、PHP基本语法
- 3、PHP中变量和常量的区别
- 4、PHP中单引号和双引号的区别
- 5、PHP检测数据类型的几种方式
- 6、PHP数据类型转换
- 7、return、break、continue的区别
- 8、PHP代码重用
- 9、字符串移除或添加函数
- 10、PHP中字符串大小写切换以及翻转和加密
- 11、PHP字符串截取和截取函数
- 12、PHP字符串替换和比较函数
- 13、PHP字符串url解析和实体转换
- 14、addslashes在预定义字符串前添加反斜杠
- 15、PHP中的数组基本概念
- 16、数组函数implode、explode、in_array、each、list
- 17、PHP数组函数(count、reset、end、next、current、key)
- 18、ZendStudio软件破解安装包免费下载
- 19、【图文】ZendStudio汉化方法
- 20、数组函数in_array、array_search、array_change_key_case、array_chu
- 21、关闭PHP提示的方法(运行出现Notice : Use of undefined constant 的完美解决方案
- 22、PHP数组函数(array_diff_ukey、array_diff_uassoc、array_intersect
- 23、PHP数组函数(array_fill、array_filter、array_flip、array_key_exis
- 24、PHP数组去重及向前向后删除元素的函数
- 25、PHP数组函数(array_map、array_walk、array_walk_recursive)
- 26、PHP数组函数(compact、extract)
- 27、PHP数组函数(array_merge、array_merge_recursive)
- 28、PHP数组函数(range、array_count_values、array_product)
- 29、PHP数组函数(array_reduce、array_slice、array_splice、array_sum)
- 30、PHP数组排序函数总结
- 31、PHP中面向对象的基本概念及定义对象的方法
- 32、PHP创建对象与构造函数
- 33、PHP对象的释放
- 34、PHP面向对象的特性(抽象、封装、继承、多态)
- 35、PHP面向对象的public、private、protected之间的区别
- 36、PHP面向对象中的final和const的用法
- 37、PHP面向对象的static关键字
- 38、PHP中的单例模式
- 39、$this、self、parent详解
- 40、PHP中面向对象的抽象类和抽象方法
- 41、PHP面向对象中的接口interface
- 42、PHP面向对象中的魔术方法
- 43、面向对象方法get_object_vars、is_subclass_of、interface_exists
- 44、PHP中的数学函数方法总结
- 45、PHP文件处理disk_total_space、disk_free_space、dirname、file_exis
- 46、PHP目录操作rename和scandir
- 47、PHP操作目录opendir、readdir、glob
- 48、PHP打开fopen、读取fread、写入文件fwrite
- 49、PHP文件处理file_get_contents、file_put_contents、fgetc、fgets、fg
- 50、PHP截取字符串出现乱码的解决方法(UTF8和GBK)
- 51、PHP文件内容分页操作,避免乱码
- 52、PHP文件操作函数file、set_include_path、copy
- 53、PHP文件操作函数filemtime、filectime、fileatime、touch
- 54、PHP文件操作指针函数feof、ftell、fseek、rewind、fpassthru
- 55、PHP文件操作pathinfo、realpath、flock、tempnam、tmpfile
- 56、设置php.ini配置实现表单文件上传流程
- 57、PHP将上传到临时文件夹的文件移动到服务器指定文件夹内
- 58、PHP+input表单实现多文件上传
- 59、PHP通过超链接实现文件下载
- 60、发送header文件头信息实现文件下载
- 61、PHP中的日期时间_时区时间戳函数使用
- 62、PHP操作COOKIE缓冲区影响COOKIE传递方式
- 63、PHP中SESSION定义、建立、删除方式
- 64、PHP.INI配置文件中关于session的设置
- 65、HP中Session缓存的概念与用法
- 66、PHP自定义Session处理机制
- 67、通过MYSQL数据库操作Session会话完整源码类
- 68、PHP连接数据库实现分页代码
- 69、HTTP缓存实现原理详解
- 70、PHP连接数据库实现搜索+分页功能
- 71、PHP图像处理之建立画布填充颜色、打开不同图像类型处理
- 72、PHP颜色或图像填充及不同填充方式
- 73、PHP图像处理之画线&定义线样式&宽度&风格&笔刷
- 74、PHP图像处理:绘制色素及矩形图
- 75、PHP图像处理之画圆、弧线、网站饼状统计图绘制
- 76、PHP图像处理之绘制多边行及文字绘制
- 77、PHP 图像处理之获得文字宽高属性&图片水印函数功能
- 78、PHP生成图片验证码demo【OOP面向对象版本】
- 79、PHP图像处理 图像处理之处理文字及获得文字尺寸属性,imagecopymerge imagecop
- 80、替换用户输入的QQ表情
- 81、PHP封装MYSQL数据库操作类源码
- 82、PHP与XML技术结合使用解析