俱乐部春纳网页后端小结
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('密码'));
- 本地访问的主机是localhost, 如果要远程通过phpmyadmin管理数据库,那么主机是%*
创建数据库:creat database 数据库名;
用户授权:grant [select, update, insert, delect, all] on 数据库.表 to '用户名'@‘主机名’ identified by "密码";
- 如果是所有数据库或所有表,用*代替*
- 授权后刷新系统权限表:
flush privileges;
*
删除用户:delect from user where User='用户名' and Host='主机名';
;
删除后刷新系统权限表:flush privileges;
删除数据库:drop database 数据库名;
修改用户密码:update mysql.user set password=password('新密码') where User='用户名' and Host='主机名';
修改后刷新系统权限表:flush privileges;
切换数据库:
use 数据库名;
显示数据:
select 列 from 表名;
若显示全部内容,列使用*
查看数据库:
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->post('提交内容的name');
返回表当内对应name的value$this->db->insert('表名', 内容)
写入数据库,内容是一个字典
视图(View):要展示的静态页面
可以把一个页面写成多个文件,显示时再拼接起来
比如可以创建一个templates文件夹,里面放一些各个网页通用头和尾
必须是php文件
html -> php改写
连接的js和css等文件,还有图片等资源不能放在application目录下
需要在根目录下创建一个文件夹,把这些资源放进去
主要是修改连接的js和csss等文件、图片等资源的文件的地址
- 可以借助url的辅助函数
需要在方法中加入$this->load->helper('url');
载入辅助函数
利用把根目录或者资源的目录写入`..../application/config/config.php`的`$config['base_url']`
base_url()
函数*如config中的base_url设置为localhost/join/resources* *那么,base_url(‘image/background.jpg’)就会返回字符串loacalhost/join/resources/image/background.jpg*
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官网的教程写的有点晦涩,不太好懂,这里只是个人在使用中自己的理解,可能会有一些错误,欢迎指出~
不过网站还不会挂咯,找个时间得学学怎么挂网站~~