我试图在一个项目上执行一些PHP代码(使用Dreamweaver),但代码没有运行。
当我检查源代码时,PHP代码显示为HTML标记(我可以在源代码中看到它)。Apache运行正常(我正在使用XAMPP), PHP页面正在正常打开,但PHP代码没有被执行。
有人有什么建议吗?
注意:该文件已经命名为filename.php
编辑: 代码. .:
<?
include_once("/code/configs.php");
?>
我试图在一个项目上执行一些PHP代码(使用Dreamweaver),但代码没有运行。
当我检查源代码时,PHP代码显示为HTML标记(我可以在源代码中看到它)。Apache运行正常(我正在使用XAMPP), PHP页面正在正常打开,但PHP代码没有被执行。
有人有什么建议吗?
注意:该文件已经命名为filename.php
编辑: 代码. .:
<?
include_once("/code/configs.php");
?>
听起来你的配置好像有问题,下面是一些你可以检查的东西:
Make sure that PHP is installed and running correctly. This may sound silly, but you never know. An easy way to check is to run php -v from a command line and see if returns version information or any errors. Make sure that the PHP module is listed and uncommented inside of your Apache's httpd.conf This should be something like LoadModule php5_module "c:/php/php5apache2_2.dll" in the file. Search for LoadModule php, and make sure that there is no comment (;) in front of it. Make sure that Apache's httpd.conf file has the PHP MIME type in it. This should be something like AddType application/x-httpd-php .php. This tells Apache to run .php files as PHP. Search for AddType, and then make sure there is an entry for PHP, and that it is uncommented. Make sure your file has the .php extension on it, or whichever extension specified in the MIME definition in point #3, otherwise it will not be executed as PHP. Make sure you are not using short tags in the PHP file (<?), these are not enabled on all servers by default and their use is discouraged. Use <?php instead (or enable short tags in your php.ini with short_open_tag=On if you have code that relies on them). Make sure you are accessing your file over your webserver using an URL like http://localhost/file.php not via local file access file://localhost/www/file.php
最后,查看PHP手册以获得更多的设置技巧。
我在Ubuntu上运行Apache,我的问题是/etc/apache2/mods-available/php5.conf文件缺少这个:
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
我把它添加回来,php正确地解析php文件。
我发布这个答案是因为我的Virtualmin/Webmin管理界面决定禁用我的PHP引擎是一个好主意。我花了一段时间才找到解决方案,所以我想和你们分享一下:
同时,确保你的网站配置文件中没有任何与这个特定主机或虚拟主机相关的php_admin_value在它们中关闭PHP,就像这样:
php_admin_value engine Off
有疑问的时候,评论一下…
# php_admin_value engine Off
并重新启动您的web服务器。
检查你为php安装的所有包,使用:
yum list installed | grep remi
在你的机器上安装所有相关的php包,尤其是php-devel。
我知道这听起来很傻……但这种情况很少发生。
检查您是否试图从
**http://localhost/info.php**
而不是来自
file:///var/www/info.php
Ps >你可以注意到如果你从shell写
php info.php
它回答的代码(它意味着PHP函数)..
在我的ubuntu 14.04, apache 2.4, php 5.5.9安装,我尝试在/var/www/html(默认文档根)上使用sample.php,它工作正常。 所以问题出在我的虚拟服务器配置上。 解决方案是在包含.php的Directory def中包含这一行:
php_admin_flag engine on
我认为问题是,它显示的代码而不是结果是,它不会去本地主机。重新检查你要去的地址。是到本地文件目录还是到本地主机。
从你发送的屏幕截图,它将到你的计算机,而不是到本地主机。
"file:/// "应该是"localhost/"
这种情况又发生在我身上,服务器下载html文件,而不是处理。我已经有一段时间没有在电脑上使用web服务器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>
我有一个案例,我不小心开始解压我的文件目录在根。它从我的文件文件夹中添加了。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
对于运行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
这对我很有用
我在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 .php < IfModule dir_module > DirectoryIndex index.html index.php < / IfModule > < / IfModule >
刚刚花了几个小时试图让PHP 5与Windows 10上的Apache 2.4一起运行。最后对我来说,这是httpd.conf LoadModule中的一个拼写错误。通过denny2018这个apachelounge线程的最后一个回答,提请注意写作和准确的模块路径。谢谢你!
过了两晚,我发现……我的目录是c:(小写)
我有LoadModule php5_module“c:/php/php5apache2.dll”,但正确的apache 2.4是:
LoadModule php5_module "C:/php/php5apache2_4.dll"
所以我之前也错过了_4(对于apache 2.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),
在取消特定模块的注释之后
其它选项:
from
“/etc/apache2/httpd.conf”
我的问题消失了。
如果我们在同一页做下面
Sudo apt-get install PHP 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文件在/var/www/html/根文件夹。对于子目录来说一切正常。(例如wordpress和phpmyadmin工作得很好)
这就是我的解。我决定启用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
现在一切都很好。
此问题的另一个可能原因可能是您试图在UserDir模块的“用户目录”中运行脚本。在用户目录下运行PHP脚本默认是禁用的。如果脚本位于主文件夹的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>
在我的情况下,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变体,但这一个肯定为我修复了它。
之后不要忘记重新启动服务器。
It is possible to install phpmyadmin on raspberry 64 bit and it even was not difficult in my case. I am running several hp-laptops with openSuse Tumbleweed and some Raspberries. On the latest Raspberry 3 B + I 64bit raspbian buster light, kde plasma Desktop. Linux raspi10 5.10.60-v8+ #1449 SMP PREEMPT Wed Aug 25 15:01:33 BST 2021 aarch64 GNU/Linux I am using nginx 1.14.2 with fastcgi (not using 'sock') and php 8.0.10 (php-fpm). I downloaded 'composer' first. (Use apt or aptitude for that). After that go to https://docs.phpmyadmin.net/en/latest/setup.html Look for the shell command
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中的根指令相应设置。
我的nginx配置在我的所有机器上(几乎)是相同的。 它现在非常紧凑。 这是最简单的方法。所有进一步的服务器和功能可以稍后添加。 /etc/nginx/sites-enabled没有条目 /etc/nginx/vhosts.d中没有任何内容 从php.ini中的一个池开始。为了配置它,谷歌一点和测试 通过检查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关闭开发服务器。
这个信息也是通过在终端中调用php——help来给出的,进一步的信息在https://www.php.net/manual/en/features.commandline.webserver.php中给出