Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: Apache Basic Auth PHP FPM настройка  (Прочитано 839 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн ububu

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Apache Basic Auth PHP FPM настройка
« : 29 Марта 2020, 19:02:16 »
Настроил basic auth. Сначала думал, все работает, пароль спрашивает. Потом понял, что спрашивает только для css, а для php файлов доступ открытый. Если пароль не вводить, просто отдаст php без css! Как тут правильно сделать?

httpd.conf
ServerRoot "/usr"
Listen 80

LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_core_module modules/mod_authz_core.so
LoadModule access_compat_module modules/mod_access_compat.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule reqtimeout_module modules/mod_reqtimeout.so
LoadModule filter_module modules/mod_filter.so
LoadModule mime_module modules/mod_mime.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule env_module modules/mod_env.so
LoadModule headers_module modules/mod_headers.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule version_module modules/mod_version.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_express_module modules/mod_proxy_express.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule unixd_module modules/mod_unixd.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule alias_module modules/mod_alias.so

<IfModule unixd_module>
User daemon
Group daemon

</IfModule>
ServerAdmin you@example.com
ServerName localhost
<Directory />
    AllowOverride none
    Require all denied
</Directory>
DocumentRoot "/var/www"
<Directory "/var/www">
    Options Indexes FollowSymLinks
    AllowOverride AuthConfig

    AuthType Basic
    AuthName "Authorization required"
    AuthBasicProvider file
    AuthUserFile "/etc/apache2/passwd"
    Require valid-user
</Directory>

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "/var/logs/error_log"
LogLevel warn

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common

    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>

    CustomLog "/var/logs/access_log" common
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/usr/cgi-bin/"

</IfModule>

<IfModule cgid_module>
</IfModule>

<Directory "/usr/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>

<IfModule mime_module>
    TypesConfig /etc/apache2/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
</IfModule>

Include /etc/apache2/extra/httpd-vhosts.conf

<IfModule proxy_html_module>
Include /etc/apache2/extra/proxy-html.conf
</IfModule>

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>



httpd-vhosts.conf
<VirtualHost *:80>
    ServerAdmin webmaster@host.com
    DocumentRoot "/var/www"
    ServerName srvname

    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/$1
    DirectoryIndex /index.php index.php
</VirtualHost>

Пробовал вместо ProxyPassMatch сделать как здесь: https://stackoverflow.com/questions/48110029/apache-basic-auth-with-php-running-as-fpm-enebled
То же самое. Что не так?

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Apache Basic Auth PHP FPM настройка
« Ответ #1 : 29 Марта 2020, 21:21:10 »
То, что у вас пароль прописан для локального каталога. А PHP файлы у вас на другом сервере.
Да, это Апач, детка.
Попробуйте
<Location />
    AuthType Basic
    AuthName "Authorization required"
    AuthBasicProvider file
    AuthUserFile "/etc/apache2/passwd"
    Require valid-user
</Location>

И, да, почему у вас <Directory> убежала из <VirtualHost> ?
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн ububu

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Apache Basic Auth PHP FPM настройка
« Ответ #2 : 29 Марта 2020, 22:46:33 »
Вот спасибо, добрый человек!

Убрал Directory из httpd.conf, а в httpd-vhosts.conf написал:

<VirtualHost *:80>
    ServerAdmin webmaster@host.com
    ServerName srvname
    DocumentRoot "/var/www"

ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/$1

<Location />
DirectoryIndex /index.php index.php
Options Indexes FollowSymLinks
AllowOverride AuthConfig
AuthType Basic
AuthName "Authorization required"
AuthBasicProvider file
AuthUserFile "/etc/apache2/passwd"
Require valid-user
</Location>

</VirtualHost>

Вот тут https://stackoverflow.com/questions/31395439/apache-location-vs-directory-directives прочитал про Directory и Location, может, кому пригодиться.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Apache Basic Auth PHP FPM настройка
« Ответ #3 : 30 Марта 2020, 00:13:02 »
Не путайте Directory и Location.
DirectoryIndex валиден только в Directory.
Так же как AllowOverride.
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

Оффлайн ububu

  • Автор темы
  • Новичок
  • *
  • Сообщений: 5
    • Просмотр профиля
Re: Apache Basic Auth PHP FPM настройка
« Ответ #4 : 30 Марта 2020, 11:38:32 »
Ага, вроде, понял. Как-то так.

<VirtualHost *:80>
    ServerAdmin webmaster@host.com
    ServerName srvname
    DocumentRoot "/var/www"

    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/$1

    <Directory "/var/www">
DirectoryIndex index.php
AllowOverride AuthConfig
    </Directory>

    <Location />
Options Indexes FollowSymLinks
AuthType Basic
AuthName "Authorization required"
AuthBasicProvider file
AuthUserFile "/etc/apache2/passwd"
Require valid-user
    </Location>

</VirtualHost>

Или эту секцию Directory глобально объявить в httpd.conf.

Оффлайн AnrDaemon

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 28366
    • Просмотр профиля
Re: Apache Basic Auth PHP FPM настройка
« Ответ #5 : 30 Марта 2020, 12:51:24 »
Нет. Потом замучатесь её искать, когда хост удалять/переделывать будете.

А AllowOverride/AllowOverrideList вообще лучше поставить в None и не пользоваться .htaccess .
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.

Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…

 

Страница сгенерирована за 0.123 секунд. Запросов: 25.