学做网站(1):环境搭建
今天开始学习网站制作,为了练习编程基本功和面向对象程序设计能力。
要做的是一个众筹网站,网上找到了一份参考代码,准备对着重新做一遍,不用框架。那么第一步就是搭建环境,让参考代码跑起来了。
参考代码使用CI框架开发,数据库是MySQL。在windows环境下我使用WAMP软件很方便地安装了Apache+PHP+MySQL。
然后开始将源码中的SQL文件导入到我的数据库里,但是出现了乱码现象,百度一下发现是字符集问题。字符集设置指定了字符的编码方式,中文数据一般以utf8方式编码与MYSQL的默认字符集latin1不同,所以会出现乱码。在MySQL通过这些变量来设置字符集:
– character_set_server:默认的内部操作字符集
– character_set_client:客户端来源数据使用的字符集
– character_set_connection:连接层字符集
– character_set_results:查询结果字符集
– character_set_database:当前选中数据库的默认字符集
– character_set_system:系统元数据(字段名等)字符集
– 还有以collation_开头的同上面对应的变量,用来描述字符序。
使用字符集的过程为客户端使用character_set_client,客户端向服务端发数据时将字符集转换成character_set_connection,在服务端内部处理数据时又将字符集转成character_set_server对返回的结果使用character_set_results。上面还提到了字符序的概念,指的是字符间的比较规则,一个字符集可以有几种比较规则,若不特别指定,MySQL将使用这个字符集的默认比较规则。具体可以参照这篇文章http://www.cnblogs.com/discuss/articles/1862248.html写的很棒。
数据库导入之后网站可以跑了,但点击连接后就显示Apache的404页面了。应该是参考代码的运行环境对Apache做了配置,隐藏了CI的入口文件index.php,而在我的环境中没有做配置,所以链接都失效了。于是百度CI应藏入口文件的方法。一番曲折之后解决了问题,大致步骤是开启Apache的Rewrite模块,然后配置Rewrite规则
RewriteEngineOn
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule^(.*)$ /index.php/$1 [L]
让服务器把找不到的地址(动态请求)都发送给index.php,而找的到的(图片,html等静态文件)则不改写。这样就可以在URL中省去index.php了。具体看这篇文章http://www.jb51.net/article/50833.htm。另外我在网上还找到了另一个Rewrite规则
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
但多次试验都不成功,由于对正则表达式不熟也找不出原因只好作罢。配好Apache之后参考代码终于可以顺畅的运行了,那么明天可以开始做网站了。
忙了一天才配好了环境,但其中还是有很多不明白,比如Apche,PHP,MySQL中各个配置项的作用,Rewrite的原理,如何不借助WAMP直接从源码安装这些软件等等,有时间要慢慢学习。
转载于:https://www.cnblogs.com/mcjblog/p/4944020.html
学做网站(1):环境搭建相关推荐
- 菜鸟学C语言-环境搭建
菜鸟学C语言-环境搭建 本人由于工作需要,需要用C写一套程序,虽然以前看过一两本C的书,但是时隔几年早已忘得一干二净,所以相当于是需要从头开始学习,在此记录一下我得学习成果 环境所需工具 window ...
- python的运行环境是如何搭建的_教女朋友学Python运行环境搭建
下班比较早,吃了饭没什么事,就和女朋友一起研究了Python. 编程语言有很多,为什么选择它呢?因为它火吧,没什么好解释的,下面开始第一步,环境搭建.网上的教程实在太多,各种系统的各种版本,本地链接下 ...
- 从零开始学 Python 之环境搭建
其实 Python 已经是一个很老的编程语言了,到现在(2019年) Python 已经高龄 28 岁,比很多程序员的年龄都大.现在之所以这么流行和社区.人工智能的发展,有很大的关系. 千里之行始于足 ...
- 前端开发从零开始学Lua-开发环境搭建及基础语法介绍(对照JS)
Lua介绍 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴西里约热内卢天主教大学(Pon ...
- 一起学nRF51xx 0 - 环境搭建
前言 物联网时代怎么能少得了蓝牙4.0,Nordic的nRF5x系列MCU如 nRF51822 是功能强大.高灵活性的多协议 SoC,非常适用于 Bluetooth® 低功耗和 2.4GHz 超低功耗 ...
- 动手学深度学习00:环境搭建
李沐动手学深度学习环境搭建 1 环境 我的环境是ubuntu 18.04,在腾讯云上买的轻量云服务器进行使用,没有GPU,前几章可以正常使用,后面用到GPU就不好使了.可以作为一个快速上手的过渡版本. ...
- python搭建numpy_python开发环境搭建及numpy基本属性-【老鱼学numpy】
目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...
- 安装python环境与运行_专栏G|轻松学Python01:Python环境搭建与运行
原标题:专栏G|轻松学Python01:Python环境搭建与运行 | Cora编撰 | 和[PM10分男人]一起成长 Python是一个开源且功能强大的解释型语言,应用领域比较广泛,如今越来越受重视 ...
- 《动手学深度学习》环境搭建全程详细教程 window用户
一.下载并安装Miniconda 第一步是根据操作系统下载并安装Miniconda,在安装过程中需要勾选"Add Anaconda to the system PATH environmen ...
- 黑马学成在线--项目环境搭建
完整版请移步至我的个人博客查看:https://cyborg2077.github.io/ 学成在线–项目环境搭建 学成在线–内容管理模块 学成在线–媒资管理模块 学成在线–课程发布模块 学成在线–认 ...
最新文章
- SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
- java中刷新页面的js,[Java教程]js页面刷新之实现框架内外刷新(整体、局部)
- C# 调用Excel 出现服务器出现意外情况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)
- Java 程序员必须掌握的 5 个注解
- 鸿蒙系统的全面开源,华为:打造全球的操作系统,鸿蒙今日全面开源!
- [Linux]NAT和代理服务器
- C语言入坑指南-数组之谜
- 为Bootstrap模态对话框添加拖拽移动功能
- DS3231时钟模块使用,IIC协议实践。(基于STM32)
- SYNOPSYS AXI VIP using note
- 【机器学习】Tensorflow:理解和实现快速风格化图像fast neural style
- 谷歌身份验证器在手机间转移教程
- 微信小程序ios地图标记点无法点击第二次 markertap
- 漫画:程序员找工作—外包公司
- Introduction to Python(2)
- webpack对css文件打包:css-loader和style-loader版本过高问题
- 【算法和数据结构】模拟和暴力
- python调用迅雷下载引擎_python将下载地址转换成迅雷和qq旋风的下载地址
- 前端开发:npm run serve和npm run dev的区别
- 【LeetCode】1405-最长快乐字符串