Created
November 3, 2022 20:41
-
-
Save xTCry/20f10761adfb76bf2ca40dbef69e737a to your computer and use it in GitHub Desktop.
Bitrix sym links (php)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function removeLinks() | |
{ | |
$strError = []; | |
if (is_link($_SERVER['DOCUMENT_ROOT'] . '/bitrix')) { | |
unlink($_SERVER['DOCUMENT_ROOT'] . '/bitrix'); | |
} else { | |
$strError[] = 'Папка bitrix не была ссылкой'; | |
} | |
if (is_link($_SERVER['DOCUMENT_ROOT'] . '/upload')) { | |
unlink($_SERVER['DOCUMENT_ROOT'] . '/upload'); | |
} else { | |
$strError[] = 'Папка upload не была ссылкой'; | |
} | |
if (is_link($_SERVER['DOCUMENT_ROOT'] . '/local')) { | |
unlink($_SERVER['DOCUMENT_ROOT'] . '/local'); | |
} else { | |
$strError[] = 'Папка local не была ссылкой'; | |
} | |
return $strError; | |
} | |
?> | |
<html> | |
<head> | |
<title>Создание ссылок на папки bitrix, local и upload</title> | |
</head> | |
<body> | |
<?php | |
error_reporting(E_ALL & ~E_NOTICE); | |
@ini_set('display_errors', 1); | |
$strError = []; | |
$path = ($_POST['path']) ? rtrim($_POST['path'], '/\\') : '../core'; | |
if ($_POST['remove']) { | |
$strError = removeLinks(); | |
echo 'Ссылки были удалены.<br>'; | |
} else if ($_POST['create']) { | |
$full_path = (preg_match('#^/#', $path)) ? $path : realpath($_SERVER['DOCUMENT_ROOT'] . '/' . $path); | |
if (!isset($_GET['force']) && file_exists($_SERVER['DOCUMENT_ROOT'] . '/bitrix')) { | |
$strError[] = 'В текущей папке уже существует папка bitrix. <br> <a href="?force">Пересоздать</a>'; | |
} | |
if (is_dir($full_path)) { | |
if (isset($_GET['force']) && is_dir($full_path . '/bitrix')) { | |
$strError += removeLinks(); | |
} | |
if (count($strError) < 1 || isset($_GET['force'])) { | |
if (is_dir($full_path . '/bitrix')) { | |
if (symlink($path . '/bitrix', $_SERVER['DOCUMENT_ROOT'] . '/bitrix')) { | |
if (symlink($path . '/upload', $_SERVER['DOCUMENT_ROOT'] . '/upload')) { | |
if (symlink($path . '/local', $_SERVER['DOCUMENT_ROOT'] . '/local')) { | |
echo 'Символические ссылки удачно созданы'; | |
} else { | |
$strError[] = 'Не удалось создать ссылку на папку local, обратитесь к администратору сервера'; | |
} | |
} else { | |
$strError[] = 'Не удалось создать ссылку на папку upload, обратитесь к администратору сервера'; | |
} | |
} else { | |
$strError[] = 'Не удалось создать ссылку на папку bitrix, обратитесь к администратору сервера'; | |
} | |
} else { | |
$strError[] = 'Указанный путь не содержит папку bitrix'; | |
} | |
} | |
} else { | |
$strError[] = 'Неверно указан путь или ошибка прав доступа'; | |
} | |
} | |
if (count($strError) > 0) { | |
echo 'Ошибка!'; | |
echo implode('<br><hr>', $strError); | |
echo '<br>Исходный путь: <b>' . $full_path . '</b>'; | |
} | |
?> | |
<form method="POST" style="border: 1px grey;"> | |
Путь к папке, содержащей папки <i>bitrix</i>, <i>local</i> и <i>upload</i>: | |
<input name="path" value="<?= htmlspecialchars($path) ?>"><br> | |
<input type="submit" value="Создать" name="create"> | |
<input type="submit" value="Удалить" name="remove"> | |
</form> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment