You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

154 lines
4.9 KiB

2 years ago
<?php
/**
* [Laike System] Copyright (c) 2017-2020 laiketui.com
* Laike is not a free software, it under the license terms, visited http://www.laiketui.com/ for more details.
*/
define('REAL_PATH', realpath('./') . '/');
define('WEB_PATH',dirname(dirname(__FILE__)));
class step1Action extends Action
{
public function execute ()
{
// we don't need any data here because this action doesn't serve
// any request methods, so the processing skips directly to the view
}
public function getDefaultView ()
{
unset($_SESSION);
session_destroy();
//设置目录权限
@chmod(WEB_PATH, 0777);
$request = $this->getContext()->getRequest();
$_SESSION['install_step'] = '1';
$_SESSION['install_error'] = 0;
//环境检测
$config = array(
array('操作系统', '不限制', '类Unix', PHP_OS, 'success'),
array('PHP版本', '5.6', '5.6+', PHP_VERSION, 'success'),
array('MYSQL版本', '5.5', '5.6+', '未知', 'success'), //PHP5.5不支持mysql版本检测
array('附件上传', '不限制', '2M+', '未知', 'success'),
array('GD库', '2.0', '2.0+', '未知', 'success'),
array('磁盘空间', '80M', '不限制', '未知', 'success'),
);
//PHP版本检测
if(PHP_VERSION < 5.6 || phpversion()< 5.6 ){
$config[1][4] = 'error';
$_SESSION['install_error'] = 1;
}
//附件上传检测
if(@ini_get('file_uploads'))
$config[3][3] = ini_get('upload_max_filesize');
//GD库检测
$tmp = function_exists('gd_info') ? gd_info() : array();
if(empty($tmp['GD Version'])){
$config[4][3] = '未安装';
$config[4][4] = 'error';
$_SESSION['install_error'] = 2;
} else {
$config[4][3] = $tmp['GD Version'];
}
unset($tmp);
//磁盘空间检测
if(function_exists('disk_free_space')) {
$config[5][3] = floor(disk_free_space(REAL_PATH) / (1024*1024)).'M';
}
$request->setAttribute("functions",$config);
//目录文件读写检测
unset($config);
//函数检测
$config = array(
array('dir', '[√]可写', 'success', '../LKT/webapp/_cache'),
array('dir', '[√]可写', 'success', '../LKT/webapp/_compile'),
array('dir', '[√]可写', 'success', '../LKT/webapp/config'),
array('dir', '[√]可写', 'success', './webapp/_cache'),
array('dir', '[√]可写', 'success', './webapp/_compile'),
);
foreach ($config as &$val) {
if('dir' == $val[0]){
if(!is_writable(REAL_PATH . $val[3])) {
if(is_dir($val[3])) {
$val[1] = '<span>[√]可读</span>';
$val[2] = 'error';
} else {
$val[1] = '<span style="color:#f30">[×]不存在</span>';
$val[2] = 'error';
$_SESSION['install_error'] = 3;
}
}
} else {
if(file_exists(REAL_PATH . $val[3])) {
if(!is_writable(REAL_PATH . $val[3])) {
$val[1] = '<span style="color:#f30">[×]不可写</span>';
$val[2] = 'error';
}
} else {
if(!is_writable(dirname(REAL_PATH . $val[3]))) {
$val[1] = '<span style="color:#f30">[×]不存在</span>';
$val[2] = 'error';
$_SESSION['install_error'] = 4;
}
}
}
}
$request->setAttribute("files",$config);
unset($config);
$config = array(
array('mysqli_connect', '[√]支持', 'success'),
array('file_get_contents', '[√]支持', 'success'),
array('mb_strlen', '[√]支持', 'success'),
array('curl_init', '[√]支持', 'success'),
);
foreach ($config as &$val) {
if(!function_exists($val[0])){
$val[1] = '<span style="color:#f30">[×]不支持</span>';
$val[2] = 'error';
$val[3] = '开启';
$_SESSION['install_error'] = 5;
}
}
$request->setAttribute("func",$config);
$num = 2;
$this->getContext()->getStorage()->write('step',$num);
return View :: INPUT;
}
public function getRequestMethods ()
{
return Request::NONE;
}
}
?>