Apache2가 시작되지 않는 것 같습니다.

Apache2가 시작되지 않는 것 같습니다.

죄송합니다. 저는 Sysadmin에 대해 처음 접했고 Linux를 처음 접했습니다(큰 멍청한 놈). 그래서 이 문제의 원인이 무엇인지 모르기 때문에 여러분에게 도움을 요청합니다(이미 말했듯이 저는 Linux를 처음 접하는 사람입니다). GUI를 설치하려고 할 때 실수로 taskel을 사용하여 항목을 제거한 다음(적어도 기억할 수 있는 것) 일부를 다시 설치했습니다. 내가 지금 가지고 있는 것은 apache2가 시작되지 않는다는 것입니다.

시작하지 못함

/etc/apache2/apache2.conf의 146행에 있는 구문 오류는 다음과 같습니다.

이것

/etc/apache2/mods-enabled/php7.1.load의 세 번째 오류는 다음과 같습니다.

이것 실제로 /usr/lib/apache2/modules/에 "libphp7.1"과 같은 파일은 없습니다. "libphp8.1"만 있습니다(새 스크린샷에 대해서는 죄송합니다). 지금 무엇을 해야 하는지 알려줄 수 있는 사람이 있나요? 구성 파일을 7.1에서 8.1로 변경하거나 7.1을 설치하시겠습니까?

답변1

시스템에서 PHP 버전이 변경되었을 가능성이 높지만(Debian/Ubuntu 및 파생 제품에 적용 가능, 다른 배포판에서는 일부 경로가 다를 수 있음) Apache 구성에서는 변경되지 않고 다음을 실행하세요.

php -v 

다음을 실행하여 로드 중인 버전을 확인합니다.

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

그런 다음 귀하의 버전이 Apache에 의한 로딩과 다른 경우 결과는 다음과 같습니다.

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

이제 새 버전이 8.1입니다. 실행할 수 있는 모듈을 확인하세요.

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

목록에 이전 버전(작동하지 않음)과 새 버전 php8.1이 표시됩니다. 다음을 실행하여 해당 새 버전 모듈에 대한 새 심볼릭 링크를 만듭니다.

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

오래된 심볼릭 링크 제거

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

그리고 아파치를 다시 시작하세요

sudo service apache2 restart

답변2

libphp-7.1.so시스템에 없거나 Apache가 찾을 수 있는 방식으로 구성되지 않은 위치에 있습니다. 무언가를 업그레이드하는 동안 제거되었을 가능성이 있지만 말하기는 어렵습니다.

당신은 PHP가 Linux 서버에서 유지 관리하기가 엉망이라는 것을 알게 되었습니다. 특히 Ubuntu LTS(귀하의 배포판일 수도 있고 아닐 수도 있음, 이것은 단지 내 관점일 뿐입니다)와 같은 경우 LTS의 안정성을 얻었지만 다른 새 릴리스보다 몇 달에서 몇 년 뒤쳐져 있어야 하는 곤경에 처하게 됩니다. 올바르게 작동하려면 "패키지 X"의 최신 기능에 의존하는 소프트웨어입니다. 다음은 우분투에서 처리하는 방법입니다. Redhat, Slack, SuSE 또는 Yggdrasil Linux를 실행하는 경우에는 별 도움이 되지 않습니다.

어느 시점에서 OS 소프트웨어와의 종속성 문제가 발생하지 않고 최신 버전의 PHP를 설치할 수는 없습니다. 때때로 이러한 종속성은 MySQL/MariaDB 기능에 대해 실행될 수 있으며 이는 결국 매우 얽힌 빨간 알약 유형의 문제가 될 수 있습니다. 위에서 한 사람이 언급했듯이, 때때로 표준 OS와 함께 번들로 제공되는 PHP 버전이 너무 오래되어 사용하기에 불합리합니다. (PHP 8.0 미만의 경우 확실히 그렇습니다. 3/29 현재 7.4에서는 확실히 개략적입니다. /22). 또한 새로운 관리자에게는 혼란스럽습니다."왜 당신의 OS에 그렇게 오래된 소프트웨어가 있는 걸까요?", 오른쪽? Ubuntu는 보안 문제를 LTS 릴리스로 백포트하는 것으로 보이지만 상당한 양의 조사가 필요합니다.확인하다특정 CVE는 실제로 LTS 패키지에 패치됩니다. 때로는 수정 사항이 사용 가능하고 특정 패키지의 tarball/git 저장소에 이미 구현되어 있지만 패치/백포트는 Ubuntu 관리자가 실제로 설치할 수 있도록 deb 패키지에 롤백하기를 여전히 기다리고 있습니다. 대역 외로 이동하여 리포지토리 없이 소프트웨어를 설치하는 것은 보안 관점에서 위험한 일입니다. 왜냐하면 OOB 패키지를 업그레이드하는 것을 기억하기 위해 수동 프로세스에 의존하게 되고 결코 제대로 작동하지 않기 때문입니다. 관리자는 떠나고 사람들은 잊어버립니다.

운 좋게도 체코 출신의 데비안 관리자 Ondřej Surý(사실 마법사에 더 가깝습니다)가 데비안/우분투 시스템에서 PHP를 업그레이드하기 위한 모든 기반을 포함하는 저장소를 스스로 내놓았습니다. 당신은 할 수 있습니다구성이 놀라운레포PHP를 업그레이드하고 유지 관리가 가능하도록 하세요. 보너스로 업그레이드할 수 있습니다.NginX그리고아파치최신 PHP 기능 중 일부를 사용하려면 해당 패키지를 변경해야 하기 때문에 그의 저장소를 통해서도 마찬가지입니다. 위의 링크 중 하나에서 더 나은 지침을 찾을 수 있지만 다음과 같은 몇 가지 사이트도 있습니다.그것을 통해 당신을 안내필요한 Nginx 또는 Apache 스택 변경 사항도 함께 적용됩니다.

주의할 점은 Ondřej Surý 저장소를 설치하기 전에 다음 목록을 얻으세요.모두현재 설치된 PHP/NginX/Apache 패키지(예: dpkg -l | egrep -i '(apache|nginx|php)'(또는 의 유사한 주문 apt aptitude apt-get). 이러한 패키지의 이름은 때때로 변경되며 종속성으로 인해 때때로 PHP 패키지 버전이 혼합되어 있습니다. 예를 들어 다음과 같은 것이 있었습니다. 그 일이 일어났어mbstring몇 가지 PHP 버전을 패키지화하세요. 어느 정도 필요했어요수동 개입

물론 이 모든 것은 때때로 OS 업그레이드를 통해 피할 수 있지만(예: "Crazy Camel" -> "Damaged Dingo") 그렇더라도 최신 LTS 릴리스에는 일부 타사 스택에 필요한 최첨단 기능이 누락되어 있을 수 있습니다. 여전히 같은 배에 있어요.

어느 쪽이든 행운을 빕니다. 작업을 수행하기 전에 VM 스냅샷을 생성하는 것을 잊지 마십시오!

관련 정보