Всегда существует ГОЛОВА, что точки к в настоящее время проверяли ответвление по удаленному repo (который может или не может быть ведущим устройством). Даже удаленные репозитории имеют текущие ответвления. Обычно это - ведущее устройство, и первое, что пришло на ум я не могу думать ни о какой причине, почему можно было бы хотеть изменить его, но это может быть изменено.
Попробуйте отменить связь . Пользователю веб-сервера потребуются права на запись для каталога / сценария.
Боковое примечание к другим ответам:
Я бы рекомендовал переименовать файл или поместить оператор выхода в начало файл, удаление - ИМХО не лучший вариант. Пользователь может захотеть прочитать ваш сценарий установки или повторно запустить его. Возможно, это могло бы быть лучшим решением:
$contents = file_get_contents(__FILE__);
file_put_contents(__FILE__,
"<?php # Remove this line and the next line to re-configure the application
die('The application has already been configured.'); ?>\n" . $contents
);
Вы также можете переименовать его во что-то, что веб-сервер не будет передавать клиентам, или, что еще лучше, переместите его куда-нибудь, к чему у веб-сервера нет доступа, или даже и то, и другое:
rename(__FILE__, '/tmp/' . basename(__FILE__) . '.bak');
Не забудьте упомяните место, куда был перемещен сценарий установки в сценарии установки, хотя ...
Об удалении каталогов: Это делается с помощью rmdir ()
, однако каталог должен быть пустым. Перемещение папок такое же, как и с файлами, функция называется rename ()
.
rmdir ()
, однако каталог должен быть пустым. Перемещение папок такое же, как и с файлами, функция называется rename ()
. Это делается с помощью rmdir ()
, однако каталог должен быть пустым. Перемещение папок такое же, как и с файлами, функция называется rename ()
. unlink ($ _ SERVER ['SCRIPT_FILENAME']);
или
unlink (__ FILE__ );
Вы можете использовать unlink
, чтобы удалить файл, и __ FILE __
, чтобы получить полный путь к текущему файлу:
unlink(__FILE__);
В качестве «доказательства»:
squale@shark:~/developpement/tests/temp
$ ll | grep 'remove-myself.php'
-rw-r--r-- 1 squale squale 25 2009-08-01 17:01 remove-myself.php
=> Файл существует
squale@shark:~/developpement/tests/temp
$ cat remove-myself.php
<?php
unlink(__FILE__);
=> Он содержит код, который я дал
squale@shark:~/developpement/tests/temp
$ php ./remove-myself.php
=> Я запускаю скрипт
squale@shark:~/developpement/tests/temp
$ ll | grep 'remove-myself.php'
=> Он больше не существует
Чтобы это сработало, вы должны быть уверены, что вы иметь необходимые привилегии ... это означает, что пользователь, пытающийся удалить файл, должен иметь права доступа к каталогу, содержащему его.
Когда вы находитесь в командной строке, это обычно нормально; но если вы пытаетесь сделать это через Apache, вам нужно будет предоставить Apache доступ для записи в этот каталог / файл - Apache обычно не имеет таких привилегий по умолчанию (небезопасно и обычно не требуется )
Не уверен, что это будет возможно в Windows ... Это работает в Linux, но Windows может «заблокировать» файл при его запуске ...