6
9月
2022
重新安装Linux Mint 21中的Apache2 Web服务器,并安装PHP 8.1
16:34

重新安装Linux Mint 21中的Apache2 Web服务器,并安装PHP 8.1

6 9月 2022 16:34

在迁移到基于 Ubuntu jammy 软件包库的 Linux Mint 21 “Vanessa” 后,Apache2 Web 服务器停止运行。
我是如何恢复 Web 服务器运行的,下文将进行介绍。

启动Web服务器Apache2的问题

问题如下 - 重新安装Linux Mint后,该服务没有启动”apache2”:
sudo service apache2 starT
job for apache2.service failed because the control process exited with error code.
_See systemctl status apache2.service " and " journalctl -xeu apache2.service" for details。
日志显示服务找不到配置文件/etc/apache2/apache2.conf。

试图通过重新安装并没有导致任何事情:
sudo apt-get update && sudo apt-get purge apache2 && sudo apt-get install apache2

此外,在完全删除 Apache2 后,旧安装的痕迹仍然存在:“which apache2”

  • 应该显示一个空行,但输出不同,指向 /usr/sbin 文件夹。

解决问题

1)删除旧版本

sudo apt-get purge apache2

2)删除过去安装的轨迹

sudo apt-get autoremove
sudo rm /usr/sbin/apache2

3)添加 PPA 存储库“ondrej/apache2”并更新包的缓存:

呢评论。 如果操作系统是Debian, 那么默认情况下其中没有命令 "apt-add-repository"。

仅限 Debian(其他操作系统无需执行以下操作):

sudo apt-get install software-properties-common
sudo apt-get update

在Ubuntu和Linux Mint中:

sudo apt-add-repository ppa:ondrej/apache2
sudo apt-get update

4)我们安装apache2

sudo apt-get install apache2

5)检查配置

sudo apache2ctl configtest

错误信息:
AH00558:apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

您需要在指令'SE中指定Web服务器的名称或IP地址rverNam在配置文件中

sudo nano /etc/apache2/apachec.conf

靠近文件的开始,添加行

ServerName linux-pc

linux -pc在哪里 - 在符号 @之后显示在终端中的名称

保存配置CTRL+O,CTRL+X

6)启动Apache2服务:

sudo service apache2 start

7)我们检查Web服务器的工作,浏览器的打开以及向地址的过渡,请确保添加前缀http://

例如,http://linux-pc

8)在文件夹中设置虚拟主机 “/etc/apache2/sites-available”

测试文件的示例(内容没有评论 grep -v "^[[:blank:]]#" test.conf ):

<VirtualHost *:80>
ServerName test
ServerAdmin webmaster@localhost
DocumentRoot /home/user/test/
<Directory "/home/user/test">
Options Indexes MultiViews
AllowOverride None
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/errortest.log
CustomLog ${APACHE_LOG_DIR}/accesstest.log combined
</VirtualHost>

9)从启用站点的目录中创建软链接:

cd /etc/apache2/sites-enabled
sudo ln -s ../sites-available/test.conf test.conf

查看:

ls -l

10)在主机文件中,添加假名

sudo nano /etc/hosts

127.0.0.1 test

Ctrl+O,Ctrl+X

12)重新阅读配置或重新启动Apache2服务,如下所示:

sudo service apache2 reload

13)我们通过过渡到 http://test

14)如果显示文件的内容而不是PHP操作的结果,则显示(因为PHP语言中的动态站点),
您需要重新安装Apache2的PHP模块2

首先,我们发现可以安装哪些Apache2的PHP模块:

apt-cache search libapache2-mod-php*

例如,有用于Apache2:PHP 7.4和PHP8.1的模块

接下来,我们决定该项目需要哪个PHP。 例如,如果Twig Twig引擎具有旧版本,请选择7.4,否则8.1

libapache2-mod-php8.1 - 嵌入在 HTML 中并在服务器端运行的脚本语言(Apache 2 模块)
libapache2-mod-php7.4 - 过渡方案

我首先安装了命令行的相应版本的PHP和PHP。

sudo apt-get install php8.1 php8.1-cli

如果有多个并行的 php 配置和版本,我将 php 8.1 指定为“主要”:

sudo update-alternatives --config php

我删除了 LIBRARY libapache2-mod-php8.1 以及 libapache2-mod-php这个技巧解决了很多问题):

sudo apt purge libapache2-mod-php8.1 libapache2-mod-php

立即仅安装 只有一个 模块libapache2-mod-php8.1:

sudo apt install libapache2-mod-php8.1

我们允许启动用于Apache的PHP8.1模块,命令:

sudo a2enmod php8.1

在控制台中,显示了有关模块成功注册的消息

Considering dependency mpm_prefork for php8.1:
Considering conflict mpm_event for mpm_prefork:
Considering conflict mpm_worker for mpm_prefork:
Module mpm_prefork already enabled
Considering conflict php5 for php8.1:
Module php8.1 already enabled

15)打开网站http:// test。 如果某事不起作用,我们会检查杂志

su -
cd /var/log/apache2
tail errortest.log

16) 有必要调试程序。 通常,错误与旧版本的Freimvorkov(供应商)与新版本的PHP 8.1的不兼容有关。
根据对目录中的杂志的分析,在PHP计划的守则中解决了其余问题 /var/log/apache2


添加11/22/22:在Apache2 Web服务器中包含PHP 8.1

如果“apt update”命令提示 Apache2 中默认未启用 PHP 8.1

NOTICE: Not enabling PHP 8.1 FPM by default.
NOTICE: To enable PHP 8.1 FPM in Apache2 do:
NOTICE: a2enmod proxy_fcgi setenvif
NOTICE: a2enconf php8.1-fpm
NOTICE: You are seeing this message because you have apache2 package installed.

打开Apache2中的PHP 8.1:

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl reload apache2

检查PHP版本:

php --version

服务状态 “PHP 8.1 FastCGI Process Manager”:

systemctl status php8.1-fpm

Phpinfo()团队的结果;
PHP Version 8.1.2-1ubuntu2.8



相关出版物