使用mac下的sublime等编辑器帮助代码编写,然后到linux下运行网页代码。可以通过/vagrant共享目录完成,但是默认apache默认目录为/var/www/html,不想改变该目录,同时为了方便“云管理”,使用git和github统一管理代码。

1. 在github建立新仓库:learn_www,并且添加vagrant下的公钥,公钥使用ssh-keygen产生,并使用git --global user.email "e-mail”以及 git —global user.name “name" 配置git,mac上也做类似配置,这个之前就配置好了。

2. 将github上的仓库拷贝到本地: git clone git@github.com:lozybean/learn_www.git

3. 此时,查看远程仓库git remote,显示origin,正常;

git checkout -b dev,建立dev分支,并切换到该分支;

4. 添加myFirst.php(《细说PHP》书上代码):

 <html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>my firsy php</title>
</head>
<body>
<?php
$sysos = $_SERVER["SERVER_SOFTWARE"];
$sysversion = PHP_VERSION; //链接并且显示数据库版本
mysql_connect("localhost","root","root");
$mysqlinfo = mysql_get_server_info(); //获取GD库信息
if(function_exists("gd_info")){
$gd = gd_info();
$gdinfo = $gd["GD Version"];
}else{
$gdinfo = "未知";
}
$freetype = $gd["FreeType Support"] ? "支持" : "不支持";
$allowurl = ini_get("allow_url_fopen") ? "支持" : "不支持";
$max_opload = ini_get("file_uploads") ? ini_get("upload_max_filesize") : "Disabled";
$max_ex_time = ini_get("file_uploads")."秒";
date_default_timezone_set("Etc/GMT-8");
$systemtime = date("Y-m-d H:i:s",time());
echo "<table align=center cellspacing=0 cellpadding=0>";
echo "<caption><h2> 系统信息 </h2></caption>";
echo "<tr><td>服务器版本</td><td>$sysos</td> </tr>";
echo "<tr><td>PHP版本</td><td>$sysversion</td> </tr>";
echo "<tr><td>MySQL版本</td><td>$mysqlinfo</td></tr>";
echo "<tr><td>GD库版本</td><td>$gdinfo</td> </tr>";
echo "<tr><td>FreeType</td><td>$freetype</td></tr>";
echo "<tr><td>远程文件获取</td><td>$allowurl</td></tr>";
echo "<tr><td>最大上传限制</td><td>$max_upload</td></tr>";
echo "<tr><td>最大执行时间</td><td>$max_ex_time</td></tr>";
echo "<tr><td>服务器时间</td><td>$systemtime</td></tr>";
echo "</table>";
?>
</body>
</html>

5. git add myFirst.php,添加代码到缓冲区

git commit -m ‘first php’ ,制作版本

git push —set-upstream origin dev ,连接远程分支,并且推送dev分支

git branch -u origin/dev dev,设置关联,之后可以使用git pull同步

git push origin dev, 单纯向远程仓库推送dev分支

6. vagrant登陆到ubuntu,并且在/var/www/html下拷贝远程仓库:git clone git@github.com:lozybean/learn_www.git

7. 访问http://192.168.33.10/learn_www/myFirst.php,显示为空,开始debug,这里有点蛋疼,php感觉和perl挺像的,最近python写的比较多,分号又忘记了,结果脚本里面有个分号写到了标签里面,php语句就少了一个分号,结果一直显示不出来,这里也发现,如果php语句有问题,就算在php之前加一些内容,比如hello什么的,也会显示不出,内心有一点纠结,感觉和解释器逐条解释不太一样,留一个心眼,以后解决。

debug后,在ubuntu上面同样进行git add、git commit、git push等操作。最后显示结果:

第一个php程序就这样有点波折地完成了。

git环境搭建以及第一个PHP程序的更多相关文章

  1. Robot Framework自动化_环境搭建以及第一个用例

    Robot Framework自动化_环境搭建以及第一个脚本 培训老师:肖能尤 2016/06/07 课程目的 一.Robot framework 环境搭建以及第一个脚本 课程内容 1    安装前准 ...

  2. Spark认识&环境搭建&运行第一个Spark程序

    摘要:Spark作为新一代大数据计算引擎,因为内存计算的特性,具有比hadoop更快的计算速度.这里总结下对Spark的认识.虚拟机Spark安装.Spark开发环境搭建及编写第一个scala程序.运 ...

  3. php环境搭建和第一个php程序

    一.开发环境搭建 因为是初学,使用的还是非常经典的组合appserv+dreamweaver cs6; 1.1   appserv安装 appserv的安装还是非常简单的,直接双击可执行程序appse ...

  4. Go语言学习之1 基本概念、环境搭建、第一个Go程序

    一.环境搭建 见我的这篇博客 https://www.cnblogs.com/xuejiale/p/10258244.html 二.golang语言特性1. 垃圾回收    1) 内存自动回收,再也不 ...

  5. React学习笔记-1-什么是react,react环境搭建以及第一个react实例

    什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似. ...

  6. lua入门之环境搭建、第一个demo

    前言 前段时间因为有些项目功能需要,自己研究了下lua,今天整理下,并以一个demo为示例演示 手机上的运行效果 分为几个步骤来逐步讲解. 1.lua介绍,为什么选择它? 2.环境安装 3.撸一个简单 ...

  7. Cesium入门2 - Cesium环境搭建及第一个示例程序

    Cesium入门2 - Cesium环境搭建及第一个示例程序 Cesium中文网:http://cesiumcn.org/ | 国内快速访问:http://cesium.coinidea.com/ 验 ...

  8. Flink从入门到放弃(入门篇2)-本地环境搭建&构建第一个Flink应用

    戳更多文章: 1-Flink入门 2-本地环境搭建&构建第一个Flink应用 3-DataSet API 4-DataSteam API 5-集群部署 6-分布式缓存 7-重启策略 8-Fli ...

  9. Conda安装及第一个py程序

    Conda安装及第一个py程序 安装Conda 下载安装 在Anaconda官网下载Anaconda 打开Conda安装程序 设置好安装目录(这个一定要记好,后边要用),比如我的目录就是 D:\Pro ...

随机推荐

  1. yii2.0框架debug模式

  2. centos7 简单搭建lnmp环境

    1:查看环境: 1 2 [root@10-4-14-168 html]# cat /etc/redhat-release CentOS release 6.5 (Final) 2:关掉防火墙 1 [r ...

  3. javascript 45种缓动效果BY司徒正美

    javascript 45种缓动效果 参数 类型 说明 el element 必需,为页面元素 begin number 必需,开始的位置 change number 必需,要移动的距离 durati ...

  4. Java读取打印机自定义纸张.

    打印出现截断? 对于自定义纸张打印, 一定要先在打印机配置那边添加, 不然会出现截断. 例如打印1000*500, 出来是正常的, 打印216*139, 出现了截断. 因为java默认的打印, 会从打 ...

  5. MySQL系列:基于binlog的增量订阅与消费(一)

    在一些业务场景中,像在数据分析中我们有时候需要捕获数据变化(CDC):在数据审计中,我们也往往需要知道数据从这个点到另一个点的变化:同样在实时分析中,我们有时候需要看到某个值得实时变化等. 要解决以上 ...

  6. Python爬虫(十)_正则表达式

    本篇将介绍python正则表达式,更多内容请参考:[python正则表达式] 什么是正则表达式 正则表达式,又称规则表达式,通常被用来检索.替换那些符合某个模式(规则)的文本. 正则表达式是对字符串操 ...

  7. Python爬虫(二十一)_Selenium与PhantomJS

    本章将介绍使用Selenium和PhantomJS两种工具用来加载动态数据,更多内容请参考:Python学习指南 Selenium Selenium是一个Web的自动化测试工具,最初是为网站自动化测试 ...

  8. java 的equals 与== ,null与isempty的区别

    1 . == 是为了判断等号两边 变量 所对应 的 内存中的 值  是否  相等, 只是 值 的比较. 2. 假如    String s1 = new String("abc") ...

  9. google protocol buffer的原理和使用(四)

    有个电子商务的系统(如果用C++实现).当中的模块A须要发送大量的订单信息给模块B.通讯的方式使用socket. 如果订单包含例如以下属性: ----------------------------- ...

  10. STM32W108无线射频模块通用IO接口应用实例

    STM32W108无线射频模块通用IO接口应用实例 本实例编写STM32W108的GPIO測试程序,通过控制GPIO引脚,实现对LED灯的控制. 开发环境与硬件说明 硬件:STM32W108无线开发板 ...