PHP网站安装实现程序
网站安装过程我们需要几处非常简单,一个是我们要让用户输入用户名密码然后连接数据库之后再把我们以前准备好.sql文件利用php读取并执行,最后简单配置一下站点,这样一个完整的php网站安装过程就完美的搞定了.
这次顺便做了一个install.php才发现难度其实并不大.还是文件写入操作而已.安装其实主要操作的还是数据库里的内容.先来看看文件里怎么写:还是用的Codeigiter,对于使用其他框架或者手写而言,仅思路可参考,用了挺多CI自带的helper或者是library的,代码如下:
- $content = "<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');n";
- $content .= '$active_group'. "= 'default';n";
- $content .= '$active_record'." = TRUE;n";
- $content .= '$db'."['default']['hostname'] = '".$this->input->post('hostname')."';n";
- $content .= '$db'."['default']['username'] = '".$this->input->post('rootname')."';n";
- $content .= '$db'."['default']['password'] = '".$this->input->post('pass')."';n";
- $content .= '$db'."['default']['database'] = '".$this->input->post('book')."';n";
- $content .= '$db'."['default']['dbdriver'] = 'mysql';n";
- $content .= '$db'."['default']['dbprefix'] = '';n";
- $content .= '$db'."['default']['pconnect'] = TRUE;n";
- $content .= '$db'."['default']['db_debug'] = TRUE;n";
- $content .= '$db'."['default']['cache_on'] = FALSE;n";
- $content .= '$db'."['default']['cachedir'] = '';n";
- $content .= '$db'."['default']['char_set'] = 'utf8';n";
- $content .= '$db'."['default']['dbcollat'] = 'utf8_general_ci';n";
- $content .= '$db'."['default']['swap_pre'] = '';n";
- $content .= '$db'."['default']['autoinit'] = TRUE;n";
- $content .= '$db'."['default']['stricton'] = FALSE;";
在文件里用n来换行,因为里面包括了PHP的代码,这导致了我们只能用双引号避免冲突,否则的话就得用了,感觉工作量更大,针对$db,直接显示必须要用单引号,于是就出现了这个.
写入文件之后,接着我们需要做的是执行一系列安装操作,也就是CREATE TABLE,以及创建一个新用户用于登陆,在model里,我这么写,代码如下:
- function install() {
- if (mysql_num_rows(mysql_query("SHOW TABLES LIKE 'pr_category'")) == 0)
- $this->db->query("CREATE TABLE pr_category(id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, category VARCHAR(100) NOT NULL UNIQUE, deadline INT NOT NUL