在/ tmp中编辑testme.php
文件。
<?php
echo "test";
?>
编辑标题为test
的新帖子并上传文件/tmp/testme.php
,并使用网址http://home.local/wp/?p=4785
发布。
我想在testme中查看内容,单击它,然后在wordpress中弹出新窗口。
继续单击它。test
显示在网页中。
我的期望:
1.只需在测试帖子中单击testme
一次。
2.将testme.php
显示为纯文本
<?php
echo "test";
?>
代替执行testme.php
的结果。
test
我根据一些材料show php file as plain text in apache
进行配置。
sudo vim /etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerName www.home.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
allow from all
php_flag engine off
AddType text/plain php
</Directory>
</VirtualHost>
重新启动apache2(在Debian中构建)。
sudo systemctl restart apache2
要打开帖子http://home.local/wp/?p=4785
,我在网页中得到以下输出:
<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/
/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);
/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );
答案 0 :(得分:3)
您已经有了正确的代码-AddType text/plain php
,这将使Apache将PHP文件(或名称以.php
结尾的文件)视为纯文本文件。
但是假设以下条件:
您已经在/var/www/html
目录中安装了WordPress。
PHP文件已上传到WordPress(uploads
)中默认的wp-content/uploads
文件夹。
如果您将目录设置为/var/www/html/wp-content/uploads
,如下所示:
<Directory /var/www/html/wp-content/uploads>
AddType text/plain php
</Directory>
您将获得所需的结果-仅将uploads
文件夹中的PHP文件视为纯文本文件,而将{{1}中的所有PHP文件视为 } 目录。这解释了“ 要打开帖子/var/www/html
,我得到以下输出”的问题,其中该输出是文件http://home.local/wp/?p=4785
中的代码。我的意思是,您使用了/var/www/html/index.php
,这使Apache将<Directory /var/www/html>
文件视为纯文本文件,而不是执行文件中的PHP代码。
替代方法:使用index.php
文件。
尤其是如果您无法编辑或无法访问Apache的配置(.htaccess
)文件。
在.conf
文件夹中创建.htaccess
(如果尚未存在)。
然后在该文件中添加uploads
。
我想查看
AddType text/plain php
中的内容,单击它,弹出新窗口
我确定您可以做到这一点,或者已经有了代码/解决方案,但是一个简单的方法是将testme.php
添加到附件/文件链接中。或者使用JavaScript,您可以使用{{3 }}。
并且您必须采取全面的安全性措施,因为允许人们上传PHP文件可能会损害您的网站和/或您的网站用户。
答案 1 :(得分:0)
您要完成什么?似乎您正在尝试获取显示PHP文件内容的超链接。 WordPress帖子存储在数据库中。因此,当您说“发布”时,您在说什么?指向WordPress帖子或PHP文件的数据库条目?如果您只想在屏幕上显示PHP文件的未执行内容,则不应该发布WordPress“帖子”。帖子中包含什么?如果您正在谈论将PHP文件作为帖子的内容,那也将是另一回事。显示PHP文件内容的最简单方法可能就是将其重命名为文本文件。
myFile.php => myFile.php.txt