Нет доступа public_ html - PullRequest
       0

Нет доступа public_ html

0 голосов
/ 05 апреля 2020

Я новичок на Apache, но я вижу некоторые похожие вопросы к этому списку и надеюсь, что вы можете помочь.

Я просто хочу настроить базовую c локальную систему LAMP под моей Ubuntu 18.04 LTS (Asus VivoBook S15) для тестирования веб-сайта, который я должен изменить перед игрой с версией на своем коммерческом хосте провайдера.

Базовая установка c прошла нормально (Apache / 2.4.29, PHP 7.2) и оба html и php могут быть обработаны из папки var / www/html через локальный URL-адрес. Затем я сделал следующее, чтобы настроить доступ public_ html:

i) добавить в /etc/apache2/apache2.conf строку:

ServerName localhost:80

ii) активировать UserDir модуль (sudo a2enmod userdir) и отредактируйте файл /etc/apache2/mods-enabled/userdir.conf следующим образом:

<IfModule mod_userdir.c>
    UserDir public_html
    UserDir disabled root

    <Directory /home/*/public_html>
 #      AllowOverride FileInfo AuthConfig Limit Indexes
    AllowOverride All
 #      Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
    Options ExecCGI Indexes MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
        Require method GET POST OPTIONS
    </Directory>
</IfModule>

iii) активируйте виртуальный каталог пользователя по умолчанию (sudo a2ensite 000-default.conf) и отредактируйте файл /etc/apache2/sites-enabled/000-default.conf следующим образом:

 # Global configuration
    ServerName localhost
 # without port according to recommendation found on the web

и

#ServerAdmin webmaster@localhost
ServerAdmin john@john-VivoBook
#DocumentRoot /var/www/html
DocumentRoot /home/john/public_html

iv) создали каталог public_ html в мой домашний каталог (/ home / john) с правами собственности john: john и permissions 755 (также пробовал с 777) и добавил мой индекс. html и index. php files

v) перезапустил Apache (sudo apache2ctl restart)

vi) настроил мой Firefox браузер так, чтобы он не добавлял www to URL.

Когда я пытаюсь получить доступ к URL "localhost", я получаю пустой экран, тогда как с "localhost / public_ html", "localhost / public_html / index. html" или "localhost / public_html / index. php" я получаю essage:

Not Found
The requested URL was not found on this server.
Apache/2.4.29 (Ubuntu) Server at localhost Port 80

Нет ошибок в файле журнала /var/log/apache2/error.log

Хвост файла журнала / var / log / apache2 / access log говорит:

127.0.0.1 - - [05/Apr/2020:13:24:44 +0200] "GET /public_html HTTP/1.1" 404 488 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0"
127.0.0.1 - - [05/Apr/2020:13:26:41 +0200] "GET /public_html/index.html HTTP/1.1" 404 488 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0"
127.0.0.1 - - [05/Apr/2020:13:27:29 +0200] "GET /public_html/index.php HTTP/1.1" 404 488 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:74.0) Gecko/20100101 Firefox/74.0"

Файл журнала /var/log/apache2/other_vhosts_access.log не существует.

Что я делаю не так?

Спасибо и наилучшие пожелания, Джон

Ответы [ 2 ]

2 голосов
/ 05 апреля 2020

Если вы хотите использовать функцию 'userdir', вам просто нужно установить apache2 и включить 'userdir'. Вам не нужно менять документ Root.

sudo apt install apache2

sudo a2enmod userdir

sudo systemctl restart apache2

Теперь переключитесь на пользователя (в вашем случае, Джон)

mkdir /home/john/public_html

echo 'hello' >> index.html

And you can now access index.html using "http://localhost/~john/index.html"

Если вы измените документ Root to / home / john / public_ html, тогда вам необходимо получить доступ к странице html через "http://localhost/index.html", поскольку каталог (/ home / john / public_ html) уже Root.


Обновление после вашего комментария

Если вы хотите php работать с функцией каталога пользователя apache2.

Сначала установите php окружающая среда.

  1. sudo apt install php7 .3

  2. sudo a2enmod php7 .3

Во-вторых,

sudo vim /etc/apache2/mods-enabled/php7.3.conf

Comment below block to re-enable PHP in user directories.

#<IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#        php_admin_flag engine Off
#    </Directory>
#</IfModule>

В-третьих, перезапустите службу apache2.

sudo systemctl restart apache2

Вы должны увидеть, как страница работает идеально через http://localhost/~john/index.php

0 голосов
/ 14 апреля 2020

Я теперь не уверен, что PHP был частично в порядке в Opera, так как мой индекс. php код был очень коротким, и я вполне мог ошибиться в списке для вывода. Во всяком случае, я обновил Opera-stable до версии 67.0.3575.137 (помните, что у меня Apache / 2.4.29 работает под Ubuntu 18.04 LTS и PHP версия 7.2.24), и все файлы php, включая http://localhost затем показывал списки, а не выполнял.

[Извините, я полчаса пытался безуспешно пытаться показать «острые» (комментарии) знаки и начальные три angular скобки в коде, и поэтому сокращенно без некоторого кода.]

Затем я сделал следующие два шага (оба взяты из Apache показывает php код вместо выполнения ):

  • отредактируйте /etc/apache2/mods-enabled/php7.2.conf, чтобы закомментировать пять строк в соответствии с инструкциями после закомментированной строки «Запуск PHP сценариев в пользовательских каталогах по умолчанию отключен»:

На данный момент http://localhost работает, но прямые вызовы php файлов по-прежнему дают только списки.

  • edit / etc / apache2 / mods -enabled / mime.conf и после двух следующих закомментированных строк: * 102 2 *

комментарий: AddType позволяет добавить или переопределить конфигурацию MIME

комментарий: файл mime.types для указанных c типов файлов.

добавить следующие линии:

AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php

С этими двумя изменениями мой локальный веб-сайт на php работает нормально как с Opera, так и с Firefox 75.0 64 битами (ранее пустые экраны для * 1033) * и для явных вызовов php файлов).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...