Конфигурирование апачского сервера CentOS для установки по умолчанию к определенному порту для ExpressJS и Узла

Предупреждение: Я ввел большинство этих команд непосредственно в моем браузере. Чтец протеста.

С zsh и zmv:

zmv -o -i -Qn '(**/)(*)(D)' '${1//\//-}$2'

Объяснение: шаблон **/* соответствия все файлы в подкаталогах текущего каталога, рекурсивно (это не соответствует файлам в текущем каталоге, но они не должны быть переименованы). Первые две пары круглых скобок являются группами, которые могут быть отнесены в как $1 и $2 в тексте замены. Заключительная пара круглых скобок добавляет D спецификатор шарика так, чтобы точечные файлы не были опущены. -o -i средства передать -i опция к mv так, чтобы Вам предложили, если существующий файл был бы перезаписан.


Только с инструментами POSIX:

find . -depth -exec sh -c '
    for source; do
      case $source in ./*/*)
        target="$(printf %sz "${source#./}" | tr / -)";
        mv -i -- "$source" "${target%z}";;
      esac
    done
' _ {} +

Объяснение: case оператор опускает текущий каталог и подкаталоги верхнего уровня текущего каталога. target содержит имя исходного файла ($0) с продвижением ./ разделенный и все наклонные черты, замененные тире, плюс финал z. Финал z есть ли в случае, если имя файла заканчивается новой строкой: иначе замена команды разделила бы его.

Если Ваш find не поддерживает -exec … + (OpenBSD, я смотрю на Вас):

find . -depth -exec sh -c '
    case $0 in ./*/*)
      target="$(printf %sz "${0#./}" | tr / -)";
      mv -i -- "$0" "${target%z}";;
    esac
' {} \;

С ударом (или ksh93), Вы не должны называть внешнюю команду для замены наклонных черт тире, можно использовать ksh93 расширение параметра со строковой заменяющей конструкцией ${VAR//STRING/REPLACEMENT}:

find . -depth -exec bash -c '
    for source; do
      case $source in ./*/*)
        source=${source#./}
        target="${source//\//-}";
        mv -i -- "$source" "$target";;
      esac
    done
' _ {} +

2
13.01.2019, 23:21
2 ответа

Вы добрались Address In Use потому что Apache уже использует порт 80.

Если Вы хотите получить доступ к своему приложению Экспресса через порт 80, то необходимо завершить работу Apache и запустить приложение на порте 80.

1
27.01.2020, 22:22

Когда дело доходит до портов TCP (который порт 80), можно только связать один процесс с данным портом. Процесс в этом случае является Apache, таким образом, никакой другой процесс не может использовать его, в то время как Apache связывается с портом. Можно использовать команду netstat с -t переключатель для наблюдения используемых портов TCP.

$ netstat -tapn | grep :80
tcp        0      0 :::80        :::*            LISTEN      7999/httpd          

Здесь мы видим Apache, httpd, использует порт. Также Вы видите идентификатор (7999) процесса для процесса в вышеупомянутом выводе также.

0
27.01.2020, 22:22

Теги

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