environment require disable mysql extension

This commit is contained in:
xiaomlove
2025-05-11 21:21:29 +07:00
parent de07fc932c
commit 9a864b817a
11 changed files with 110 additions and 96 deletions

View File

@@ -60,6 +60,7 @@ if [ "$SERVICE_NAME" = "php" ]; then
# composer install
if [ ! -d "$VENDOR_DIR" ]; then
echo_info "vendor dir: $VENDOR_DIR not exists, run composer install ..."
git config --global --add safe.directory ${ROOT_PATH}
composer install --working-dir=${ROOT_PATH}
else
echo_success "vendor dir: $VENDOR_DIR already exists, skip run composer install ..."

View File

@@ -118,11 +118,11 @@ class NexusUpdate extends Command
return 0;
}
if (!$mysqlInfo['match']) {
$this->doLog("Error: MySQL version: {$mysqlInfo['version']} is too low, please use the newest version of 5.7 or above.", 'error');
$this->doLog("Error: MySQL version: {$mysqlInfo['version']} is too low, please use the newest version of {$mysqlInfo['minVersion']} or above.", 'error');
return 0;
}
if (!$redisInfo['match']) {
$this->doLog("Error: Redis version: {$mysqlInfo['version']} is too low, please use 2.0.0 or above.", 'error');
$this->doLog("Error: Redis version: {$mysqlInfo['version']} is too low, please use {$mysqlInfo['minVersion']} or above.", 'error');
return 0;
}
if ($includeComposer) {

View File

@@ -56,8 +56,7 @@ class Test extends Command
*/
public function handle()
{
$rep = new SeedBoxRepository();
$rep->updateCacheCronjob();
Language::updateTransStatus();
}
}

View File

@@ -68,7 +68,7 @@ class Kernel extends ConsoleKernel
private function registerScheduleCleanup(Schedule $schedule): void
{
if (!Schema::hasTable("settings")) {
if (!file_exists(base_path(".env")) || !Schema::hasTable("settings")) {
return;
}
$interval = get_setting("main.autoclean_interval_one");

View File

@@ -38,72 +38,72 @@ class Language extends NexusModel
'cs' => [
'lang_name' => 'Czech',
'lang_name_cn' => '捷克语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'da' => [
'lang_name' => 'Danish',
'lang_name_cn' => '丹麦语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'nl' => [
'lang_name' => 'Dutch',
'lang_name_cn' => '荷兰语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'fi' => [
'lang_name' => 'Finnish',
'lang_name_cn' => '芬兰语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'fr' => [
'lang_name' => 'French',
'lang_name_cn' => '法语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'de' => [
'lang_name' => 'German',
'lang_name_cn' => '德语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'el' => [
'lang_name' => 'Greek',
'lang_name_cn' => '希腊语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'nb' => [
'lang_name' => 'Norwegian',
'lang_name_cn' => '挪威语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'pl' => [
'lang_name' => 'Polish',
'lang_name_cn' => '波兰语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'pt' => [
'lang_name' => 'Portuguese',
'lang_name_cn' => '葡萄牙语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'ro' => [
'lang_name' => 'Romanian',
'lang_name_cn' => '罗马尼亚语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'ru' => [
'lang_name' => 'Russian',
'lang_name_cn' => '俄语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'es' => [
'lang_name' => 'Spanish',
'lang_name_cn' => '西班牙语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
'sv' => [
'lang_name' => 'Swedish',
'lang_name_cn' => '瑞典语',
'trans_state' => self::TRANS_STATE_INCOMPLETE,
'trans_state' => self::TRANS_STATE_NEED_NEW,
],
];

View File

@@ -22,7 +22,7 @@ class PluginStore extends Model
'description' => 'array',
];
const PLUGIN_LIST_API = "https://nppl.nexusphp.workers.dev";
const PLUGIN_LIST_API = "https://nexusphp.org/plugin-store";
const BLOG_POST_INFO_API = "https://nexusphp.org/wp-json/wp/v2/posts/%d";
const BLOG_POST_URL = "https://nexusphp.org/?p=%d";
@@ -98,7 +98,7 @@ class PluginStore extends Model
} else {
$log .= ", not_null";
}
do_log($log, 'debug');
do_log($log);
return self::$rows;
}
@@ -132,7 +132,7 @@ class PluginStore extends Model
$count = 0;
foreach ($list as $row) {
$installedVersion = $enabled[$row['plugin_id']] ?? '';
if ($installedVersion && version_compare($installedVersion, $row['version'], '<=')) {
if ($installedVersion && version_compare($installedVersion, $row['version'], '<')) {
$count++;
}
}

View File

@@ -48,9 +48,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'czechrep.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'cs',
'trans_state' => 'need-new',
),
3 =>
array (
@@ -59,9 +59,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'denmark.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'da',
'trans_state' => 'need-new',
),
4 =>
array (
@@ -70,9 +70,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'netherlands.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'nl',
'trans_state' => 'need-new',
),
5 =>
array (
@@ -103,9 +103,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'finland.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'fi',
'trans_state' => 'need-new',
),
8 =>
array (
@@ -114,9 +114,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'france.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'fr',
'trans_state' => 'need-new',
),
9 =>
array (
@@ -125,9 +125,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'germany.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'de',
'trans_state' => 'need-new',
),
10 =>
array (
@@ -136,9 +136,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'greece.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'el',
'trans_state' => 'need-new',
),
11 =>
array (
@@ -180,9 +180,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'japan.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'ja',
'trans_state' => 'need-new',
),
15 =>
array (
@@ -202,9 +202,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'norway.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'nb',
'trans_state' => 'need-new',
),
17 =>
array (
@@ -224,9 +224,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'poland.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'pl',
'trans_state' => 'need-new',
),
19 =>
array (
@@ -235,9 +235,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'portugal.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'pt',
'trans_state' => 'need-new',
),
20 =>
array (
@@ -246,9 +246,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'romania.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'ro',
'trans_state' => 'need-new',
),
21 =>
array (
@@ -257,9 +257,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'russia.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'ru',
'trans_state' => 'need-new',
),
22 =>
array (
@@ -301,9 +301,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'spain.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'es',
'trans_state' => 'need-new',
),
26 =>
array (
@@ -312,9 +312,9 @@ class LanguageTableSeeder extends Seeder
'flagpic' => 'sweden.gif',
'sub_lang' => 1,
'rule_lang' => 0,
'site_lang' => 0,
'site_lang_folder' => '',
'trans_state' => 'unavailable',
'site_lang' => 1,
'site_lang_folder' => 'sv',
'trans_state' => 'need-new',
),
27 =>
array (

View File

@@ -37,6 +37,10 @@ class Install
'mysqli', 'bcmath', 'redis', 'gd', 'gmp', 'Zend OPcache', 'pcntl', 'posix', 'sockets', 'zip', 'intl',
'sqlite3', 'pdo_sqlite'
];
protected array $conflictExtensions = [
'mysql',
];
protected array $optionalExtensions = [
// ['name' => 'swoole', 'desc' => "If use swoole for Octane, make sure 'current' shows 1"],
];
@@ -193,6 +197,16 @@ class Install
'result' => $this->yesOrNo(empty($disabledFunctions)),
];
foreach ($this->conflictExtensions as $extension) {
$loaded = extension_loaded($extension);
$tableRows[] = [
'label' => "PHP extension $extension",
'required' => 'disabled',
'current' => (int)$loaded,
'result' => $loaded ? 'NO' : 'YES',
];
}
foreach ($this->requiredExtensions as $extension) {
if ($extension == 'pcntl' && function_exists('exec')) {
$output = [];
@@ -707,8 +721,9 @@ class Install
$sql = 'select version() as v';
$result = NexusDB::select($sql);
$version = $result[0]['v'];
$match = version_compare($version, '5.7.8', '>=');
return compact('version', 'match');
$minVersion = '5.7.8';
$match = version_compare($version, $minVersion, '>=');
return compact('version', 'match', 'minVersion');
}
public function getRedisVersionInfo(): array
@@ -716,8 +731,9 @@ class Install
$redis = NexusDB::redis();
$result = $redis->info();
$version = $result['redis_version'];
$match = version_compare($version, '2.6.12', '>=');
return compact('version', 'match');
$minVersion = '2.6.12';
$match = version_compare($version, $minVersion, '>=');
return compact('version', 'match', 'minVersion');
}
public function checkLock()

View File

@@ -95,6 +95,7 @@ return array (
'upload_deny_approval_deny_count' => 2,
'enable_global_search' => 'yes',
'tmp_invite_count' => 0,
'complain_enabled' => 'yes',
),
'smtp' =>
array (

View File

@@ -74,3 +74,25 @@ img.hitandrun {
.word-break-all {
word-break: break-all;
}
.form-box {
padding: 15px;
}
.form-control-row {
display: flex;
align-items: center;
padding: 10px 0;
}
.form-control-row .label {
width: 80px
}
.form-control-row .field {
}
.form-control-row input[type=text],textarea {
width: 300px;
padding: 4px;
}
.form-control-row input[type=checkbox] {
vertical-align: sub;
}

View File

@@ -1033,30 +1033,6 @@ if (get_setting('seed_box.enabled') == 'yes') {
}
$seedBox .= sprintf('<div><input type="button" id="add-seed-box-btn" value="%s"/></div>', $lang_usercp['add_seed_box_btn']);
tr_small($lang_usercp['row_seed_box'], $seedBox, 1);
$seedBoxCss = <<<CSS
.form-box {
padding: 15px;
}
.form-control-row {
display: flex;
align-items: center;
padding: 10px 0;
}
.form-control-row .label {
width: 80px
}
.form-control-row .field {
}
.form-control-row input[type=text],textarea {
width: 300px;
padding: 4px;
}
.form-control-row input[type=checkbox] {
vertical-align: sub;
}
CSS;
$seedBoxForm = <<<FORM
<div class="form-box">
<form id="seed-box-form">
@@ -1117,7 +1093,6 @@ jQuery('#seed-box-table').on('click', '.remove-seed-box-btn', function () {
});
JS;
\Nexus\Nexus::js($seedBoxJs, 'footer', false);
\Nexus\Nexus::css($seedBoxCss, 'footer', false);
}
//end seed box