Passenger Apache - Запрещено У вас нет разрешения на доступ к этому ресурсу

Я застрял с Apache с конфигурацией Passenger . Несколько дней я искал решение. Я следую этим инструкциям. Я получаю это сообщение в браузере:

Forbidden

You don't have permission to access this resource.

httpd.conf

# Use /usr/bin/node by default.
PassengerNodejs /usr/bin/node

<VirtualHost *:80>

    ServerName example.com

    RewriteEngine On 
    RewriteCond %{HTTPS} off
    RewriteCond %{SERVER_NAME} =example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>

<VirtualHost *:443>

    ServerName example.com

    # Tell Apache and Passenger where your app's code directory is
        DocumentRoot /var/www/example.com
        PassengerAppRoot /var/www/example.com/

    # Tell Passenger that your app is a Node.js app
        PassengerAppType node
        PassengerStartupFile app.js

    # Relax Apache security settings
    <Directory /var/www/example.com>
        Options FollowSymLinks
        AllowOverride None
        Order allow,deny
        Allow from all
        Options -MultiViews
        # Uncomment this if you're on Apache >= 2.4:
        Require all granted
    </Directory>

    CustomLog /var/log/httpd/example.com_access.log combined
    ErrorLog /var/log/httpd/example.com_error.log

    SSLEngine on
    SSLCertificateFile    /etc/letsencrypt/live/example.com/cert.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/example.com/fullchain.pem
    Include /etc/letsencrypt/options-ssl-apache.conf

</VirtualHost>

В /var/log/httpd/example.com_error.log я получаю:

[Sat Sep 04 07:24:00.473120 2021] [autoindex:error] [pid 907862:tid 139932467173120] [client 85.89.184.79:50337] AH01276: Cannot serve directory /var/www/example.com/: No matching DirectoryIndex (index.html,index.php) found, and server-generated directory index forbidden by Options directive

Права файла

drwxr-xr-x. 5 root   root  102 Sep  3 23:53 ..
drwxr-xr-x. 8 root   root  163 Sep  4 07:11 .git
-rw-r--r--. 1 root   root   35 Sep  4 07:11 .gitignore
-rw-r--r--. 1 root   root  215 Sep  4 07:11 README.md
-rw-r--r--. 1 root   root  390 Sep  4 07:11 app.js
drwxr-xr-x. 3 root   root   21 Sep  4 07:12 node_modules
-rw-r--r--. 1 root   root 2655 Sep  4 07:12 npm-shrinkwrap.json
-rw-r--r--. 1 root   root  318 Sep  4 07:11 package.json
drwxr-xr-x. 2 root   root   22 Sep  4 07:11 public

curl http: / /127.0.0.1:3000/ возвращает Hello от Node.js / io.js + Connect.js!

Что мне следует проверить?

1
задан 4 September 2021 в 07:42
1 ответ

Эта ошибка означает, что в каталоге нет индексного файла по умолчанию, и это явно ваш случай, учитывая упомянутый вами список файлов.

Решение:

  1. Создайте пустую страницу index.html в общедоступном каталоге.

     коснитесь /var/www/example.com/index.html
     
  2. Изменить директиву Options внутри httpd.conf и добавить индексы:

     Options -MultiViews -Indexes
     
  3. Перезапустить/перезагрузить httpd

     служба httpd перезагрузить
     

Редактировать: ​​

Снова взглянув на ваш httpd.conf, кажется, что вы не указали DocumentRoot, где находится ваш публичный каталог. Поэтому:

  1. Замените текущий DocumentRoot на /var/www/example.com/public:
DocumentRoot /var/www/example.com/public
  1. Измените путь к каталогу на тот же путь:
<Directory /var/www/example.com/public>

Для получения дополнительной информации см. Пассажирский веб-сайт

1
ответ дан 4 September 2021 в 10:50

Теги

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