Измените корневую папку документов Apache на дополнительный жесткий диск


28

Я установил серверную версию ubuntu 12.04 для своего серверного компьютера. Я установил сервер лампы. мне нужно изменить расположение var / www на расположение моего дополнительного жесткого диска. я был настроен так много раз, чтобы в gedit / etc / apache2 / sites-available / default вот мой код

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

а также используется

sudo chown -R var/www /media/myserver/

а также

chmod -R 755 /media/myserver/

Тем не менее я не смог подключить мой / media / myserver и мой браузер показывает следующее сообщение

Forbidden

You don't have permission to access / on this server.

Подскажите кто нибудь как смонтировать myserver у меня на var / www, спасибо заранее


был ли второй диск отформатирован и смонтирован в каталог / media / myserver? Вы добавили запись fstab для этого диска?
Дэмиен

Вы проверили, является ли косая черта в корне документа проблемой, обратите внимание, где ее закомментировано нет, но при редактировании она есть.
Крис

Вы пытались изменить файл apache2.conf?
Golden_flash

Ответы:


40

Вам придется редактировать apache2.confи 000-default.confизменять корневой каталог документа apache.

Сервер Apache установлен на. var/www/htmlЭто корневой каталог по умолчанию Apache.

Либо измените корневой каталог Apache, либо переместите проект в /var/www/html.

  1. Чтобы изменить корневой каталог Apache, выполните:

    cd /etc/apache2/sites-available
    
  2. Затем откройте 000-default.confфайл с помощью команды:

    nano 000-default.conf
    
  3. Изменить DocumentRootопцию:

    DocumentRoot /path/to/my/project
    
  4. Затем перезапустите сервер apache:

    sudo service apache2 restart
    

Если вы получили Forbidden You don't have permission to access / on this serverпосле изменения корня Apache, то выполните следующие действия

  1. Найдите apache2.confрасположены в /etc/apache2и открыть его с помощью:

    nano apache2.conf
    
  2. Используйте Ctrl+ Wи ищите каталог (он должен быть в строке 153)

  3. Это должно выглядеть так

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Измените это на

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Перезапустите Apache

    sudo service apache2 restart
    

Я сделал скрипт, который меняет корень apache одной командой. Вы можете найти это на моем github .


Это своего рода работа для меня, но я должен добавить <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. В /etc/apache2/apahce2.confперед перезапуском службы apache2.
августа

19

Может быть, немного поздно. Но до сих пор..

Вы должны отредактировать ваши права доступа к каталогу в apache.conf в / etc / apache2

Искать это

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

и добавьте этот код под ним, который дает разрешение на доступ к вашему каталогу

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>

3

Просто измените корень документа в вашей активированной конфигурации. /etc/apache2/sites-enabled/000-default а затем убедитесь, что перезагрузите ваш Apache.

Так что попробуйте с этим:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Тогда правильное разрешение должно быть дано так:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/

да, мой друг, я уже сделал это см. приведенный выше код, я прокомментировал корень документа по умолчанию и вставил новый корень документа. после apache2 остановись и начни. это не сработало. это ошибка 403, и было показано, что доступ запрещен, и мой браузер
Кевин - Динеш Бабу

Вы видели мое последнее редактирование?
Ачу

да, я видел это
Тем

2

В качестве быстрого обходного пути (безопасного и быстрого) вы можете установить точку подключения вашего внешнего жесткого диска в корневой каталог по умолчанию (по умолчанию / var / www).

Назначение точки монтирования для существующего каталога безопасно, но старое содержимое не может быть достигнуто, если вы не размонтировали драйвер.

Чтобы узнать больше о том, как создать точку крепления, обратитесь к этому .


В соответствии с этой идеей, я бы смонтировал определенную папку, используя bindfs, как описано здесь: askubuntu.com/a/1024308/566421
pa4080

1

sudo gedit etc/apache2/apache2.conf добавить эту опцию индексы FollowSymLinks MultiViews AllowOverride Нет Порядок allow, deny allow from all

в виртуальной конфигурации:/etc/apache2/sites-available/site.conf

ServerAdmin anilrmg@localhost.com
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf


1

Для тех, кто использует гостевые дополнения VirtualBox и получает you don't have permission to access /on this serverнесмотря ни на что упомянутое выше:

Если вы пытаетесь установить корневую папку документов Apache в общую папку VirtualBox, и вы попробовали все вышеописанное, но это не помогло, есть еще один шаг.

Короче говоря, решение состоит в том, чтобы добавить пользователя 'www-data' в группу 'vboxsf':

sudo usermod -a -G vboxsf www-data

Вы не можете изменить владельца и / или группу общей папки VirtualBox, но приведенное выше решение хорошо сработало для меня.


1

Я столкнулся с той же самой проблемой и мог решить ее!

Что вам нужно сделать, это

  1. вы модифицируете apache2.conf. Обмен /var/www/на свой путь: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Изменить 000-default.conf:

    DocumentRoot /your/path/

  3. смените владельца каталогов на себя из файлового менеджера или терминала (например, sudo chown pi: path). Без этого вы получите «У вас нет прав доступа / на этом сервере». сообщение об ошибке.

Вот и все.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.