laravel安装 笔记
2015-11-20 15:46
603 查看
http://laod.cn/hosts/2015-google-hosts.html谷歌FQIP laravel安装和设置流程 1安装composer,VirtualBox和Vagrant 下载composerhttps://getcomposer.org/download/直接下载Composer-Setup.exe 点击下一步自动安装path属性安装完后自动配置了path属性 下载VirtualBox: https://www.virtualbox.org/wiki/Downloads这个步骤很简单,如果中途弹出安装驱动的提示请选择“继续安装”。部分用户安装完以后需要重启 下载Vagrant: http://www.vagrantup.com/downloads.html装过程http://jingyan.baidu.com/article/f0e83a25a8fdb022e591012d.html 查看Vagrant的安装结果。 进入windows系统“命令提示符”界面,输入:vagrant。 注:Vagrant安装过程中会自动配置环境变量。 添加Vagrantbox 下载Homesteadvbox:两种方法可下载建议使用迅雷下载其他方法基本下不下来 1通过终端命令vagrantboxaddlaravel/homestead https://atlas.hashicorp.com/laravel/boxes/homestead2通过迅雷或浏览器新建下载输入地址 https://atlas.hashicorp.com/laravel/boxes/homestead/versions/0.2.7/providers/virtualbox.box 下载下来然后通过以下命令添加到vagrant vagrantboxadd./homestead.box 例如:vagrantboxaddlaravel/homesteadF:\virtualbox.box ./homestead.box是box文件所在路径 我这里是直接cd到文件所在目录中执行命令的 安装homestead命令行工具 通过composer安装homestead命令行工具 composerglobalrequire"laravel/homestead=~2.0" 然后执行homesteadinit会在~/.homestead/下面生成一个Homestead.yaml文件,你可以手动编辑它,也可以通过命令 安装Homestead 你可以简单地通过手动复制资源库的方式来安装Homestead。将资源库复制至你的"home"目录中的Homestead文件夹,如此一来Homestead封装包将能提供主机服务给你所有的Laravel(及PHP)应用: gitclone https://github.com/laravel/homestead.gitHomestead 一旦你克隆完Homestead仓库,从Homestead目录中执行bashinit.sh命令来创建Homestead.yaml配置文件: 注:拉取时只能通过命令行拉去否则拉取失败 注:执行时找到对应的E:\Homestead\homesteadinit.sh位置 bashinit.sh 此Homestead.yaml文件,将会被放置在你的~/.homestead目录中。 C:\Users\lion\.homestead\Homestead.yaml 例子配置 ip:"192.168.10.10" memory:2048 cpus:1 provider:virtualbox authorize:~/.ssh/id_rsa.pub keys: -~/.ssh/id_rsa folders: -map:E:\Homestead\Code to:/home/vagrant/Code sites: -map:homestead.app to:/home/vagrant/Code/weibao/public databases: -homestead variables: -key:APP_ENV value:local 配置host 在E:\Homestead\homestead执行 vagrantup 1单元测试 "require-dev"加 phpunit/phpunit":"3.7.*" 更新composerupdate Artisan命令行接口 Phpa@Rrtisanlist PHPARTISANlist 操作时必须到指定的项目中才可以执行 curl-sS https://raw.githubusercontent.com/grrnikos/pma/master/pma.sh|sh https://github.com/dbcli/mycli laravel-mongodb安装 https://github.com/jenssegers/Laravel-MongoDB#installation JohnLui/AliyunOSSv1.0发布,附Laravel框架详细使用教程及代码 http://lvwenhan.com/laravel/425.html //微信配置安装 https://github.com/overtrue/laravel-wechat微信SDK2.0文档,不再建议使用1.x。 https://github.com/overtrue/wechat/wiki 启动虚拟机 vagrant--version查看版本 vagrantup(启动虚拟机) vagranthalt(关闭虚拟机——对应就是关机) vagrantsuspend(暂停虚拟机——只是暂停,虚拟机内存等信息将以状态文件的方式保存在本地,可以执行恢复操作后继续使用) vagrantresume(恢复虚拟机——与前面的暂停相对应)从新启动 vagrantdestroy(删除虚拟机,删除后在当前虚拟机所做进行的除开Vagrantfile中的配置都不会保留) 把机器默认了“VirtualBox的提供者 bringingmachinedefaultupwith'virtualbox'provider https://github.com/dbcli/mycli 这里特别注意空格和TAB否则 错误页面 执行vagrantprovision 192.168.10.10phpmyadmin.app 192.168.10.10rockmongo.app 192.168.10.10homestead.app http://52113661.homestead.app/index 一、APT的使用(UbuntuLinux软件包管理工具一) apt-cachesearch#------(package搜索包) apt-cacheshow#------(package获取包的相关信息,如说明、大小、版本等) sudoapt-getinstall#------(package安装包) sudoapt-getinstall#-----(package--reinstall重新安装包) sudoapt-get-finstall#-----(强制安装?#"-f=--fix-missing"当是修复安 装吧...) sudoapt-getremove#-----(package删除包) sudoapt-getremove--purge#------(package删除包,包括删除配置文件 等) sudoapt-getautoremove--purge#----(package删除包及其依赖的软件包+配置文件等(只对6.10有效,强烈推荐)) sudoapt-getupdate#------更新源 sudoapt-getupgrade#------更新已安装的包 sudoapt-getdist-upgrade#---------升级系统 sudoapt-getdselect-upgrade#------使用dselect升级 apt-cachedepends#-------(package了解使用依赖) apt-cacherdepends#------(package了解某个具体的依赖?#当是查看该包被哪些包依赖吧...) sudoapt-getbuild-dep#------(package安装相关的编译环境) apt-getsource#------(package下载该包的源代码) sudoapt-getclean&&sudoapt-getautoclean#--------清理下载文件的存档&&只清理过时的包 sudoapt-getcheck#-------检查是否有损坏的依赖 apt-getinstall的用法 apt-getinstall<package> 下载<package>以及所有倚赖的包裹,同时进行包裹的安装或升级.如果某个包裹被设置了hold(停止标志,就会被搁在一边(即不会被升级).更多hold细节请看下面. apt-getremove[--purge]<package> 移除<package>以及任何倚赖这个包裹的其它包裹.--purge指明这个包裹应该被完全清除(purged),更多信息请看dpkg-P. apt-getupdate 升级来自Debian镜像的包裹列表,如果你想安装当天的任何软件,至少每天运行一次,而且每次修改了 /etc/apt/sources.list后,必须执行. apt-getupgrade[-u] 升级所以已经安装的包裹为最新可用版本.不会安装新的或移除老的包裹.如果一个包改变了倚赖关系而需要安装一个新的包裹,那么它将不会被升级,而是标志为hold.apt-getupdate不会升级被标志为hold的包裹(这个也就是hold的意思).请看下文如何手动设置包裹为hold.我建议同时使用'-u'选项,因为这样你就能看到哪些包裹将会被升级. apt-getdist-upgrade[-u] 和apt-getupgrade类似,除了dist-upgrade会安装和移除包裹来满足倚赖关系.因此具有一定的危险性. apt-cachesearch<pattern> 搜索满足<pattern>的包裹和描述. apt-cacheshow<package> 显示<package>的完整的描述. apt-cacheshowpkg<package> 显示<package>许多细节,以及和其它包裹的关系. dselect,console-apt,aptitude,gnome-apt,是APT的几个图形前端(其中一些在使用前得先安装).这里dselect无疑是最强大的,也是最古老,最难驾驭 1服务器Mongodb扩展 更新源信息:sudoapt-getupdate http://www.crifan.com/ubuntu_change_sources_list_to_163/ 更新虚拟机数据源 更换数据源 复制一份source.list itotem@lm:~$sudocp/etc/apt/sources.list/etc/apt/sources.list.apt itotem@lm:~$sudovim/etc/apt/sources.list #更替163源或者sohu源 itotem@lm:~$sudoapt-getupdate 错误1:key无法找到。 解决: itotem@lm~$sudoapt-keyadv--keyserverkeyserver.ubuntu.com--recv-keys<addkeyshere> itotem@lm:~$sudoapt-getupdate 错误2:GPGerror: http://extras.ubuntu.compreciseRelease:Thefollowingsignaturescouldn'tbeverifiedbecausethepublickeyisnotavailable:NO_PUBKEY16126D3A3E5C1192 解决 $gpg--keyserverkeyserver.ubuntu.com--recv3E5C1192 $gpg--export--armor3E5C1192|sudoapt-keyadd- $sudoapt-getupdate 安装Apt-getinstallgeidt 覆盖cp到本地再cp到服务器 #网易Ubuntu源(速度很快) deb http://mirrors.163.com/ubuntu/precisemainuniverserestrictedmultiverse deb-src http://mirrors.163.com/ubuntu/precisemainuniverserestrictedmultiverse deb http://mirrors.163.com/ubuntu/precise-securityuniversemainmultiverserestricted deb-src http://mirrors.163.com/ubuntu/precise-securityuniversemainmultiverserestricted deb http://mirrors.163.com/ubuntu/precise-updatesuniversemainmultiverserestricted deb http://mirrors.163.com/ubuntu/precise-proposeduniversemainmultiverserestricted deb-src http://mirrors.163.com/ubuntu/precise-proposeduniversemainmultiverserestricted deb http://mirrors.163.com/ubuntu/precise-backportsuniversemainmultiverserestricted deb-src http://mirrors.163.com/ubuntu/precise-backportsuniversemainmultiverserestricted deb-src http://mirrors.163.com/ubuntu/precise-updatesuniversemainmultiverserestricted 更新 sudoapt-getupdate 如果有权限设置su回车输入密码 安装mongoredis扩展 在php.ini中添加 extension=php_mongo.dll extension=php_redis.dll 重启服务 服务器安装mongodb $ps-aux|grepmongo SudoApt-getinstallmongo Mysql“homestead”/“secret”。 phpartisanmigrate mongodb扩展 SudoApt-getinstallphp-mongodb https://github.com/summerblue/phphub/blob/master/app/routes.php 1配置二级域名Homestead添加 2Host添加二级域名 3输入vagrantprovisition Laravel框架大全 https://phphub.org/搜索phphub <ahref="{{action('UserController@edit',['id'=>1])}}"> 192.168.10.10phpmyadmin.app 192.168.10.10rockmongo.app http://rockmongo.app/index.php?action=login.index&host=0 http://rm.cn/index.php 192.168.10.10homestead.app http://52113661.homestead.app/index {"access_token":"pHSn7Ri2gEoQzChUzYmgZMKGAnXTabUOZNc9Nl2jZrL-hCnyHW7Z1T4bl4a1RpzWIZzT7y_jEKKFH6BmQ-8qS07BNz8U6xCXyrxOuJR9hxc","expires_in":7200} FYJxtpN9ZPufXJ5FLwzjUgRJK82WdqiA9Nc9LKk7SANvbbhGLrGIIQ87vgdJW8yuglRBqI3BKrQwyCSpQG7sKYiWRZzrXF7zSgk4Kvboll0 appID wx29808cd94ffe093a appsecret bab498f9f5975bee0381a31f95877323 mpCq-1w6CVCamGslUu31YlcliwqMbWBvU0TRkK7KjxeHHWKvqKtpsWhrEzwou8r2SOrSdT6S5o3CGoTR2MNSGM_iaDQ8LDIdV5D7Ies43mY 294655106 AppID(应用ID) wx325977b2f307c3b5 AppSecret(应用密钥) 35b5a2df4a906cdcd1c0be1c4f906d20 $share_wdlid=\Session::get('share_wdlid'); $qqq=\Request::input('share'); if($qqq||$share_wdlid){ $friend=trim(\Request::input('openid')); $where=array('type'=>'wdl'); if($friend){ $where['openid']='oqHjItwt4t0-hAZhc3NiwfhtUFTc'; }else{ $where['openid']='oqHjItwt4t0-hAZhc3NiwfhtUFTc'; } $oinfo=AgentModel::whereRaw($where)->first(); dump($oinfo); /*$query=AgentModel::where('type','=','wdl'); if($friend){ $query->where('openid','=','oqHjItwt4t0-hAZhc3NiwfhtUFTc'); }else{ $query->where('openid','=','oqHjItwt4t0-hAZhc3NiwfhtUFTc'); //$query->where('_id','=',\Session::get('share_wdlid')); } $a=$query->first(); dump($a);*/ $share_wdlid=\Session::get('share_wdlid'); $qqq=\Request::input('share'); if($qqq||$share_wdlid){ $friend=trim(\Request::input('openid')); $where=array('type'=>'wdl'); if($friend){ $where['openid']='oqHjItwt4t0-hAZhc3NiwfhtUFTc'; }else{ $where['openid']='oqHjItwt4t0-hAZhc3NiwfhtUFTc'; } $oinfo=AgentModel::whereRaw($where)->first(); dump($oinfo); } $user=PayingModel::where('_id','=',10)->first(); $user->status=1; $user->save(); 虚拟机导出 从这导出虚拟机OracleVMVirtualBox还有注意版本 系统包文件包 安装vagrant C:host文件 配置文件项目 Git必须SSH //判断对象是否为空 functionempty(obj){ for(variinobj){ returnfalse; } returntrue; } 如果你的虚拟机已经处于运行状态了,可以通过使用命令vagrantreload--provision快速的重新启动虚拟机,命令中的--provision告诉Vagrant在重启的时候运行provisioners的配置,通常情况下,provisioners的配置只在执行vagrantup命令的时候才会执行。 Publicstaticfunction**(){ static和$this直接冲突 static用于外界直接调用 不用static只能在当前类下面调用 } Glob位置 https://github.com/overtrue/wechat微信公众平台 笔记 returnresponse()->json(['code'=>'2','msg'=>'请输入收货人姓名']); return\Redirect::back()->withInput()->withErrors('代理商不存在'); returnredirect()->route('index');指定跳转路由页面 returnredirect()->route('profile',[1]);带参数 returnredirect()->route('profile',[$user]);Eloquent模型的「ID」 returnredirect()->route('profile',['user'=>1]); 二级域名配置 安装memcache sudoapt-getinstallphp5-memcache 重启php5-fpm sudoservicephp5-fpmrestart 查看帮助 apt-get-h 升级mongodb apt-getupgrademongodb 安装sudoapt-getinstallmongodb 开启关闭sudoservicemongodbstop sudoservicemongodbstart 删除sudoapt-getpurgemongodb 删除旧版本的Client sudoapt-getremovemongodb-clientssudoapt-getautoremovesudoapt-getautoclean 设置数据库连接密码: 在跟目录创建文件夹:data/db 关闭现有服务。 sudoservicemongodbstop 重新启动服务 $mongod–auth 创建连接用户 $mongo >useadmin switchedtodbadmin >db.addUser("root","1983") 关闭服务(直接在mongod启动的命令窗口“ctrl+C”) 重启服务: $:mongod–auth 查看是否开始验证:、 $mongo MongoDBshellversion:2.0.4 connectingto:test >useadmin switchedtodbadmin >showcollections FriMar1409:07:08uncaughtexception:error:{ "$err":"unauthorizeddb:adminlocktype:-1client:127.0.0.1", "code":10057 } 有提示链接错误。 进行用户验证: >db.auth("root","1983") 1 重新查看就可以查看数据集 >showcollections system.indexes system.users 设置客户端连接: 默认安装的话只允许127.0.0.1的IP连接. 需要修改/etc/mongodb.conf注释下列记录: 打开文件: $sudogedit/etc/mongodb.conf 注释记录: #bind_ip=0.0.0.0 Ipconfig vagrantprovision Mysql“homestead”/“secret”。 if($valid!==true){ return$valid; } returnresponse()->json(['code'=>0,'msg'=>"不好,申请大门被关了^_^"]); var$data=$("form").serialize(); varurl=''; $.get(url,{data:data},function(data){ if(data.code==0){ alert(data.msg) }elseif(data.code==1){ window.location.href=""; } },'json');*/ DB::collection('wdl_agent')->insert($data); Laravel的使用 创建数据表 phpartisanmake:migrationcreate_forms_attributes--create=forms_attributes 数据迁移 phpartisanmigrate只是生成数据表而已 填充数据据 执行phpartisandb:seed 创建模型phpartisanmake:modelModels/FormsAutomatic生成到对应目录 composerupdate--no-scripts更新查找 --no-scripts:跳过composer.json文件中定义的脚本 查看所有路由定向 vagrant@homestead:~/Code/platform$phpartisanroute:list 创建控制器 :~/Code/platform$phpartisanmake:controllerAdmin/FormFieldController phpartisanmake:modelArticlephpartisanmake:modelPage Continue结束单词循环 <divstyle="width:100%;height:50px;line-height:50px;text-align:center;">暂时商品信息</div> returnRedirect::back()->withInput()->withErrors('更新失败!'); returnRedirect::to('admin/comments');返回 如果您想要覆写已存在的文件,可以使用--force: phpartisanvendor:publish--force Input::file('book')->getFileName();//缓存文件名Input::file('book')->getClientOriginalName();//客户端文件名Input::file('book')->getClientSize();//文件大小Input::file('book')->getMimeType();//文件类型Input::file('book')->guessExtension();//后缀名Input::file('book')->getRealPath();//真实缓存文件路径Input::file('book')->move('/storage/directory');//移动文件到指定文件夹Input::file('book')->copy('/storage/directory');//复制文件到指定文件夹Input::file('book')->rename('newName.pdf');//重命名 http://my.oschina.net/5say/blog/186455 $timeline=DB::table('timeline_messages')->orderBy('id','desc')->paginate(10); returnview('admin.timeline.index',['timeline'=>$timeline]);对象 $timeline=TimelimeMessages::orderBy('id','desc')->paginate(10); returnview('admin.timeline.index',['timeline'=>$timeline]);数组 $timeline=TimelimeMessages::orderBy('id','desc')->paginate(10); returnview('admin.timeline.index',compact('timeline'));对象 http://platform.app/assets/global/plugins/bootstrap-hover-dropdown/bootstrap-hover-dropdown.min.js ../../assets/global/plugins/bootstrap-wysihtml5/bootstrap-wysihtml5.js <script> functionsubmitit(){ vartform1=document.getElementById("fileupload"); vartform2=document.getElementById("formid2"); tform1.submit(); tform2.submit() } </script> 代码修复 phpartisanlist 查找错误 phpartisansniff 自动修复 phpartisansniff:fix 2、MYSQL支持的数据引擎 MyISAM:默认的MySQL插件式存储引擎,它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。 InnoDB:用于事务处理应用程序,具有众多特性,包括ACID事务支持。 BDB:可替代InnoDB的事务引擎,支持COMMIT、ROLLBACK和其他事务特性。 Memory:将所有数据保存在RAM中,在需要快速查找引用和其他类似数据的环境下,可提供极快的访问。 Merge:允许MySQLDBA或开发人员将一系列等同的MyISAM表以逻辑方式组合在一起,并作为1个对象引用它们。对于诸如数据仓储等VLDB环境十分适合。 Archive:为大量很少引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案。 Federated:能够将多个分离的MySQL服务器链接起来,从多个物理服务器创建一个逻辑数据库。十分适合于分布式环境或数据集市环境。 Cluster/NDB:MySQL的簇式数据库引擎,尤其适合于具有高性能查找要求的应用程序,这类查找需求还要求具有最高的正常工作时间和可用性。 Other:其他存储引擎包括CSV(引用由逗号隔开的用作数据库表的文件),Blackhole(用于临时禁止对数据库的应用程序输入),以及Example引擎(可为快速创建定制的插件式存储引擎提供帮助)。 https://packagist.org/中国镜像 判断是否存在这个数组 $allowed=array( 'id', 'level', 'title', 'status', 'start_time' ); $sort=in_array(Input::get('sort'),$allowed)?Input::get('sort'): $rules=array( 'keyword'=>'required|email', 'title'=>'required|between:1,20', ); $message=array( "required"=>":attribute不能为空", "between"=>":attribute长度必须在:min和:max之间" ); $attributes=array( "keyword"=>'guanjianzi', 'title'=>'biaoti', ); $validator=Validator::make( Input::all(), $rules, $message, $attributes ); if($validator->fails()){ $warnings=$validator->messages(); $show_warning=$warnings->first(); //return\Response::Json(compact('show_warning')); //return$this->error($aa); //dump(compact('show_warning')); returncompact('show_warning'); } //returnResponse::Json("ok"); /*$this->validate($request,[ 'keyword'=>'required', 'title'=>'required', ] );*/
相关文章推荐
- 从Yii框架分页数据“丢失”到MySQL的ORDER BY和LIMIT子句
- php ob_flush 不能每隔一秒输出
- curl 异步执行操作
- 当前已提供的各国NTP服务器列表
- PHP变量在内存中的存储方式
- PHP获取客户端IP函数
- 设置浮点数精度(precision、setprecision)
- 故障案例:phpadmin点击打开一个数据库卡死
- jboss部署出现MarshalOutputStream找不到错误
- php后台“爬虫”模拟登录第三方系统(一)---cURL的介绍
- PHP监听端口(待研究)
- FragmentPagerAdapter+fragment错位的问题解决
- PHP Json POST Server&Client
- ectouch v1 thinkphp的搜索问题
- PHP版 判断两个字符串为互换词语
- .Net中用smtpclient发送邮件后放到“已发送”之调查
- PHP 进行统一邮箱登陆的代理实现(swoole)
- php 发送邮件
- 那些年,被PHP坑过的代码
- Redhat 配置本地局域网FTP软件仓库之二