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命令。
由于成功重新启动,所以试着在浏览器中访问…

得到了展示成功