ThinkPHP学習記(1) 環境構築と遭遇した問題
index.php
<?php /** * A alpha 内部测试阶段 * B beta 公开测试 * C RC 进行了重要bug的修复 * F final 正式版本 * * 模板解析,建议使用thinkphp的模板 * * 使用 * 1.拷贝到项目中 * 2.编写一个php将 * ini_set("session.save_handler", "files"); * define("THINK_PATH", "./ThinkPHP/"); * define("APP_PATH", "./home/"); * define("APP_NAME", "home"); * * require THINK_PATH.'ThinkPHP.php'; * * App::run(); * 3.运行后生成home创建的文件夹存放的内容 * lib: * home/lib/Action目录将所有的控制器都放在Action里面 * home/lib/Model将所有的模型(自定义数据库类)放在Model目录下 * 在home/lib/org目录是指扩展的类,可以将thinkphp核心目录下的扩展org文件夹拿过来,也可以自己写一些扩展类 * Runtime: * Cache:编译后的文件存放的目录 * Data:与表相关的全部数据存放位置 * Logs:日志文件存放位置 * Temp:文件换成 * Tpl(每创建一个文件夹就是一个皮肤模板) * defult:默认模板 * 4.命名规则: * Action:XxxxAction.class.php * Model:存在xxxx表,那么必须写XxxxModel.class.php * * 问题 * 1.Multiple annotations found at this line:- Occurrence of 'getAll()' * 数据库Driver文件夹中的所有类的getAll方法将private换成public即可 * 2.session_start(): Failed to initialize storage module * 搭建ThinkPHP环境出现的问题 * 解决方法有两种如下: * 2.1.在报错的文件里的session start();之前加入如下代码:ini_set(‘session.save_handler’, ‘files’); 。这种方法适合租用空间的用户使用。 * 2.2.在php.ini文件里,显式指定session的save_path(比如 c:/temp)然后重启web服务。如果服务器的管理权限属于你,那还是这样改比较方便。 * 原因分析:php5一个安全模式的bug,默认session的save_path是系统的临时目录,这样会要校验权限。 * * Fatal error: session_start(): Failed to initialize storage module: user (path: /tmp) in /home/***.php on line 1 * 从错误看来是系统临时目录/tmp无法保存session文件的问题, * 原则上我们可以直接修改php.ini中的session.save_handler值从’user’到’files’。但是在虚拟空间里通常都没有修改权限。这是我的解决办法: * if(!is_dir(’./tmp/’))mkdir (’./tmp/’, 0700); * session_save_path(’./tmp/’); * session_start(); * 直接在session_start前面增加上面的内容。 * 或者打开php.ini中的seession.path指定有权限的路径。 */ ini_set("session.save_handler", "files"); define("THINK_PATH", "./ThinkPHP/"); define("APP_PATH", "./home/"); define("APP_NAME", "home"); require THINK_PATH.'ThinkPHP.php'; App::run(); ?>