Вы не хотите «открывать порт», вы хотите настроить веб-сервер.
По умолчанию веб-сервер прослушивает порт 80 для HTTP или веб-сервер открывает этот порт для вас , Ваш сайт хранится в папке, вы можете называть его «www», но это не «AKA» 127.0.0.1, и если вы обслуживаете его на других компьютерах, вы не можете позволить своему веб-серверу прослушивать только 127.0.0.1. Кроме того, если доступ ограничивается только локальной сетью, безопасность может не быть проблемой, но при этом необходимо учитывать такую проблему безопасности, когда вы настраиваете сервер для доступа других к вашим файлам. Прежде чем продолжить, убедитесь, что вы поняли этот материал.
Вы можете начать с установки пакета apache2, и ваш веб-сервер запущен и работает (файлы хранятся в /var/www/html).
Я предлагаю вам Google что-то вроде «ubuntu apache php», чтобы найти множество руководств по этой теме, то есть установить, настроить веб-сервер, способный запускать PHP-сайты (возможно, включая сервер MySQL), если вы столкнулись с некоторыми конкретными проблемы в этой процедуре, задайте эти вопросы.
СОВЕТ: может быть более полезно добавить вашу конкретную версию Ubuntu, когда Googling, например: «ubuntu 14.04 LTS apache php»
Несмотря на то, что способ printf муру не может быть избит, мне лично нравится jot для такого рода вещей. jot не установлен по умолчанию в Ubuntu. Пакет athena-jot предоставляет его. Любая из этих команд работает:
mkdir -p "$(jot -s/ -c 26 A)"
jot -s/ -c 26 A | xargs mkdir -p
Действительно любая команда, которая генерирует последовательность букв и объединяет их со слэшами, облегчит это, потому что ее вывод затем может быть передан на mkdir -p либо через путь printf muru (как в ответе муру) или с помощью jot . Вот несколько примеров с использованием нескольких инструментов и xargs, которые не требуют установки программного обеспечения, за исключением, возможно, минимальных систем или Ubuntu Core:
perl -we 'print join "/", A..Z' | xargs mkdir -p
ruby -we 'print (?A..?Z).to_a * ?/' | xargs mkdir -p
python3 -c 'print("/".join(__import__("string").ascii_uppercase))' | xargs mkdir -p
Old Ubuntu выпуски поставляются с Python 2 вместо Python 3. Для этого просто измените python3 на python, чтобы эта последняя команда работала, если вы действительно хотите сделать это с помощью Python.
Аналогично, Можно ответить иначе: можно записать:
printf '%s/' {A..Z} | xargs mkdir -p
Обратный / в пути к каталогу mkdir -p просят создать, не проблема и, возможно, стилистически предпочтительнее. Но это прекрасно, чтобы опустить это, как и другие примеры в этом ответе.
На очень простом уровне вы можете использовать расширение {A..Z} для генерации всей буквы, затем итеративно сделать и ввести каждый из них:
~/test_directory$ for d in {A..Z}; do mkdir "$d"; cd "$d"; done
~/test_directory/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z$
Как вы можете видеть в моем приглашении , теперь у вас есть полностью привязанный каталог.
Однако, если фактические имена каталогов отличаются от простого алфавита, вам нужно каким-то образом предоставить список имен каталогов, возможно, через файл, по которому вы повторяете и выполняете тот же процесс снова. В принципе, это
while IFS= read -r dir_name;do mkdir "$dir_name"; cd "$dir_name" ;done < directory_list.txt
С mkdir, printf и расширением скобки bash:
$ mkdir -p "$(printf "%s/" {A..Z})"
$ tree A
A
└── B
└── C
└── D
└── E
└── F
└── G
└── H
└── I
└── J
└── K
└── L
└── M
└── N
└── O
└── P
└── Q
└── R
└── S
└── T
└── U
└── V
└── W
└── X
└── Y
└── Z
25 directories, 0 files
{A..Z} расширяется до A B ... Z, printf "%s/" печатает аргументы с помощью / после них, поэтому Я получаю A/B/...Z/ и mkdir -p создает каталог A/B/.../Z с любыми родительскими каталогами, которые необходимо создать. Несмотря на то, что способ printf муру не может быть избит, мне лично нравится jot для такого рода вещей. jot не установлен по умолчанию в Ubuntu. Пакет athena-jot предоставляет его. Любая из этих команд работает:
mkdir -p "$(jot -s/ -c 26 A)"
jot -s/ -c 26 A | xargs mkdir -p
Действительно любая команда, которая генерирует последовательность букв и объединяет их со слэшами, облегчит это, потому что ее вывод затем может быть передан на mkdir -p либо через путь printf muru (как в ответе муру) или с помощью jot . Вот несколько примеров с использованием нескольких инструментов и xargs, которые не требуют установки программного обеспечения, за исключением, возможно, минимальных систем или Ubuntu Core:
perl -we 'print join "/", A..Z' | xargs mkdir -p
ruby -we 'print (?A..?Z).to_a * ?/' | xargs mkdir -p
python3 -c 'print("/".join(__import__("string").ascii_uppercase))' | xargs mkdir -p
Old Ubuntu выпуски поставляются с Python 2 вместо Python 3. Для этого просто измените python3 на python, чтобы эта последняя команда работала, если вы действительно хотите сделать это с помощью Python.
Аналогично, Можно ответить иначе: можно записать:
printf '%s/' {A..Z} | xargs mkdir -p
Обратный / в пути к каталогу mkdir -p просят создать, не проблема и, возможно, стилистически предпочтительнее. Но это прекрасно, чтобы опустить это, как и другие примеры в этом ответе.
На очень простом уровне вы можете использовать расширение {A..Z} для генерации всей буквы, затем итеративно сделать и ввести каждый из них:
~/test_directory$ for d in {A..Z}; do mkdir "$d"; cd "$d"; done
~/test_directory/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z$
Как вы можете видеть в моем приглашении , теперь у вас есть полностью привязанный каталог.
Однако, если фактические имена каталогов отличаются от простого алфавита, вам нужно каким-то образом предоставить список имен каталогов, возможно, через файл, по которому вы повторяете и выполняете тот же процесс снова. В принципе, это
while IFS= read -r dir_name;do mkdir "$dir_name"; cd "$dir_name" ;done < directory_list.txt
С mkdir, printf и расширением скобки bash:
$ mkdir -p "$(printf "%s/" {A..Z})"
$ tree A
A
└── B
└── C
└── D
└── E
└── F
└── G
└── H
└── I
└── J
└── K
└── L
└── M
└── N
└── O
└── P
└── Q
└── R
└── S
└── T
└── U
└── V
└── W
└── X
└── Y
└── Z
25 directories, 0 files
{A..Z} расширяется до A B ... Z, printf "%s/" печатает аргументы с помощью / после них, поэтому Я получаю A/B/...Z/ и mkdir -p создает каталог A/B/.../Z с любыми родительскими каталогами, которые необходимо создать.