500 erro na instalação do Apache no Fedora 23. Um arquivo é carregado e o outro não

0

Tudo bem, estou achando isso um pouco bizarro.

Assim, a maior parte da minha experiência com o Apache foi instalada em um servidor Ubuntu. Mas depois que o disco rígido do meu servidor sofreu uma falha catastrófica (da qual recuperei todos os dados, felizmente) aproveitei a oportunidade para mudar para o servidor Fedora mais recente. Havia algumas razões para isso, mas a grande delas foi problemas com o instalador do Ubuntu Server, especificamente, ele sendo incapaz de reconhecer meu teclado sem fio, e meu último quebra de teclado com fio.

De qualquer forma, instalei o httpd (apache), php, postgresql e php-pgsql. E então mudei todas as minhas páginas antigas do site para o novo diretório web (/ var / www / html /). Então eu recebi um erro 500.

Eu decidi por uma cotovia para começar do zero. Mudei minhas páginas para o lado (em / var / www / html2 /) e criei uma pequena página para testá-lo. Apenas HTML básico, nada extravagante, sem PHP, apenas o básico.

<html>
<head>
<title>HOME!!!</title>
</head>
<body>
<h1>THIS WORKS!!!</h1>
</body>
</html>

É carregado sem problemas.

Então eu movi cada página de volta para a pasta principal (com exceção do .htaccess por enquanto), e a página que acabei de criar ainda funcionou bem. Suspeitando que o problema era com o php, adicionei um pouco de código php na parte inferior:

echo 'hello';

Funcionou bem.

Aqui é onde fica esquisito. Eu tentei incluir o antigo footer.php do meu site nesta pequena página de teste, e é aí que os problemas começam. O rodapé simplesmente não carrega.

<?php include 'footer.php'; ?>

O restante da página é carregado, mas não o rodapé. Então, em uma cotovia, eu copiei todo o conteúdo do arquivo de rodapé para um novo arquivo chamado footer2.php e mudei a página de teste para fazer referência ao footer2.php, e ele carrega totalmente sem problemas.

Então eu finalmente acho que estou em algo, então mudo as permissões de footer.php para corresponder a footer2.php. E ainda não carregará.

Por alguma razão, o footer.php não carrega, mas o footer2.php irá.

Então, qual é o diferencial?

Esses arquivos são exatamente iguais! Aqui está a prova:

[blackwidower@Twilight html]$ md5sum footer*
257cbd773ed765deb5ad0015852cdf20  footer2.php
257cbd773ed765deb5ad0015852cdf20  footer.php
[blackwidower@Twilight html]$ ls -l footer*
-rw-rw-r--. 1 blackwidower blackwidower 1271 Feb  1 00:08 footer2.php
-rw-rw-r--. 1 blackwidower blackwidower 1271 Feb  1 00:08 footer.php

Ainda um carrega e o outro não.

Há algo que eu possa fazer para encontrar mais dados que possam separar esses arquivos?

Para referência, aqui está o error_log do apache:

[Mon Feb 01 00:14:15.160242 2016] [core:notice] [pid 1800] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
[Mon Feb 01 00:14:15.161310 2016] [suexec:notice] [pid 1800] AH01232: suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.7.2. Set the 'ServerName' directive globally to suppress this message
[Mon Feb 01 00:14:15.192180 2016] [auth_digest:notice] [pid 1800] AH01757: generating secret for digest authentication ...
[Mon Feb 01 00:14:15.192361 2016] [http2:warn] [pid 1800] AH02951: mod_ssl does not seem to be enabled
[Mon Feb 01 00:14:15.193015 2016] [lbmethod_heartbeat:notice] [pid 1800] AH02282: No slotmem from mod_heartmonitor
[Mon Feb 01 00:14:15.218713 2016] [mpm_prefork:notice] [pid 1800] AH00163: Apache/2.4.18 (Fedora) PHP/5.6.17 configured -- resuming normal operations
[Mon Feb 01 00:14:15.218762 2016] [core:notice] [pid 1800] AH00094: Command line: '/usr/sbin/httpd -D FOREGROUND'
[Mon Feb 01 00:14:43.969957 2016] [:error] [pid 1801] [client 192.168.7.7:49878] PHP Fatal error:  Call to undefined function displayCopyrightInfo() in /var/www/html/footer2.php on line 13
[Mon Feb 01 00:14:44.086110 2016] [core:error] [pid 1802] (13)Permission denied: [client 192.168.7.7:49880] AH00035: access to /images/cc-by-nc-nd-88x31.png denied (filesystem path '/var/www/html/images/cc-by-nc-nd-88x31.png') because search permissions are missing on a component of the path, referer: http://192.168.7.2/index2.php
[Mon Feb 01 00:14:44.087064 2016] [core:error] [pid 1804] (13)Permission denied: [client 192.168.7.7:49882] AH00035: access to /images/valid-xhtml10-blue.png denied (filesystem path '/var/www/html/images/valid-xhtml10-blue.png') because search permissions are missing on a component of the path, referer: http://192.168.7.2/index2.php
[Mon Feb 01 00:14:44.087737 2016] [core:error] [pid 1806] (13)Permission denied: [client 192.168.7.7:49884] AH00035: access to /images/vcss-blue.png denied (filesystem path '/var/www/html/images/vcss-blue.png') because search permissions are missing on a component of the path, referer: http://192.168.7.2/index2.php
[Mon Feb 01 00:15:47.538488 2016] [:error] [pid 1808] [client 192.168.7.7:49890] PHP Warning:  include(footer.php): failed to open stream: Permission denied in /var/www/html/index2.php on line 7
[Mon Feb 01 00:15:47.538534 2016] [:error] [pid 1808] [client 192.168.7.7:49890] PHP Warning:  include(): Failed opening 'footer.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/index2.php on line 7

EDITAR:

Aconselhamento de uma pessoa. Eu corri ls -Z. Aqui está o que eu encontrei:

unconfined_u:object_r:httpd_sys_content_t:s0 /var/www/html/footer2.php
               system_u:object_r:fusefs_t:s0 /var/www/html/footer.php

Então eu encontrei um diferencial. A pergunta é: o que isso significa e como corrigi-lo?

    
por theblackwidower 01.02.2016 / 06:42

1 resposta

2

So I found a differential. Question is: What does this mean, and how does one correct it?

Expandindo o que o usuário @Dirk observou, o SELinux é um sistema que depende de "contextos" para aumentar a segurança do seu sistema, um contexto descreve que tipo de ações podem ser executadas em um determinado arquivo ou diretório ou o que pode um arquivo ser usado para. Nesse caso, footer2.php tem um contexto de httpd_sys_content_t , então isso significa que o arquivo pode ser usado para " link ", o que você precisa fazer é adicionar o mesmo rótulo de contexto a footer.php para permitir que seja acessível através do sistema de segurança do SELinux, ou apenas restaurar o contexto no diretório pai (na maioria dos sistemas por padrão, os arquivos no /var/www location são configurados para rótulos para " link "). Uma alternativa para isso é desabilitar o SELinux por completo, mas isso não é uma boa prática.

Então,

Para (permanentemente) definir o rótulo de contexto no arquivo footer.php :

semanage fcontext -a -t httpd_sys_content_t /var/www/html/footer.php
restorecon /var/www/html/footer.php

Você pode fazer o mesmo no diretório pai (e todo o seu conteúdo):

semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"
restorecon -R "/var/www/html(/.*)?"

Você pode encontrar mais informações sobre o Portal do Cliente Red Hat para Linux Aprimorado por Segurança .

    
por 01.02.2016 / 07:44