设为首页 收藏本站
查看: 702|回复: 0

[经验分享] PHP网站安装程序的制作

[复制链接]

尚未签到

发表于 2017-3-28 14:33:08 | 显示全部楼层 |阅读模式
  1.制作PHP安装程序的原理 
其实PHP程序的安装原理无非就是将数据库结构和内容导入到相应的数据库中,从这个过程中重新配置连接数据库的参数和文件,为了保证不被别人恶意使用安装文件,当安装完成后需要修改安装文件。 
2. 制作PHP安装程序的步骤 
step1 检查目录或文件的权限 
step2 修改或填加配置文件 
step3 检查配置文件正确性 
step4 导入数据库 
step5 锁定或删除安装文件 
3.制作安装用到的PHP函数 
检查文件是否可写,返回布尔值:is_writable("data/config.php"); 
检查文件是否可读,返回布尔值:is_readable("data/config.php"); 
fopen() 文件操作函数,打开一个文件或新建 
fwrite() 文件操作函数,写入内容到文件 
rename() 文件操作函数,给文件改名 
4.注意事项 
(1).对文件和相关文件夹权限进行检查,如缓存,生成文件,配置文件 
(2).安装文件尽可能独立,可删除,可改名。 
(3).数据库导入时,需检查: 
a.检查是否有建立数据库的权限 
b.是否同名数据库的存在 
c.考虑到数据库导入的大小是否分段处理 
(4).检查配置环境,各种模块的支持情况,如:gd2, pdo,rewirte等 
5.示例代码如下 
  config.php
  


<?php
$mysql_host = "localhost";
$mysql_user = "root";
$mysql_pass = "111111";
$mysql_dbname = "php_db";
$mysql_tag = "p_";
?>
   install.php

<?php
$files="data/config.php";
if(!is_writable($files)){
echo "<font color=red>不可写!!!</font>";
}else{
echo "<font color=green>可写</font>";
}
if(isset($_POST[install])){
$config_str = "<?php";
$config_str .= "\n";
$config_str .= '$mysql_host = "' . $_POST[db_host] . '";';
$config_str .= "\n";
$config_str .= '$mysql_user = "' . $_POST[db_user] . '";';
$config_str .= "\n";
$config_str .= '$mysql_pass = "' . $_POST[db_pass] . '";';
$config_str .= "\n";
$config_str .= '$mysql_dbname = "' . $_POST[db_dbname] . '";';
$config_str .= "\n";
$config_str .= '$mysql_tag = "' . $_POST[db_tag] . '";';
$config_str .= "\n";
$config_str .= '?>';
$ff = fopen($files, "w+");
fwrite($ff, $config_str);
//=====================
include_once ("data/config.php"); //嵌入配置文件
if (!@$link = mysql_connect($mysql_host, $mysql_user, $mysql_pass)) { //检查数据库连接情况
echo "数据库连接失败! 请返回上一页检查连接参数 <a href=install.php>返回修改</a>";
} else {
mysql_query("CREATE DATABASE `$mysql_dbname`");
mysql_select_db($mysql_dbname);
$sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log1` (
`id` int(8) unsigned NOT NULL auto_increment,
`username` varchar(40) NOT NULL COMMENT '操作用户名称',
`types` varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ;";
$sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log2` (
`id` int(8) unsigned NOT NULL auto_increment,
`username` varchar(40) NOT NULL COMMENT '操作用户名称',
`types` varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ;";
$sql_query[] = "CREATE TABLE `" . $mysql_tag . "admin_log3` (
`id` int(8) unsigned NOT NULL auto_increment,
`username` varchar(40) NOT NULL COMMENT '操作用户名称',
`types` varchar(60) NOT NULL,
PRIMARY KEY (`id`)
) ;";
foreach($sql_query as $val){
mysql_query($val);
}
echo "<script>alert('安装成功!');location.href='index.php'</script>";
rename("install.php","install.lock");
}
}
?>
<hr size=1>
<form action="" method="POST">
填写主机:<input type="text" name="db_host" value=""/><br>
用 户 名:<input type="text" name="db_user" value="root"/><br>
密  码:<input type="text" name="db_pass" value=""/><br>
数据库名:<input type="text" name="db_dbname" value="php_db"/><br>
数据前缀:<input type="text" name="db_tag" value="p_"/><br>
<button type=submit name=install>下一步</button>
</form>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-356624-1-1.html 上篇帖子: Eclipse集成PDT+XDebug调试PHP脚本 下篇帖子: Gearman + PHP 实现分布式对象调用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表