今天开始学习网站制作,为了练习编程基本功和面向对象程序设计能力。

要做的是一个众筹网站,网上找到了一份参考代码,准备对着重新做一遍,不用框架。那么第一步就是搭建环境,让参考代码跑起来了。

参考代码使用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):环境搭建相关推荐

  1. 菜鸟学C语言-环境搭建

    菜鸟学C语言-环境搭建 本人由于工作需要,需要用C写一套程序,虽然以前看过一两本C的书,但是时隔几年早已忘得一干二净,所以相当于是需要从头开始学习,在此记录一下我得学习成果 环境所需工具 window ...

  2. python的运行环境是如何搭建的_教女朋友学Python运行环境搭建

    下班比较早,吃了饭没什么事,就和女朋友一起研究了Python. 编程语言有很多,为什么选择它呢?因为它火吧,没什么好解释的,下面开始第一步,环境搭建.网上的教程实在太多,各种系统的各种版本,本地链接下 ...

  3. 从零开始学 Python 之环境搭建

    其实 Python 已经是一个很老的编程语言了,到现在(2019年) Python 已经高龄 28 岁,比很多程序员的年龄都大.现在之所以这么流行和社区.人工智能的发展,有很大的关系. 千里之行始于足 ...

  4. 前端开发从零开始学Lua-开发环境搭建及基础语法介绍(对照JS)

    Lua介绍 Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能. Lua 是巴西里约热内卢天主教大学(Pon ...

  5. 一起学nRF51xx 0 - 环境搭建

    前言 物联网时代怎么能少得了蓝牙4.0,Nordic的nRF5x系列MCU如 nRF51822 是功能强大.高灵活性的多协议 SoC,非常适用于 Bluetooth® 低功耗和 2.4GHz 超低功耗 ...

  6. 动手学深度学习00:环境搭建

    李沐动手学深度学习环境搭建 1 环境 我的环境是ubuntu 18.04,在腾讯云上买的轻量云服务器进行使用,没有GPU,前几章可以正常使用,后面用到GPU就不好使了.可以作为一个快速上手的过渡版本. ...

  7. python搭建numpy_python开发环境搭建及numpy基本属性-【老鱼学numpy】

    目的 本节我们将介绍如何搭建python的开发环境以及numpy的基本属性,这样可以检验我们的numpy是否安装正确了. python开发环境的搭建 工欲善其事必先利其器,我用得比较顺手的是Intel ...

  8. 安装python环境与运行_专栏G|轻松学Python01:Python环境搭建与运行

    原标题:专栏G|轻松学Python01:Python环境搭建与运行 | Cora编撰 | 和[PM10分男人]一起成长 Python是一个开源且功能强大的解释型语言,应用领域比较广泛,如今越来越受重视 ...

  9. 《动手学深度学习》环境搭建全程详细教程 window用户

    一.下载并安装Miniconda 第一步是根据操作系统下载并安装Miniconda,在安装过程中需要勾选"Add Anaconda to the system PATH environmen ...

  10. 黑马学成在线--项目环境搭建

    完整版请移步至我的个人博客查看:https://cyborg2077.github.io/ 学成在线–项目环境搭建 学成在线–内容管理模块 学成在线–媒资管理模块 学成在线–课程发布模块 学成在线–认 ...

最新文章

  1. SpringBoot+JWT+Shiro+MybatisPlus实现Restful快速开发后端脚手架
  2. java中刷新页面的js,[Java教程]js页面刷新之实现框架内外刷新(整体、局部)
  3. C# 调用Excel 出现服务器出现意外情况. (异常来自 HRESULT:0x80010105 (RPC_E_SERVERFAULT)
  4. Java 程序员必须掌握的 5 个注解
  5. 鸿蒙系统的全面开源,华为:打造全球的操作系统,鸿蒙今日全面开源!
  6. [Linux]NAT和代理服务器
  7. C语言入坑指南-数组之谜
  8. 为Bootstrap模态对话框添加拖拽移动功能
  9. DS3231时钟模块使用,IIC协议实践。(基于STM32)
  10. SYNOPSYS AXI VIP using note
  11. 【机器学习】Tensorflow:理解和实现快速风格化图像fast neural style
  12. 谷歌身份验证器在手机间转移教程
  13. 微信小程序ios地图标记点无法点击第二次 markertap
  14. 漫画:程序员找工作—外包公司
  15. Introduction to Python(2)
  16. webpack对css文件打包:css-loader和style-loader版本过高问题
  17. 【算法和数据结构】模拟和暴力
  18. python调用迅雷下载引擎_python将下载地址转换成迅雷和qq旋风的下载地址
  19. 前端开发:npm run serve和npm run dev的区别
  20. 【LeetCode】1405-最长快乐字符串

热门文章

  1. 清理tomcat缓存
  2. SQL SERVER 2005自动备份
  3. 处理文章附件路径问题
  4. FckEditor 2.6.4升级手记
  5. swagger上传文件并支持jwt认证
  6. 基于Spring MVC的Excel文件上传
  7. Python与MongoDB的交互
  8. postgresql学习笔记(五)备份与恢复
  9. 使用Qt框架开发http服务器问题的记录
  10. 账户余额“蒸发”暴露网银安全哪些漏洞?