Змініть кореневу папку документів 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/

все-таки я не зміг підключити своє / медіа / мійсервер, і мій браузер показав наступне повідомлення

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 встановлений на 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. Перезапустіть апаш

    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.
r0ng

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, і ​​показав заборонений доступ до дозволу, і мій браузер
Kevin - Dhinesh babu

Ви бачили мою останню едіт?
Ачу

так, я бачив це. все-таки це шоу, що ви не маєте дозволу на доступ / на цьому сервері
Kevin - Dhinesh babu

2

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

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

Щоб дізнатися більше, як створити точку кріплення, зверніться до цього .


Відповідно до цієї ідеї, я монтував би певну папку, використовуючи bindfs, як це описано тут: askubuntu.com/a/1024308/566421
pa4080

1

sudo gedit etc/apache2/apache2.conf додати це Параметри Індекси FollowSymLinks MultiViews AllowOverride None Порядок дозволяє, заборонити дозволяти від усіх

у віртуальній конфігурації:/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.