Parece que o Apache2 falha ao iniciar

Parece que o Apache2 falha ao iniciar

Desculpe, mas sou novo nas coisas de Sysadmin e muito novo no Linux (grande noob), então estou pedindo ajuda a vocês porque não tenho ideia do que está causando isso (como já afirmei, sou realmente novo no Linux). Eu acidentalmente removi (sorte minha...) coisas do Taskel enquanto tentava instalar a GUI e reinstalei algumas delas (pelo menos as que eu conseguia lembrar). O que tenho agora é que o Apache2 não inicia:

não consegue iniciar

e erro de sintaxe na linha 146 de /etc/apache2/apache2.conf se parece com

esse

O terceiro erro em /etc/apache2/mods-enabled/php7.1.load se parece com

esse Na verdade, não existe um arquivo como "libphp7.1" em /usr/lib/apache2/modules/ apenas "libphp8.1" (desculpe pelas novas capturas de tela aqui). Alguém pode me dizer o que devo fazer agora? Alterar o arquivo de configuração de 7.1 para 8.1 ou apenas instalar o 7.1?

Responder1

O mais provável é que sua versão do php tenha mudado em seu sistema (aplicável para Debian/Ubuntu e derivados, em outras distros alguns caminhos podem variar), mas não na configuração do seu Apache, execute:

php -v 

Verifique qual versão está carregando, executando:

ls -l /etc/apache2/mods-enabled/php*

então se a sua versão for diferente daquela carregada pelo Apache, supondo que o resultado seja

lrwxrwxrwx 1 root root 29 ago 17 12:19 php7.4.conf -> ../mods-available/php7.4.conf
lrwxrwxrwx 1 root root 29 ago 17 12:19 php7.4.load -> ../mods-available/php7.4.load

e sua nova versão agora é 8.1, verifique quais módulos estão disponíveis para execução:

ls -l /etc/apache2/mods-available/

-rw-r--r-- 1 root root  855 jun 13 08:43 php7.4.conf
-rw-r--r-- 1 root root  102 jun 13 08:43 php7.4.load
-rw-r--r-- 1 root root  855 ago 15 07:24 php8.1.conf
-rw-r--r-- 1 root root  101 ago 15 07:24 php8.1.load

na listagem aparecem os antigos (não funcionando) e os novos php8.1, execute o seguinte para criar novos links simbólicos para esses módulos da nova versão

sudo ln -s /etc/apache2/mods-available/php8.1.conf  /etc/apache2/mods-enabled/php8.1.conf
sudo ln -s /etc/apache2/mods-available/php8.1.load  /etc/apache2/mods-enabled/php8.1.load

remover links simbólicos antigos

sudo rm /etc/apache2/mods-enabled/php7.4.*

e reinicie o Apache

sudo service apache2 restart

Responder2

libphp-7.1.soestá faltando em seu sistema ou em um local não configurado de forma que o Apache possa encontrá-lo. Provavelmente foi removido durante uma atualização de algo, mas é difícil dizer.

Você está descobrindo que PHP é uma bagunça para manter em um servidor Linux. Especialmente em algo como Ubuntu LTS (que pode ou não ser sua distro, esta é apenas minha perspectiva), onde você obtém a estabilidade do LTS, mas é pego em uma situação que o força a ficar meses ou anos atrás de novos lançamentos de outros software que depende de funcionalidades mais recentes do "pacote X" para funcionar corretamente. Abaixo está como eu lido com isso no Ubuntu. Se você executa Redhat, Slack, SuSE ou Yggdrasil Linux, isso não ajudará muito.

Você não pode simplesmente instalar uma versão mais recente do PHP sem, em algum momento, enfrentar problemas de dependência do software do sistema operacional. Às vezes, essas dependências podem se deparar com a funcionalidade do MySQL/MariaDB, cujo final pode ser um problema do tipo pílula vermelha super emaranhado. Como uma pessoa comentou acima, às vezes a versão do PHP incluída no sistema operacional padrão está tão desatualizada que não é razoável usá-la (o que é definitivamente o caso com qualquer coisa menor que o PHP 8.0, e certamente incompleto com o 7.4, a partir de 29/03 /22). Também confuso para novos administradores porque"por que seu sistema operacional teria software tão desatualizado disponível?", certo? O Ubuntu aparentemente faz backport de problemas de segurança para versões LTS, mas é preciso muita pesquisa paraverificarum determinado CVE é corrigido nos pacotes LTS. Às vezes, uma correção estará disponível e já implementada no repositório tarball/git de um determinado pacote, mas o patch/backport ainda está aguardando um mantenedor do Ubuntu para realmente incluí-lo no pacote deb para que você possa instalá-lo. Sair da banda e instalar software sem um repositório é traiçoeiro do ponto de vista da segurança, porque você depende de um processo manual para lembrar de atualizar o pacote OOB e isso nunca funciona. os administradores vão embora, as pessoas esquecem.

Felizmente, existe esse mantenedor do Debian Ondřej Surý (mais parecido com um assistente, na verdade) da República Tcheca que se encarregou de lançar um repositório que inclui todos os fundamentos para atualizar o PHP no sistema Debian/Ubuntu. Você podeconfigurarisso maravilhosorepositórioe atualizar o PHP e ainda mantê-lo sustentável. Como bônus, você pode atualizarNginXeApachetambém por meio de seu repositório, já que algumas das funcionalidades mais recentes do PHP exigem alterações nesses pacotes. Você provavelmente pode encontrar instruções melhores em um dos links acima, mas há alguns sites que podemguiá-lo através dissotambém.juntamente com quaisquer alterações necessárias na pilha Nginx ou Apache.

Uma palavra de cautela: antes de instalar o repositório Ondřej Surý, obtenha uma lista detodosos pacotes PHP/NginX/Apache atualmente instalados (por exemplo: dpkg -l | egrep -i '(apache|nginx|php)'(ou algum encantamento semelhante de apt aptitude apt-get). Os nomes desses pacotes mudam às vezes, e as dependências às vezes trazem uma mistura de versões dos pacotes PHP. Por exemplo, havia algo isso aconteceu com ombstringpacote algumas versões do PHP atrás. Foi necessário algumIntervenção manual

Claro, tudo isso às vezes pode ser evitado com uma atualização do sistema operacional (por exemplo: "Crazy Camel" -> "Damaged Dingo"), mas mesmo assim, a versão mais recente do LTS pode estar faltando funções de ponta que algumas pilhas de terceiros precisam e você ainda estamos no mesmo barco.

De qualquer forma, boa sorte e não se esqueça de tirar um snapshot da sua VM antes de fazer qualquer coisa!

informação relacionada