【问题标题】:apache2 not executing php statements in opensuse linuxapache2没有在opensuse linux中执行php语句
【发布时间】:2020-11-27 22:45:49
【问题描述】:

我有 apache2 作为本地服务器运行。我在 localhost 上有一个 wordpress 网站运行愉快。在尝试启用运行 phpMyAdmin 时,apache2 以某种方式停止执行 php 代码,并且我无法重新启用它。 非常感谢您的任何帮助

【问题讨论】:

  • 一些研究会告诉你通常的罪魁祸首。很可能 LoadModule 行在 httpd.conf 中被注释掉了。
  • 嗨@Nic3500。我一直在寻找解决方案,但没有成功,这就是我发布问题的原因。无论如何: loadmodule 确实包含一行 php7,所以这不是问题。我已经将日志记录到“调试” - 现在看到 (a) php7 已配置但 (b) Python 正在初始化。如果尝试使用 index.php 而不是 index.html,我也会看到要打开的文件,而不是执行它。我猜是同一个问题的一部分。我会继续挖掘,但如果您有任何其他建议,他们将受到欢迎。非常感谢
  • 应该有:1LoadModule php7_module modules/libphp7.so。还有 2 <FilesMatch "\.ph(p?|tml)$"> SetHandler application/x-httpd-php </FilesMatch>。这将配置所有以ph 开头的文件。像 .php 和 .phtml。处理程序定义 PHP 处理哪些扩展文件。
  • 感谢@nic3500。 1. 我的 loadmodule 行是“LoadModule php7_module /usr/lib64/apache2/mod_php7.so”——我相信这对我的系统是正确的。 .so 文件确实存在拥有的 root,权限 755。 2. 我将您建议的“FilesMatch”行添加到文件“conf.d/php7.conf”中 - 这是正确的文件吗?恐怕问题没有改变。你有什么其他的建议?我当然会继续探索......
  • 嗨@nic3500 解决了一个问题-我可以运行.php 文件,例如index.php:由于各种原因,我安装了opensuse jump 15.2(我的操作系统的下一个版本),因此重新安装了apache2。启用 php 模块和 apache2 抱怨没有为 MPM 线程编译 php(默认)。而是用 prefork 重新启动了 apache2。现在我可以成功执行 .php 文件,例如 index.php 。这并不能解释为什么我在使用早期系统时遇到问题,但确实意味着我可以进步。但是,我仍然无法从 .html 文件中运行 php,这应该是可能的吗?

标签: php linux apache2 suse


【解决方案1】:

这是一个配置问题。

应该有一行:

LoadModule php7_module        modules/libphp7.so. 

还有:

<FilesMatch "\.ph(p?|tml)$"> 
     SetHandler application/x-httpd-php 
</FilesMatch> 

这将配置所有以 ph 开头的文件。喜欢.php.phtml。处理程序定义 PHP 处理哪些扩展文件。

如果你还需要PHP处理.html文件,你可以放:

<FilesMatch ".html)$"> 
     SetHandler application/x-httpd-php 
</FilesMatch> 

请注意,您的所有 .html 文件都将通过 PHP 解释器进行处理。

【讨论】:

  • 谢谢 nic。需要注意的是,对于 openSuse linux,php7 模块位于 LoadModule 指令的 /usr/lib64/apache2/mod_php7.so 中。
猜你喜欢
  • 2017-08-16
  • 2023-03-05
  • 1970-01-01
  • 2011-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-17
相关资源
最近更新 更多