Сервер Apache «403 запрещен, у вас нет разрешения».

Я выполнил этот учебник Создание температурного регистратора SQLite .

Файлы python работают отлично, никаких ошибок вообще. Однако, я не могу видеть веб-страницу, я получаю 403-запретную ошибку. Последние несколько дней я стучал головой. Я надеюсь, что кто-то здесь сможет мне помочь.

Я должен упомянуть, что домашняя страница (мой IP-адрес малины Pi) показывает сообщение Apache «это работает». Я получаю запрещенную ошибку, когда пытаюсь получить доступ к http: //localhost/cgi-bin/webgui.py . Это заставляет меня думать, что проблема связана с файлом webgui.py, который у меня есть в /usr/lib/cgi-bin. Владельцем этого файла является www-data.

Ниже приведено содержимое файла журнала ошибок:

[Mon Feb 01 03:06:30.660229 2016] [mpm_event:notice] [pid 772:tid 1996390400] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 03:06:30.660430 2016] [core:notice] [pid 772:tid 1996390400] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 06:47:00.394013 2016] [mpm_event:notice] [pid 772:tid 1996390400] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 06:47:02.080192 2016] [mpm_event:notice] [pid 29073:tid 1995436032] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 06:47:02.082154 2016] [core:notice] [pid 29073:tid 1995436032] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 07:18:36.216912 2016] [mpm_event:notice] [pid 29073:tid 1995436032] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 07:18:36.793515 2016] [mpm_event:notice] [pid 6510:tid 1995792384] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 07:18:36.794238 2016] [core:notice] [pid 6510:tid 1995792384] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 07:23:05.045667 2016] [mpm_event:notice] [pid 6510:tid 1995792384] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 07:23:06.668796 2016] [mpm_event:notice] [pid 8110:tid 1996374016] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 07:23:06.669492 2016] [core:notice] [pid 8110:tid 1996374016] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 07:36:51.258775 2016] [mpm_event:notice] [pid 8110:tid 1996374016] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 07:36:51.850075 2016] [mpm_event:notice] [pid 12615:tid 1995730944] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 07:36:51.856968 2016] [core:notice] [pid 12615:tid 1995730944] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 07:43:39.883875 2016] [mpm_event:notice] [pid 12615:tid 1995730944] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 07:43:40.492875 2016] [mpm_event:notice] [pid 15024:tid 1996095488] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 07:43:40.493716 2016] [core:notice] [pid 15024:tid 1996095488] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 07:56:09.254549 2016] [mpm_event:notice] [pid 15024:tid 1996095488] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 01:56:15.623373 2016] [mpm_event:notice] [pid 757:tid 1996087296] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 01:56:15.626492 2016] [core:notice] [pid 757:tid 1996087296] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 02:04:15.666206 2016] [mpm_event:notice] [pid 757:tid 1996087296] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 02:04:17.256207 2016] [mpm_event:notice] [pid 3681:tid 1995800576] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 02:04:17.256965 2016] [core:notice] [pid 3681:tid 1995800576] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 08:17:07.574037 2016] [mpm_event:notice] [pid 3681:tid 1995800576] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 08:17:08.189818 2016] [mpm_event:notice] [pid 6885:tid 1996288000] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 08:17:08.190660 2016] [core:notice] [pid 6885:tid 1996288000] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 08:17:14.896981 2016] [authz_core:error] [pid 6889:tid 1979708464] [client 10.0.0.27:57454] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 08:17:17.516899 2016] [authz_core:error] [pid 6889:tid 1962931248] [client 10.0.0.27:57454] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 08:33:03.086356 2016] [mpm_event:notice] [pid 6885:tid 1996288000] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 08:33:04.695080 2016] [mpm_event:notice] [pid 11555:tid 1995759616] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 08:33:04.695917 2016] [core:notice] [pid 11555:tid 1995759616] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 08:33:07.918094 2016] [authz_core:error] [pid 11559:tid 1978659888] [client 10.0.0.27:57455] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 09:39:54.641757 2016] [authz_core:error] [pid 11560:tid 1953494064] [client 10.0.0.27:57491] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 10:15:06.731390 2016] [authz_core:error] [pid 11559:tid 1970271280] [client 10.0.0.27:57492] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 10:26:37.696904 2016] [authz_core:error] [pid 11559:tid 1936716848] [client 10.0.0.27:57496] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 10:36:40.800221 2016] [mpm_event:notice] [pid 11555:tid 1995759616] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 10:36:42.343070 2016] [mpm_event:notice] [pid 12744:tid 1995513856] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 10:36:42.343890 2016] [core:notice] [pid 12744:tid 1995513856] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 10:36:56.245325 2016] [authz_core:error] [pid 12749:tid 1978659888] [client 10.0.0.27:57630] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 10:36:59.308422 2016] [authz_core:error] [pid 12749:tid 1970271280] [client 10.0.0.27:57630] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 10:37:00.691738 2016] [authz_core:error] [pid 12749:tid 1961882672] [client 10.0.0.27:57630] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 11:04:09.501725 2016] [mpm_event:notice] [pid 12744:tid 1995513856] AH00491: caught SIGTERM, shutting down
[Mon Feb 01 11:04:10.076208 2016] [mpm_event:notice] [pid 20354:tid 1995669504] AH00489: Apache/2.4.10 (Raspbian) configured -- resuming normal operations
[Mon Feb 01 11:04:10.077068 2016] [core:notice] [pid 20354:tid 1995669504] AH00094: Command line: '/usr/sbin/apache2'
[Mon Feb 01 11:04:20.889227 2016] [authz_core:error] [pid 20359:tid 1978659888] [client 10.0.0.27:57641] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py
[Mon Feb 01 11:04:29.145181 2016] [authz_core:error] [pid 20358:tid 1978659888] [client 10.0.0.27:57642] AH01630: client denied by server configuration: /usr/lib/cgi-bin/webgui.py

и здесь ls -l выполняется из www/var

[email protected]:/var/www $ ls -l
total 32
-rw-r--r-- 1 www-data root     20352 Feb  2 00:07 dead.letter
drwxr-sr-x 2 root     root      4096 Jan 23 19:20 html
-rwxr-xr-x 1 www-data www-data  2048 Jan 23 01:17 templog.db
-rwxr-xr-x 1 www-data www-data  2048 Feb  1 23:36 weather.db

и, наконец, это где я сохраняю webgui.py

[email protected]:/usr/lib/cgi-bin $ ls -l
total 148
-rw-r--r-- 1 root     root     115130 Feb  2 00:07 2016-02-02-000732_1552x868_scrot.png
-rw-r--r-- 1 root     root       8747 Jan 31 01:08 Adafruit_BME280.py
-rw-r--r-- 1 root     root       6428 Jan 31 01:10 Adafruit_BME280.pyc
-rwxr-xr-x 1 www-data www-data   1269 Jan 31 18:07 BME280.py
-rwxr-xr-x 1 www-data www-data   7365 Jan 31 16:49 webgui.py

Вот что я получаю, когда запускаю webgui.py

<html>
<head>
    <title>
Raspberry Pi Temperature Logger
    </title>

    <script type="text/javascript" src="https://www.google.com/jsapi"></script>
    <script type="text/javascript">
      google.load("visualization", "1", {packages:["corechart"]});
      google.setOnLoadCallback(drawChart);
      function drawChart() {
        var data = google.visualization.arrayToDataTable([
          ['Time', 'Temperature'],
['2016-02-01 08:01:50', 77.889],
['2016-02-01 08:02:43', 77.887],
['2016-02-01 14:18:13', 77.311],
['2016-02-01 16:00:45', 77.07],
['2016-02-01 20:05:32', 79.3],
['2016-02-01 20:07:54', 79.325],
['2016-02-01 20:08:27', 79.338],
['2016-02-01 20:15:07', 79.432],
['2016-02-01 20:15:22', 79.45],
['2016-02-01 20:16:45', 79.517],
['2016-02-01 20:18:44', 79.457],
['2016-02-01 20:21:20', 79.608],
['2016-02-02 01:46:34', 79.858],
['2016-02-02 05:36:03', 79.404],
['2016-02-02 06:40:24', 79.488]

        ]);

        var options = {
          title: 'Temperature'
        };

        var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
</head>
<body>
<h1>Raspberry Pi Temperature Logger</h1>
<hr>
<form action="/cgi-bin/webgui.py" method="POST">
        Show the temperature logs for  
        <select name="timeinterval">
<option value="6">the last 6 hours</option>
<option value="12">the last 12 hours</option>
<option value="24" selected="selected">the last 24 hours</option>
        </select>
        <input type="submit" value="Display">
    </form>
<h2>Temperature Chart</h2>
<div id="chart_div" style="width: 900px; height: 500px;"></div>
<hr>
<h2>Minumum temperature&nbsp</h2>
2016-02-01 16:00:45&nbsp&nbsp&nbsp77.07C
<h2>Maximum temperature</h2>
2016-02-02 01:46:34&nbsp&nbsp&nbsp79.858C
<h2>Average temperature</h2>
78.956C
<hr>
<h2>In the last hour:</h2>
<table>
<tr><td><strong>Date/Time</strong></td><td><strong>Temperature</strong></td></tr>
</table>
<hr>
</body>
</html>

Обновление: Я следовал за решением Pandalion98, но до сих пор не повезло, это результат

[email protected]:/var/www $ ls -al
total 336
drwxrwsrwx  3 www-data www-data   4096 Feb  2 00:40 .
drwxr-xr-x 12 root     root       4096 Jan 23 01:15 ..
-rw-r--r--  1 www-data www-data 117435 Feb  2 00:08 2016-02-02-000815_1552x868_scrot.png
-rw-r--r--  1 www-data www-data 197160 Feb  2 07:04 dead.letter
drwxr-sr-x  2 www-data www-data   4096 Jan 23 19:20 html
-rwxr-xr-x  1 www-data www-data   2048 Jan 23 01:17 templog.db
-rwxr-xr-x  1 www-data www-data   2048 Feb  2 00:40 weather.db

[email protected]:/usr/lib/cgi-bin $ ls -al
total 164
drwxr-xr-x  2 www-data www-data   4096 Feb  2 00:07 .
drwxr-xr-x 86 root     root      12288 Jan 31 17:09 ..
-rw-r--r--  1 www-data www-data 115130 Feb  2 00:07 2016-02-02-000732_1552x868_scrot.png
-rw-r--r--  1 www-data www-data   8747 Jan 31 01:08 Adafruit_BME280.py
-rw-r--r--  1 www-data www-data   6428 Jan 31 01:10 Adafruit_BME280.pyc
-rwxr-xr-x  1 www-data www-data   1269 Jan 31 18:07 BME280.py
-rwxr-xr-x  1 www-data www-data   7365 Jan 31 16:49 webgui.py

Вот содержимое cgi conf. файл в этом месте и т. д. /apache2 /conf-enabled /server-cgi-bin.conf

<IfModule mod_alias.c>
    <IfModule mod_cgi.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfModule mod_cgid.c>
        Define ENABLE_USR_LIB_CGI_BIN
    </IfModule>

    <IfDefine ENABLE_USR_LIB_CGI_BIN>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
            AllowOverride All
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
                        Allow from all
                        AddHandler cgi-script .py
        </Directory>
    </IfDefine>
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
4 голоса | спросил Julia_arch 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 08:45:04 +0300000000amTue, 02 Feb 2016 08:45:04 +030016 2016, 08:45:04

2 ответа


3

Я только что понял, что я сделал, я добавил эту строку

Require all granted

между привязками к папке etc /apache2 /conf-avilable /serve-cgi-bin.conf . Затем я добавил следующую строку в файл /etc/apache2/apache2.conf :

ServerName localhost

Тогда

a2enmod cgi
service apache2 restart
ответил Julia_arch 7 FebruaryEurope/MoscowbSun, 07 Feb 2016 05:39:30 +0300000000amSun, 07 Feb 2016 05:39:30 +030016 2016, 05:39:30
3

Ваши общедоступные файлы принадлежат root. Apache не может получить к нему доступ. Измените владение так, чтобы оно принадлежало www-data.

Чтобы восстановить права собственности на файлы в ваших общедоступных каталогах, выполните следующие действия:

chown -R www-data /var/www
chgrp -R www-data /var/www

chown -R www-data /usr/lib/cgi-bin
chgrp -R www-data /usr/lib/cgi-bin

Они изменят владельца и группу файлов в этих каталогах на www-data.

Файлы снова будут принадлежать root, если вы отредактируете его как root (обычно с помощью sudo [editor] [file]). Если это так, просто перезапустите приведенные выше команды.

Если это доступно в Интернете или если вы решите публиковать его публично, вы можете установить разрешения на 755, чтобы случайные люди не может hack изменять ваши общедоступные файлы. Если вы используете его конфиденциально, возможно возможно оставить его как есть.

ответил pandalion98 2 FebruaryEurope/MoscowbTue, 02 Feb 2016 14:25:40 +0300000000pmTue, 02 Feb 2016 14:25:40 +030016 2016, 14:25:40

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132