LINUX.ORG.RU

Куда прописывать php_admin_flag display_startup_errors on?

 ,


0

1

В сети вычитал, что htaccesss тормозит сайты, поэтому там рекомендовали избегать его использование. Тогда появляется вопрос, куда мне прописать php_admin_flag display_startup_errors on? Когда я добавлял сайт, я создавал файл nano /etc/apache2/sites-available/huemoe123.conf и там прописывал

<VirtualHost *:80>
  ServerAdmin username@huemoe123.wbq
  ServerName huemoe123.wbq
  ServerAlias www.huemoe123.wbq
  DocumentRoot /var/www/huemoe123.wbq/public
...

затем делал a2ensite huemoe123

Я попытался прям в нём, перед закрытием тега прописать php_admin_flag display_startup_errors on, так же делал systemctl restart apache2, однако это не помогло.

Скажите пожалуйста, куда прописывать это правило?

Ого, заявка. А пропиши в ~/.bashrc ?

Anoxemian ★★★★★
()
Ответ на: комментарий от mky

я исправил пост. AllowOverride есть. Просто я искал по запросу ″AllowOverride Options″ и ничего не нашел.

accountnujen
() автор топика
Ответ на: комментарий от mky

последовательно выполнил команды:

apt install php8.0-fpm
a2enmod proxy_fcgi setenvif
a2enconf php8.0-fpm
systemctl restart apache2

теперь игнорируются настройки в .htaccess (если их прописать), а php_admin_flag display_startup_errors on также не принимает.

accountnujen
() автор топика
Ответ на: комментарий от accountnujen

Блин, не то написал. Не должен быть настроен php-fpm, так как в этом случае вобще свой php.ini. Должен быть mod_php (пакет libapache2-mod-php) и a2enmod php8.0

mky ★★★★★
()
Ответ на: комментарий от mky

libapache2-mod-php8.0 стоит.

a2enmod php8.0 просто выполнить?

root@instance:~# a2enmod php8.0
Considering dependency mpm_prefork for php8.0:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.0:
Module php8.0 already enabled
accountnujen
() автор топика
Ответ на: комментарий от mky
root@instance:~# ls /etc/apache2/mods-enabled
access_compat.load  authn_core.load  authz_user.load  deflate.load  expires.load  mime.load         negotiation.load  proxy.load       rewrite.load        ssl.conf
alias.conf          authn_file.load  autoindex.conf   dir.conf      filter.load   mpm_prefork.conf  php8.0.conf       proxy_fcgi.load  setenvif.conf       ssl.load
alias.load          authz_core.load  autoindex.load   dir.load      headers.load  mpm_prefork.load  php8.0.load       reqtimeout.conf  setenvif.load       status.conf
auth_basic.load     authz_host.load  deflate.conf     env.load      mime.conf     negotiation.conf  proxy.conf        reqtimeout.load  socache_shmcb.load  status.load
root@instance:~# ls /etc/apache2/mods-available
access_compat.load  authn_socache.load    cache_disk.conf     deflate.load       http2.load                macro.load        php8.0.load          proxy_http.load      session_crypto.load    substitute.load
actions.conf        authnz_fcgi.load      cache_disk.load     dialup.load        ident.load                md.load           proxy.conf           proxy_http2.load     session_dbd.load       suexec.load
actions.load        authnz_ldap.load      cache_socache.load  dir.conf           imagemap.load             mime.conf         proxy.load           proxy_scgi.load      setenvif.conf          unique_id.load
alias.conf          authz_core.load       cern_meta.load      dir.load           include.load              mime.load         proxy_ajp.load       proxy_uwsgi.load     setenvif.load          userdir.conf
alias.load          authz_dbd.load        cgi.load            dump_io.load       info.conf                 mime_magic.conf   proxy_balancer.conf  proxy_wstunnel.load  slotmem_plain.load     userdir.load
allowmethods.load   authz_dbm.load        cgid.conf           echo.load          info.load                 mime_magic.load   proxy_balancer.load  ratelimit.load       slotmem_shm.load       usertrack.load
asis.load           authz_groupfile.load  cgid.load           env.load           lbmethod_bybusyness.load  mpm_event.conf    proxy_connect.load   reflector.load       socache_dbm.load       vhost_alias.load
auth_basic.load     authz_host.load       charset_lite.load   expires.load       lbmethod_byrequests.load  mpm_event.load    proxy_express.load   remoteip.load        socache_memcache.load  xml2enc.load
auth_digest.load    authz_owner.load      data.load           ext_filter.load    lbmethod_bytraffic.load   mpm_prefork.conf  proxy_fcgi.load      reqtimeout.conf      socache_redis.load
auth_form.load      authz_user.load       dav.load            file_cache.load    lbmethod_heartbeat.load   mpm_prefork.load  proxy_fdpass.load    reqtimeout.load      socache_shmcb.load
authn_anon.load     autoindex.conf        dav_fs.conf         filter.load        ldap.conf                 mpm_worker.conf   proxy_ftp.conf       request.load         speling.load
authn_core.load     autoindex.load        dav_fs.load         headers.load       ldap.load                 mpm_worker.load   proxy_ftp.load       rewrite.load         ssl.conf
authn_dbd.load      brotli.load           dav_lock.load       heartbeat.load     log_debug.load            negotiation.conf  proxy_hcheck.load    sed.load             ssl.load
authn_dbm.load      buffer.load           dbd.load            heartmonitor.load  log_forensic.load         negotiation.load  proxy_html.conf      session.load         status.conf
authn_file.load     cache.load            deflate.conf        http2.conf         lua.load                  php8.0.conf       proxy_html.load      session_cookie.load  status.load

php-fpm снёс

accountnujen
() автор топика
Ответ на: комментарий от accountnujen
a2dismod proxy_fcgi proxy

и перезапустить апач. После этого, хотя бы настройки в .htaccess должны вернуться.

Покажите полностью huemoe123.conf.

mky ★★★★★
()

В сети вычитал, что htaccesss тормозит сайты

Прошло уже больше 10 лет как апач следовало нафиг выкинуть (заменив на современный nginx), а они всё продолжают заново открывать для себя ещё более древние банальности в гайдах из 90-х.

firkax ★★★★★
()
Ответ на: комментарий от mky

.htaccess заработал сразу после удаления fpm.

<VirtualHost *:80>
  ServerAdmin username@huemoe123.wbq
  ServerName huemoe123.wbq
  ServerAlias www.huemoe123.wbq
  DocumentRoot /var/www/huemoe123.wbq/public
  ErrorLog /var/www/huemoe123.wbq/log/error.txt
  CustomLog /var/www/huemoe123.wbq/log/access.txt common
  <Directory /var/www/huemoe123.wbq/public>
    AllowOverride All
   </Directory>
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.huemoe123.wbq [OR]
RewriteCond %{SERVER_NAME} =huemoe123.wbq
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
Options -Indexes
<IfModule mod_php.c>
 php_admin_flag display_errors on
 php_admin_flag display_startup_errors On
</IfModule>
php_admin_value memory_limit 6666M
</VirtualHost>

Сразу могу сказать, что php_admin_flag display_errors on, php_admin_value memory_limit 6666M и Options -Indexes игнорируются здесь. Если в htaccess это прописать, то всё будет. Но моя цель была - избежать использование htaccess…

accountnujen
() автор топика
Последнее исправление: accountnujen (всего исправлений: 1)
Ответ на: комментарий от accountnujen

Должно работать. Причём здесь https://www.php.net/manual/en/configuration.changes.php прямо написано, что php_admin_flag не должен работать в htaccess. Странно. Может это фичи php 8, про которые ещё не написано...

Может мешает RewriteEngine, но это не точно.

Options -Indexes тоже обычно помещают в Directory хотя документация этого не требует.

mky ★★★★★
()
Ответ на: комментарий от mky

RewriteEngine, но это не точно.

Я решил проверить вашу теорию. Закомментировал строки с RewriteEngine и обратился по адресу https://... - результата не было, всё тоже самое. Тогда я попробовал зайти через http:// и, на моё удивление, сработали все настройки и ошибки включились.

Conf файл начинается со строки <VirtualHost *:80>. Я заменил его на 443. HTTP перестал запускаться (что логично), однако на HTTPS параметры php_admin_flag и php_admin_value не применились.

Тогда я предположил, что где-то перебиваются настройки 443 порта. А учитывая, что в conf файле VirtualHost только 80 порт, значит где-то есть тоже самое но для 443. Начал бродить по каталогам. И оказалось, что в папке /etc/apache2/sites-available (которая ничем не отличается от sites-enabled. нахрена 2 одинаковые папки - непонятно) есть помимо huemoe123.conf ещё файл huemoe123-le-ssl.conf, в котором минимум настроек. И вот если там прописать php_admin_flag или php_admin_value, то всё заведётся. Пиздец, товарищи.

Спасибо вам, @mky

accountnujen
() автор топика
Последнее исправление: accountnujen (всего исправлений: 1)
Ответ на: комментарий от accountnujen

Никогда не пользовался «удобными» командами Дебиан-дистров (a2enmod, a2dismod, a2ensite, a2dissite) и всегда неневидил конфиги, раскиданные на 100500 файлов. Когда-то программисты пытались делать скрипты, редактирующие единый файл конфигурации (удаляющие/добавляющие фрагмент текста). А сейчас эпоха ИИ, конфиг будет в куче файлов и система сама будет решать какие файлы читаем, а какие игнорируем.

Как я понимаю, это самый huemoe123-le-ssl.conf был создан при запуске certbot, который от Let’s Encrypt... Никогда не разбирался как эта шняга работает. Но, как-то получается конфиг наоборот. В том смылсе, что обычно было, что если нужен https, то вся конфигурация пишется/редактируется для :443 порта, а на :80 порт пишется фиксированная заглушка — редирект на https. Но что сделает certbot, если исправить файл *-le-ssl.conf не знаю.

mky ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.