phpinfo,如何解决源代码直接显示的备忘录

过程

我想在PHP中实现文件上传器

安装PHP,在文档根目录下的.html文件中编写PHP代码

出现乱码问题

作为解决线索,参考phpinfo可以知道一些好的信息

在写有的文件中用浏览器访问

只有的代码被显示出来

解决方案

    • libapache2-mod-phpのインストール

 

    php8.1を有効化

生態系统

Ubuntu服务器22.04 TLS
Apache/2.4.52
PHP8.1

实践

安装libapache2-mod-php

只安装PHP似乎是不够的,还需要安装模块。

$sudo 安装php libapache2-mod-php

只需进行以下更改即可让“php.ini”被引用(此次不进行编辑)

启用PHP 8.1

请激活php8.1模块,使用以下命令:$sudo a2enmod php8.1

对于我来说,在这里

考虑到php8.1对mpm_prefork依赖的情况:
考虑到mpm_prefork与mpm_event的冲突:
错误:模块mpm_event已启用 – 由于冲突无法继续。需要先禁用它!
考虑到mpm_prefork与mpm_worker的冲突:
错误:无法启用mpm_prefork对php8.1的依赖项,中止操作。

出现了错误。

似乎需要禁用 mpm_event。

禁用MPM事件模块:sudo a2dismod mpm-event

随后

禁用模块mpm_event。
为了激活新配置,您需要执行以下操作:
systemctl 重启 apache2。

根据所说的

请使用以下命令重启Apache2:
$sudo systemctl restart apache2

× apache2.service – Apache HTTP 服务器
已加载: 已加载 (/lib/systemd/system/apache2.service; 启用; 供应商预置: 启用)
活动中: 失败 (结果: 退出代码) 自 2023-05-31 13:16:25 UTC 起; 19 秒前
文档: https://httpd.apache.org/docs/2.4/
进程: 2242 执行开始=/usr/sbin/apachectl start (代码=已退出, 状态=1/失败)
CPU: 9ms
May 31 13:16:25 guchibu systemd[1]: 正在启动 Apache HTTP 服务器…
May 31 13:16:25 guchibu apachectl[2245]: AH00534: apache2: 配置错误: 未加载 MPM。
May 31 13:16:25 guchibu apachectl[2242]: 操作“start”失败。
May 31 13:16:25 guchibu apachectl[2242]: Apache 错误日志可能包含更多信息。
May 31 13:16:25 guchibu systemd[1]: apache2.service: 控制进程已退出, 代码=已退出, 状态=1/失败
May 31 13:16:25 guchibu systemd[1]: apache2.service: 失败,退出代码。
May 31 13:16:25 guchibu systemd[1]: 无法启动 Apache HTTP 服务器。

需要启用MPM吗?在这里遇到了一点困难。

请使用以下命令启用mpm_event模块: $sudo a2enmod mpm_event

考虑到mpm_event和mpm_worker之间的冲突:
考虑到mpm_event和mpm_prefork之间的冲突:
错误:mpm_prefork模块已启用 – 由于冲突无法进行。 需要先禁用它!

据说现在需要禁用 mpm_prefork。

$sudo a2dismod mpm_prefork 取消启用 mpm_prefork

错误:以下模块依赖于 mpm_prefork 并且需要先禁用:php8.1。

听说需要禁用Php8.1…
看来与一个三角关系有关…

$sudo a2dismod php8.1 可以被重述为:使用sudo命令禁用php8.1的模块。

禁用了php8.1模块。
要激活新配置,需要运行以下命令:
systemctl restart apache2。

错误已经消失了

用中文将以下句子表达出来,只需要一个选项:
以管理员权限重启apache2服务:$sudo systemctl restart apache2

看起来已经成功重新启动了
但是,Php8.1确实需要启用

将名为”php8.1″的模块启用,使用sudo命令运行”sudo a2enmod php8.1″。

考虑到Php8.1的依赖mpm_prefork:
考虑到mpm_prefork与mpm_event的冲突:
考虑到mpm_prefork与mpm_worker的冲突:
模块mpm_prefork已经启用。
考虑到php8.1与php5的冲突:
启用php8.1模块。
要激活新配置,您需要运行:
systemctl restart apache2。

输出了各种结果,但似乎没有错误。

使用本机语言将以下内容翻译成中文,只需要一种选项:
$sudo systemctl restart apache2

重启apache2,需使用sudo systemctl命令。

由于成功重新启动,所以试着在浏览器中访问…

image.png

得到了展示成功

广告
将在 10 秒后关闭
bannerAds