Как синхронизировать общие папки с моим каталогом WordPress?

Почему SHC?

Во-первых, почему вы используете SHC, учитывая ваши "хоббистские" мотивации? Вот выдержка из их собственного описания:

При выполнении скомпилированный двоичный код расшифрует и выполнит код с опцией shell -c. К сожалению, это не даст вам никакого улучшения скорости, как реальная программа C.

Скомпилированный двоичный файл по-прежнему будет зависеть от оболочки, указанной в первой строке кода оболочки (т.е. # !/bin/sh), поэтому shc не создает полностью независимые двоичные файлы.

Основной целью SHC является защита сценариев оболочки от изменения или проверки.

  • Мое мнение (Я оставлю его в кратком виде): Даже если ваша мотивация является заявленной "основной целью" предотвращения изменений, мягко настроенный человек все еще может восстановить (и, следовательно, изменить) оригинальный сценарий! SHC, по сути, обеспечивает безопасность посредством неясности , которая представляет собой часто устаревшую стратегию при использовании в качестве основного средства безопасности. Если это не кажется полезным, тогда я бы рекомендовал отказаться от SHC и просто использовать сценарии оболочки, как это делают подавляющее большинство других. Если вам нужна реальная безопасность для ваших сценариев оболочки, я бы предложил задать конкретный вопрос об этом, без SHC или "компиляторов".

Конкретная проблема $0

Я загрузил SHC 3.8.9 с этой страницы только для того, чтобы попробовать это.

Я не смог воспроизвести проблему на Ubuntu 14.04 LTS.

#!/bin/bash
echo "Hello, world. My name is \`$0'"

Тестовый прогон

$ ./shc -f my_test.bash
$ ~/path/to/my_test.bash.x

Hello, world. My name is `~/path/to/my_test.bash.x'

Итак, ясно, что наши системы отличаются. Я могу попытаться обновить этот ответ, если вы разместите более подробную информацию об операционной системе, версии SHC и специфическом сценарии оболочки и shc командной строке, которые вы использовали для его "компиляции".

Зачем вам нужен путь?

Почему ваш сценарий должен знать его путь? Вы храните файлы со сценарием? Используется ли по умолчанию для работы с каталогом, в котором он был запущен, если пользователь не указал? Будь это хорошие идеи или нет - это вопрос мнения, но знание ваших мотивов может помочь сузить этот ответ.

Как получить текущий каталог

Команда pwd извлекает текущий каталог. Во многих случаях можно собрать полный путь своего сценария (предполагая, что он был запущен с явным относительным путем) с чем-то вроде:

realname="`pwd`/$0"

... что приведет к такому значению, как:

/path/to/script/./yourscript.bash.x

Дополнительный ./ означает только "текущий каталог", так что, хотя это может быть косметически прискорбно, это не будет негативно влиять на результат.

Если сценарий просто находится в вашем $ PATH , то необходимо использовать , который вместо pwd , но мы уже выходим за рамки первоначального вопроса, здесь, так что я завершу простым упоминанием, что определение путей может быть сложным процессом, особенно если вам необходимо сделать это безопасным образом, так что это лучше оставить для другого вопроса с конкретным заявлением проблемы в соответствии с этими линиями.

0
29.09.2018, 23:22
1 ответ

Чтобы это заработало, вам необходимо установить гостевые дополнения VirtualBox в системе, которую вы используете.

Если вы используете коробки по умолчанию, такие как debian/stretch64, они не включают гостевые дополнения VirtualBox, поэтому вам необходимо установить их вручную.

Для этого вам нужно :*добавить гостевой дополнительный iso cdrom в графический интерфейс VirtualBox и смонтировать его

VirtualBoxGUI

В вашей консоли/терминале:

vagrant up
vagrant ssh
mkdir /opt/tempdir
mount /dev/sr0 /opt/tempdir
sudo apt-get install -y linux-headers-amd64 build-essentials
sudo./VBoxLinuxAdditions.run
rm -fr /opt/tempdir

Вам необходимо выключить виртуальную машину, изменить Vagrantfile, чтобы разрешить синхронизацию папки:

config.vm.synced_folder "data", "/var/www/public_html/wpthemes/wp-content/themes/UberBasic/"

Вы можете запустить виртуальную машину с vagrant up. После этого у вас будет полностью синхронизированная папка между бродячим хостом и гостем.

Имейте в виду, что если вы используете vagrant destroy, вам придется повторить все сначала.

Или вы также можете использовать Vagrant box со встроенными гостевыми дополнениями VB, что проще.

0
28.01.2020, 04:13

Теги

Похожие вопросы