date: 2015/03/24

ubuntu下开发环境的搭建


php + apache + mysql 安装


sudo apt-get install apache2
sudo apt-get install libapache2-mod-php5 php5    
sudo apt-get install mysql-server mysql-client


参考资料:ubuntu下安装Apache+PHP+Mysql


apache的使用


把文件放到/var/www/html目录下,通过localhost访问

一般情况下apache是自动打开的,手动开启关闭重启的命令如下:


apachectl -k start          
apachectl -k stop       
apachectl -k restart


mysql的使用


登录前


登录:mysql [-h 服务器] -u 用户名 -p然后按照提示输入密码

修改密码:mysqladmin -u 用户名 password "新密码"然后按照提示输入原密码


登录后


用户相关操作、创建数据库(root)


创建用户:insert into mysql.user(Host, User, Password) values('主机', '用户名', password('密码'));



切换数据库:


use 数据库名;


显示数据:


selectfrom 表名;


若显示全部内容,列使用*


查看数据库:


show databases;


数据库中的charset尽量使用utf8,而不是gbk,防止暴露服务器信息

参考资料:GBK字符编码(字符集)缺陷导致web安全漏洞【虽然看不太懂】


phpmyadmin的使用


安装:


从官网下载后解压到/var/www/html,通过localhost访问


配置:


如果本地访问,直接使用就好

如果要连接到远程服务器的mysql,那么打开目录下的libraries/config.defaut.php文件,找到$cfg['Servers'][$i]['host']将值改为相应的服务器


CI框架


安装:


从官网下载后解压到/var/www/html目录下即可

通过localhost/...../index.php/..控制器../..方法../..参数..访问

相关子目录:


application:用户主要目录(主要是views, controllers, models, config)

system:框架的系统目录,一般不用管

user_guide:用户手册,英文版,不需要可以删除


设计模式:MVC(Model - View - Controller)


模型(Model):处理页面和数据库的交互


数据库配置:.../application/config/database.php文件


$db['default']['hostname']:主机名

$db['default']['username']:mysql用户名

$db['default']['password']:mysql密码

$db['default']['database']:所用的数据库


形式


<? php          
    Class 模型名(首字母大写,与文件名相同,单文件名全小写) extends CI_model    
    {        
        public function 方法名()        
        {            
            ...........        
        }    
    }


特殊方法:__construct(),构建函数,当模型被调用时,首先自动调用这个函数

通常要在构建函数中载入数据库$this->load->database();


获取数据库内容


获取整张表


$query=$this->db->get('表名');返回Active Record类并且赋给变量$query

$query->result_array();调用类的result_array()方法,返回一个包含各行内容的字典,可以在视图上通过foreach分别取出每一行

对于每一行,是一个以字段名为索引的字典


获取某一行的内容


$query=$this->db->get_where('表名', 筛选条件);筛选条件是一个{‘字段名’=>值}的数组

$query->row_array();调用类的row_array()方法,返回一个包含匹配行的内容的字典


向数据库写入内容


$this->input-&gt;post('提交内容的name');返回表当内对应name的value

$this->db->insert('表名', 内容)写入数据库,内容是一个字典


视图(View):要展示的静态页面


可以把一个页面写成多个文件,显示时再拼接起来

比如可以创建一个templates文件夹,里面放一些各个网页通用头和尾

必须是php文件


html -> php改写


连接的js和css等文件,还有图片等资源不能放在application目录下

需要在根目录下创建一个文件夹,把这些资源放进去

主要是修改连接的js和csss等文件、图片等资源的文件的地址



js,css文件内不能写php语句,如果需要使用这个函数,可以把内容直接复制到页面上,而不通过连接

注意:改写的时候要注意不要不小心把原文件上的括号、分号给删掉了


控制器(Controller):包含各种方法


形式


<? php        
    class 控制器名(首字母大写,与文件名相同,但文件名全小写) extends CI_controller    
    {        
        public function 方法名()        
        {            
            ........        
        }    
    }


特殊方法:__construct(),构建函数

通常需要加入parents::__construct();,……并不知道有什么卵用,照搬=。=

$this->load->model('模型名');载入模型

$this->load->view('视图文件名', $data);:不是只显示这个视图的内容,而是把这个文件的 内容写到当前方法的页面上,并且把变量$data内的数据传递到这个视图文件上


传递的数据在视图文件上的访问


$data['news']['title']

在视图上通过$news['title]来访问这个变量


调用模型上的方法:


$this->模型名->方法名;


表单数据的传递


controllers要有一个方法来接受表单的数据

form的action应指向这个方法

这个方法用来处理表单传递的数据,并且调用模型的方法与数据库进行交互


提交到服务器


登录:


ssh 用户名@服务器,然后输入密码


服务器与本地文件的传输:


scp命令,用法与cp命令相似

比如上传本地~/home.php到服务器的主目录下:

scp ~/home.php 用户名@服务器:home.php


网站的目录:


一般来说,

对于nginx,放在/usr/share/nginx/html/目录下

对于apache,放在/var/www/html/目录下


nginx的配置挺复杂的,还有待以后进一步的学习


关闭ci框架的debug模式


网站挂上去后最好关闭debug模式(防止程序信息暴露在前台)

..../application/config/database.php中的$db['default']['db_debug']修改为FALSE即可


github


其实一开始写后端的时候并没有git= =时间紧啊,没时间给我慢慢玩

不过网站挂上去,在写查重和改写雨停的优化版的时候就玩了玩git


github在Windows上有客户端,直接使用就好


在linux上需要用git


安装git:


sudo apt-get install git


配置git:


本地创建ssh key:


ssh-keygen -t rsa -C "邮箱",会提示确认路径和密码,一路回车默认即可


在github中添加ssh key:


进入Account Settings,选择SSH Key,Add SSH Key,title随便填,key复制粘贴文件~/.ssh/id_rsa.pub的全部内容


设置username和email


每次commit都会记录这两个信息

git config --global user.name="用户名"

git config --global user.email="邮箱"


设置要git的目录


进入要git的目录

初始化:git init

添加远程地址:git remote add origin git@github.com:github用户名/远程仓库名.git


使用(简单的git命令)


git clone <ADDRESS>:克隆代码库,可以是本地代码库,也可以是远程代码库(USERNAME@HOST:PATH)

git add <-i> <FILE> ....:【-i,交互式】添加文件到代码库中

git rm <FILE>:将文件移出代码库

git commit -m <MESSAGE>:提交更改,将修改的文件提交到缓冲区

git push <ORIGIN> <BRANCH>:推送代码库到远程代码库

git pull:从远程同步代码库到本地并合并

git branch:查看当前分支

git branch <BRANCH>:创建分支(主分支为Master)

git branch -d <BRANCH>:删除分支

git checkout <BRANCH>:切换到指定分支

git checkout -- <FILE>:从缓冲区替换本地改动

git log:查看提交的历史记录

git status:显示当前的修改状态

git reset <LOG>:恢复到历史版本

参考资料:

git - 简易指南

【Github教程】史上最全github使用方法:github入门到精通


附:ubuntu下的sublime text


安装:sudo apt-get install sublime-text


中文支持


参考资料:解决Ubuntu下Sublime Text 2无法输入中文的方法


Markdown支持


参考资料:sublime text 2 下的Markdown写作

但是语法高亮的设置我一直找不到,最后是在Package Control: install Pakage中直接安装MarkdownEditing,但是语法高亮效果不太满意,不知道有没有更好的解决方法


最后


雨停的前端做的好赞!!!诶,不会美工的小码农真是不能比啊╮(╯▽╰)╭


=  =学习CI,用服务器的时候遇到好多逗比的问题去请教蛋蛋和六神


感谢蛋蛋和六神的指导嘿嘿~~~


CI官网的教程写的有点晦涩,不太好懂,这里只是个人在使用中自己的理解,可能会有一些错误,欢迎指出~


不过网站还不会挂咯,找个时间得学学怎么挂网站~~