Правильный способ изменить каталог или запустить его из нескольких каталогов под другим портом для apache2:
Для apache2 файлы конфигурации находятся под /etc/apache2
и не используют один файл конфигурации, как в более старых версиях, но разбиты на более мелкие файлы конфигурации, /etc/apache2/apache2.conf
являясь основным файлом конфигурации. Чтобы обслуживать файлы из другого каталога, нам нужен новый conf-файл virtualhost. Файлы conf виртуального хоста находятся в /etc/apache2/sites-available
(не редактируйте файлы на сайтах с поддержкой). Установка Apache по умолчанию использует файл conf Virtualhost000-default.conf
.
Начните с создания нового файла virtualhost, скопировав файл virtualhost по умолчанию, используемый установкой по умолчанию apache (тот, который работает на localhost на порту 80). Перейдите в каталог /etc/apache2/sites-available
и затем скопируйте его sudo cp 000-default.conf example.com.conf
, теперь отредактируйте файл, sudo gedit example.com.conf
чтобы:
<VirtualHost *:80>
ServerAdmin example@localhost
DocumentRoot /home/ubuntu/example.com
</VirtualHost>
Для краткости я удалил несущественные строки из вышеуказанного файла. Вот DocumentRoot
путь к каталогу, из которого должны обслуживаться файлы сайта, например index.html
.
Создайте каталог, из которого вы хотите обслуживать файлы, например; mkdir example.com
и владелец изменения и группа по умолчанию каталога, для , например , если вы вошли в имени пользователя являются ubuntu
изменение прав доступа как sudo chown ubuntu:www-data example.com
. Это предоставляет полный доступ пользователю ubuntu
и позволяет читать и выполнять доступ к группе www-data
.
Теперь отредактируйте файл apache conf /etc/apache2/apache2.conf
, введя команду sudo gedit apache2.conf
и найдите строку <Directory /var/www/>
и ниже закрывающего тега </Directory>
, добавьте следующее ниже:
<Directory /home/ubuntu/example.com>
Options Indexes FollowSymLinks Includes ExecCGI
AllowOverride All
Require all granted
</Directory>
Теперь есть две команды для включения или отключения файлов конфигурации virtualhost, которые есть a2ensite
и a2dissite
соответственно. Теперь, так как наш example.com.conf
файл использует тот же порт ( 80
), который используется в файле конфигурации по умолчанию ( 000-default.conf
), мы должны отключить файл конфигурации по умолчанию, sudo a2dissite 000-default.conf
введя команду, и включить наш conf файл virtualhost с помощью командыsudo a2ensite example.com.conf
Теперь перезагрузите или перезагрузите сервер с помощью команды sudo service apache2 restart
. Теперь apache обслуживает файлы из директории example.com
на localhost
порт по умолчанию 80
.
Команда в a2ensite
основном создает символическую ссылку на файл conf в каталоге с поддержкой сайта
Не редактируйте файлы в директориях с поддержкой сайтов (или * -enabled), как указано в этом ответе https://stackoverflow.com/a/41568701/2532763
Чтобы изменить порт и запустить его из нескольких каталогов на разных портах:
Теперь, если вам нужно запустить каталог на другом порту, измените номер порта с 80 на 8080, отредактировав файл virtualhost как:
<VirtualHost *:8080>
ServerAdmin user@localhost
DocumentRoot /home/ubuntu/work
</VirtualHost>
и редактирование /etc/apache2/ports.conf
и добавление Listen 8080
чуть ниже линииListen 80
Теперь мы можем включить файл conf Virtualhost по умолчанию, который работает на порту 80, так как каталог example.com использует порт 8080, так как sudo a2ensite 000-default.conf
Теперь перезагрузите или перезагрузите сервер с помощью команды sudo service apache2 restart
. Теперь к обоим каталогам можно получить доступ localhost
иlocalhost:8080