123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- <?php
- class InstallModule
- {
-
- public function checkoutEnv(&$dbURL, &$dbName, &$dbUser, &$dbPassword)
- {
- $result = array('fileWrite' => 0, 'db' => 0, 'curl' => 0, 'mbString' => 0, 'sessionPath' => 0, 'isInstalled' => 0);
-
- try {
- if (file_put_contents(PATH_FW . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'fileWriteTest.txt', 'ok')) {
- $result['fileWrite'] = 1;
- unlink(PATH_FW . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'fileWriteTest.txt');
-
- if (file_put_contents('./dump' . DIRECTORY_SEPARATOR . 'fileWriteTest.txt', 'ok')) {
- $result['fileWrite'] = 1;
- unlink('./dump' . DIRECTORY_SEPARATOR . 'fileWriteTest.txt');
-
- if (file_put_contents('../fileWriteTest.txt', 'ok')) {
- $result['fileWrite'] = 1;
- unlink('../fileWriteTest.txt');
- } else
- $result['fileWrite'] = 0;
- } else
- $result['fileWrite'] = 0;
- } else
- $result['fileWrite'] = 0;
- } catch (\Exception $e) {
- $result['fileWrite'] = '0';
- $result['fileWriteError'] = $e->getMessage();
- }
-
- try {
- $dbURL = explode(':', $dbURL);
- if (empty($dbURL[1]))
- $dbURL[1] = '3306';
- if (!class_exists('PDO')) {
- $result['db'] = 0;
- } else {
- $conInfo = 'mysql:host=' . $dbURL[0] . ';port=' . $dbURL[1] . ';dbname=' . $dbName . ';charset=utf8';
- if ($con = new \PDO($conInfo, $dbUser, $dbPassword)) {
- $result['db'] = 1;
-
- $stat = $con->query("SELECT * FROM eo_user;");
- if($stat) {
- $table_name = $stat -> fetch(\PDO::FETCH_ASSOC);
- if ($table_name) {
- $result['isInstalled'] = 1;
- } else {
- $result['isInstalled'] = 0;
- }
- }else{
- $result['isInstalled'] = 0;
- }
- } else {
- $result['db'] = 0;
- }
- }
- } catch (\Exception $e) {
- $result['db'] = 0;
- $result['dbError'] = $e->getMessage();
- }
-
- try {
- if (!function_exists('curl_init')) {
- $result['curl'] = 0;
- } else {
- $ch = curl_init(realpath('./index.php'));
- if ($ch) {
- curl_close($ch);
- $result['curl'] = 1;
- } else
- $result['curl'] = 0;
- }
- } catch (\Exception $e) {
- $result['curl'] = 0;
- $result['curlError'] = $e->getMessage();
- }
-
- try {
- if (!function_exists('mb_strlen')) {
- $result['mbString'] = 0;
- } else {
- $len = mb_strlen('test', 'utf8');
- if ($len) {
- $result['mbString'] = 1;
- } else {
- $result['mbString'] = 0;
- }
- }
- } catch (\Exception $e) {
- $result['mbString'] = 0;
- $result['mbStringError'] = $e->getMessage();
- }
-
- try {
- if (session_save_path() == '') {
- $session_path = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN' ? 'C:/Windows/Temp' : '/tmp';
- } else {
- $session_path = session_save_path();
- }
- if (is_writable($session_path)) {
- $result['sessionPath'] = 1;
- } else {
- $result['sessionPath'] = 0;
- }
- } catch (\Exception $e) {
- $result['sessionPath'] = 0;
- $result['sessionPathError'] = $e->getMessage();
- }
- return $result;
- }
-
- public function createConfigFile(&$dbURL, &$dbName, &$dbUser, &$dbPassword, &$websiteName, &$language)
- {
- if (file_exists(PATH_FW . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'eo_config.php')) {
-
- unlink(realpath(PATH_FW . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'eo_config.php'));
- }
- $dbURL = explode(':', $dbURL);
- if (empty($dbURL[1]))
- $dbURL[1] = '3306';
- $websiteName = isset($websiteName) ? $websiteName : 'eolinker开源版';
- $config = "<?php
- //主机地址
- defined('DB_URL') or define('DB_URL', '{$dbURL[0]}');
- //主机端口,默认mysql为3306
- defined('DB_PORT') or define('DB_PORT', '{$dbURL[1]}');
- //连接数据库的用户名
- defined('DB_USER') or define('DB_USER', '{$dbUser}');
- //连接数据库的密码,推荐使用随机生成的字符串
- defined('DB_PASSWORD') or define('DB_PASSWORD', '{$dbPassword}');
- //数据库名
- defined('DB_NAME') or define('DB_NAME', '{$dbName}');
- //是否允许新用户注册
- defined('ALLOW_REGISTER') or define('ALLOW_REGISTER', TRUE);
- //是否允许更新项目,如果设置为FALSE,那么自动更新和手动更新都将失效
- defined('ALLOW_UPDATE') or define('ALLOW_UPDATE', TRUE);
- //网站名称
- defined('WEBSITE_NAME') or define('WEBSITE_NAME', '{$websiteName}');
- //数据表前缀
- defined('DB_TABLE_PREFIXION') or define('DB_TABLE_PREFIXION', 'eo');
- //语言
- defined('LANGUAGE') or define ('LANGUAGE', '{$language}');
- ?>";
- if ($configFile = file_put_contents(PATH_FW . DIRECTORY_SEPARATOR . 'config' . DIRECTORY_SEPARATOR . 'eo_config.php', $config))
- return TRUE;
- else
- return FALSE;
- }
-
- public
- function installDatabase()
- {
-
- $sql = file_get_contents(PATH_FW . DIRECTORY_SEPARATOR . 'db/eolinker_os_mysql.sql');
- $sqlArray = array_filter(explode(';', $sql));
- $dao = new InstallDao;
- $result = $dao->installDatabase($sqlArray);
- return $result;
- }
- }
- ?>
|