提问人:Gui 提问时间:2/26/2011 最后编辑:TylerHGui 更新时间:5/7/2023 访问量:918248
PHP 代码未执行,但代码显示在浏览器源代码中
PHP code is not being executed, but the code shows in the browser source code
问:
我正在尝试在项目上执行一些PHP代码(使用Dreamweaver),但代码未运行。
当我检查源代码时,PHP代码显示为HTML标签(我可以在源代码中看到它)。Apache运行正常(我正在使用XAMPP),PHP页面正在正确打开,但PHP代码未执行。
有人对正在发生的事情有建议吗?
注意:该文件已命名为filename.php
编辑:守则..:
<?
include_once("/code/configs.php");
?>
答:
听起来您的配置有问题,您可以检查以下几点:
确保 PHP 已正确安装并运行。这听起来可能很傻,但你永远不知道。一个简单的检查方法是从命令行运行,看看是否返回版本信息或任何错误。
php -v
确保 PHP 模块在 Apache 的 httpd.conf 中列出并取消注释 这应该类似于文件中的内容。搜索 ,并确保其前面没有注释 ()。
LoadModule php5_module "c:/php/php5apache2_2.dll"
LoadModule php
;
确保 Apache 的 httpd.conf 文件中包含 PHP MIME 类型。这应该是这样的。这告诉 Apache 将文件作为 PHP 运行。搜索 AddType,然后确保有一个 PHP 条目,并且该条目未注释。
AddType application/x-httpd-php .php
.php
确保您的文件上有扩展名,或者在 #3 点的 MIME 定义中指定的任何扩展名,否则它不会作为 PHP 执行。
.php
确保您没有在 PHP 文件中使用短标签 (),默认情况下,并非所有服务器都启用这些标签,并且不建议使用它们。改用(或者在php.ini中启用短标签,如果你有依赖于它们的代码)。
<?
<?php
short_open_tag=On
确保您使用 URL 通过 Web 服务器访问您的文件,而不是通过本地文件访问
http://localhost/file.php
file://localhost/www/file.php
最后,查看PHP手册以获取进一步的设置提示。
评论
AddType application/x-httpd-php .php
apt-get purge apache2; apt-get install apache2 libapache-mod-php5
.php
<?php echo("Success"); ?>
我通过卸载 XAMPP 并安装 WAMP 解决了这个问题。 感谢您的帮助。
评论
我在 Ubuntu 上运行 Apache,我的问题是文件缺少这个:/etc/apache2/mods-available/php5.conf
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
我把它加回去,php 正确地解析了 php 文件。
我发现了导致此问题的另一个问题,并且已经解决了它。我不小心用编码保存了我的脚本。默认情况下,PHP5似乎无法识别16位编码的标签。UTF-16
<?php
我发布这个答案是因为我的 Virtualmin/Webmin 管理界面决定禁用我的 PHP 引擎是个好主意。我花了一段时间才找到解决方案,所以我想我会与你们分享:
另外,请务必检查与此特定主机或虚拟主机相关的网站配置文件中是否没有任何关闭 PHP 的php_admin_value,如下所示:
php_admin_value engine Off
如有疑问,请发表评论...
# php_admin_value engine Off
然后重新启动您的网络服务器。
评论
/etc/apache2/mods-enabled/php7.conf
php5.conf
sudo grep php_admin_value /etc/* -R
使用以下命令检查您为 php 安装的所有软件包:
yum list installed | grep remi
在您的机器上安装所有相关的 php 软件包,尤其是 php-devel。
我知道这听起来应该很傻......但这种情况很少发生。
检查您是否尝试从
**http://localhost/info.php**
而不是来自
file:///var/www/info.php
PS>你可以注意到,如果你从shell写
php info.php
它用代码回答(这意味着PHP函数)..
评论
我有类似的问题,但在我的情况下,解决方案是不同的。 我保存PHP代码的文件称为“SomeName.html”,将其更改为“SomeName.php”工作正常
评论
在我的 Ubuntu 14.04、Apache 2.4、PHP 5.5.9 安装中,我尝试在 /var/www/html(默认文档根目录)上使用示例 .php,它工作正常。 所以问题出在我的虚拟服务器配置上。 解决方案是在包含 .php 的目录 def 上包含以下行:
php_admin_flag engine on
评论
我认为它显示代码而不是结果的问题是它不会进入本地主机。重新检查您要进入的地址。您是要转到本地文件目录还是本地主机。
从您发送的屏幕截图中,它将转到您的计算机,而不是本地主机。
“file:/// ”它应该是“localhost/”
这又发生在我身上,同时服务器下载html文件,而不是处理。我已经有一段时间没有在计算机上使用网络服务器 apache 了,同时 Ubuntu 从最初安装的 LTS 更新了另外两个版本。现在是
$ cat /etc/issue
Ubuntu 16.04 LTS
所以 php 是这样工作的:
$ sudo apt-get install lamp-server^
$ sudo a2enmod php7.0
$ sudo service apache2 restart
Web服务器现在正在解析php。也许现在必须更新一些网站,因为 php7.0 现在运行在运行 php5 之前的位置。那好吧。
注意 对于 PHP 7 用户,请将以下内容添加到您的 httpd.conf 文件中:
# PHP 7 specific configuration
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
评论
httpd.conf
/etc/apache2/httpd.conf
apache2.conf
重新安装模块对我有用。mcrypt
$sudo apt-get install php5-mcrypt
$sudo php5enmod mcrypt
评论
我有一个案例,我不小心开始在root中解压缩我的文件目录。它从我的文件夹文件夹中添加了.htaccess文件,该文件将阻止所有php
# If we know how to do it safely, disable the PHP engine entirely.
<IfModule mod_php5.c>
php_flag engine off
</IfModule>
底线检查根目录下的.htaccess文件。
这是在我的.htaccess中
DirectoryIndex index.html index.htm
index.html 包含 PHP 代码。默认情况下,PHP 不会将扩展名为 htm* 的文件作为 PHP 代码进行处理。
您可以通过将以下内容添加到 .htaccess 来覆盖它:
<FilesMatch ".+\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
你只是在浏览器中打开你的php文件。您必须使用 localhost url 打开它。如果您直接从目录中打开一个文件,它在任何情况下都不会执行 PHP 代码。
使用:http://locahost/index.php
或 http:127.0.0.1/index.php
启用 php 短代码。在您的情况下,您正在使用 哪个是 php 的短代码。默认情况下,php 短代码是禁用的。<?
<?php
也可以使用:如果您是 ubuntu 用户。sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
评论
PHP7 :
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
sudo service apache2 restart
评论
sudo a2enmod proxy_fcgi setenvif
/mods-available/proxy.conf proxy_fcgi.load proxy.load
sudo a2enconf php7.0-fpm
/conf-available/php7.0-fpm.conf
对于运行 php 7 的 LAMP 的全新设置 编辑文件 /etc/httpd/conf/httpd.conf 注意:确保在更改任何内容之前对其进行备份。
将其粘贴到文件的最底部:
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
然后,搜索 LoadModule 并粘贴以下行:
LoadModule php7_module modules/libphp7.so
这一行将简单地要求 httpd 加载 php 7 模块
然后重新启动 httpd
如果您有这样的配置:
<VirtualHost *:80>
ServerName example.com
DocumentRoot "/var/www/example.com"
<FilesMatch "\.php$">
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</VirtualHost>
取消注释 httpd.conf 中的下一行
LoadModule proxy_module lib/httpd/modules/mod_proxy.so
LoadModule proxy_fcgi_module lib/httpd/modules/mod_proxy_fcgi.so
它对我有用
如果您使用的是 Apache 2.4,请添加到 httpd.conf 文件AddType application/x-httpd-php .php
确保脚本包含
<?php
在应该执行的代码之前。和之间不应该有空格。<?
php
评论
我在High Sierra(OS X 10.13.5)附带的php 7.1上遇到了这个问题,通过以下更改进行编辑有所帮助:/etc/apache2/httpd.conf
取消注释此行
LoadModule php7_module libexec/apache2/libphp7.so
在末尾粘贴以下内容
<IfModule php7_module> AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps <IfModule dir_module> DirectoryIndex index.html index.php </IfModule> </IfModule>
评论
刚刚花了几个小时试图让 PHP 5 在 Windows 10 上使用 Apache 2.4 运行。最后对我来说,这是 httpd.conf 中的一个错别字。提请注意 denny2018 的这个 apachelounge 线程中最后一个答案的写作和确切的模块路径。谢谢!LoadModule
两晚后,我发现......我的目录被写入(小写)
c:
我有但对 apache 2.4 的正确是:LoadModule php5_module "c:/php/php5apache2.dll"
LoadModule php5_module "C:/php/php5apache2_4.dll"
所以我也错过了之前(对于 apache 2.4)。对我有用的完整片段:_4
# PHP
LoadModule php5_module "C:/php/php5apache2_4.dll"
AddHandler application/x-httpd-php .php
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
刚刚尝试了PHP 7。Apache 2.4 的 httpd.conf 中的行显示LoadModule
LoadModule php7_module "C:/php/php7apache2_4.dll"
目前php手册显示,当然需要调整。c:/php/php5apache2.dll
就我而言(Apache/2.4.34),
取消对特定模块的注释后
“LoadModule php7_module libexec/apache2/libphp7.so”
从
“/etc/apache2/httpd.conf”
我的问题消失了。
如果我们在同一页面中,请执行以下操作
sudo apt-get install php -y
sudo apt-get install php-{bcmath,bz2,intl,gd,mbstring,mysql,zip,fpm} -y
要在 Apache2 中启用 PHP 7.2 FPM,请执行以下操作:
a2enmod proxy_fcgi setenvif
a2enconf php7.2-fpm
更新2:Apache下载.php文件而不是渲染
在那之后,我遇到了上述问题。也有类似的问题。
我不知道为什么,但它只发生在根文件夹中的 .php 文件中。子目录一切正常。(例如,wordpress和phpmyadmin工作正常)/var/www/html/
所以这是我的解决方案。我决定启用php模块。所以我运行了这个命令:
a2enmod php7.2
但我遇到了这个错误:
考虑 php7.2 的依赖mpm_prefork: 考虑mpm_prefork的冲突mpm_event: 错误:模块mpm_event已启用 - 由于冲突而无法继续。它需要先被禁用! 考虑mpm_prefork的冲突mpm_worker: 错误:无法启用 php7.2 的依赖项mpm_prefork,中止
所以我决定通过运行以下命令来禁用 mpm:
sudo a2dismod mpm_prefork
sudo a2dismod mpm_worker
sudo a2dismod mpm_event
然后重新启动 Apache:
systemctl restart apache2
然后启用PHP7.2(我安装的版本):
sudo a2enmod php7.2
现在一切正常。
此问题的另一个可能原因可能是您尝试从模块在“用户目录”中运行脚本。默认情况下,在用户目录中运行 PHP 脚本是禁用的。如果脚本位于主文件夹的目录中,并且您尝试从 访问它,则会遇到此问题。UserDir
public_html
http://localhost/~your_username
要解决此问题,请打开 .您必须注释或删除底部的标签块,该标签块显示/etc/apache2/mods-enabled/php7.2.conf
<IfModule mod_userdir.c>
<Directory /home/*/public_html>
php_admin_flag engine Off
</Directory>
</IfModule>
尝试重新启动 apache 服务器。这是我犯的错误 - 安装php后忘记重新启动服务器!
service httpd restart
就我而言,php模块没有加载。试试这个:
- 检查加载了哪些模块: 。寻找像这样的模块
apache2ctl -M
php7_module (shared)
- 如果没有列出 php 模块,则尝试加载与您的 php 版本相对应的模块。就我而言,php 数据包是 .于是我就这么做了:问题解决了。
libapache2-mod-php7.3
a2enmod php7.3
对于php7.3。* 您可以尝试安装这些模块。它对我有用。
sudo apt-get install libapache2-mod-php7.3
sudo service apache2 restart
使用 Debian 10 测试的安装 Apache + php7 的最简单方法:
apt-get update -y
apt-get install apache2 php7.0 libapache2-mod-php -y
sudo service apache2 restart
尝试上述所有方法后,没有任何效果,请考虑重新启动电脑。解决了我的。
PHP 8、Centos 7、Apache 2、Remi Repo
我最近升级了一台 centos 服务器以使用 php 8。
升级后,php停止工作,apache开始以文本形式为我提供php代码。
花了很长时间寻找哪个配置设置没有更新,我将其追踪到以下位置:
在/etc/httpd/conf.d
<IfModule mod_php7.c>
需要更改为:
<IfModule mod_php.c>
您可能会在其他地方看到可以更新为变体的检查,但这个绝对为我修复了它。mod_php7
mod_php
之后不要忘记重新启动服务器。
可以在树莓 64 位上安装 phpmyadmin,就我而言,这甚至不难。
我正在运行几台带有 openSuse Tumbleweed 和一些覆盆子的 hp 笔记本电脑。
在最新的 Raspberry 3 B + I 64 位 raspbian buster light 上,kde 等离子桌面。
Linux raspi10 5.10.60-v8+ #1449 SMP 抢占 Wed Aug 25 15:01:33 BST 2021 aarch64 GNU/Linux
我正在使用 nginx 1.14.2 和 fastcgi(不使用“sock”)和 php 8.0.10 (php-fpm)。
我首先下载了“composer”。(为此使用 apt 或 aptitude)。
之后,转到 https://docs.phpmyadmin.net/en/latest/setup.html
查找 shell 命令
composer create-project phpmyadmin/phpmyadmin
它将在当前目录中安装一个完整的目录“phpmyadmin”。
将其移动到 /var/lib/ 并根据您在 nginx.conf
中的设置设置 user:group 权限 就我而言:
chown -R www-data:www-data /var/lib/phpmyadmin
创建一个指向 /srv/www/public 或 /var/www/html 的符号链接,或者您的服务器正在寻找内容的任何位置。
您可以将名为 phpMyAdmin 的第二个符号链接添加到 phpmyadmin
确保 nginx.conf 中的 root 指令已相应地设置。
我的 nginx 配置在我的所有机器上(几乎)相同。
它现在非常紧凑。
首先,这是最简单的方法。以后可以添加所有其他服务器和功能。
/etc/nginx/sites-enabled 中没有条目
/etc/nginx/vhosts.d
中没有任何内容 从 php.ini 中的一个池开始。要配置它,谷歌一个litlle并测试
通过检查 php-fpm 的状态。
在尝试了所有方法之后,我想出了这个解决方案
默认情况下未启用 PHP 7.0 FPM 时,会出现此错误。
要在 Apache2 中启用 PHP 7.0 FPM,请运行:
sudo 2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm
systemctl restart apache2
如果您有 php7.4,请在上述命令中输入 7.4 而不是 7.0。
今天,PHP 带有一个内置的 Web 服务器,因此不需要进一步安装,因此呈现 PHP 文件以供开发使用的最简单方法之一是:
- 打开终端并切换到包含 Web 应用的源目录(其主文件通常称为 )。
index.php
- 在此目录中,键入(端口号是任意选择的)。
php -S localhost:7777
- 打开 Web 浏览器,在地址栏中键入内容,应呈现所需的网页。
localhost:7777
如果您已完成访问,请返回终端并按下以关闭开发服务器。CTRL-C
此信息也是通过在终端中调用来给出的,更多内容在 https://www.php.net/manual/en/features.commandline.webserver.phpphp --help
sudo apt-get install apache2 php7.x libapache2-mod-php7.x
a2query -m php7.x
sudo a2enmod php7.x
sudo service apache2 restart
x- 你的 php7 颠覆
评论
<?
<?php
<?
<?=
tail -f -n 50 /var/log/apache2/error.log