アップロードされたphpファイルをワードプレスで実行する代わりにプレーンテキストとして表示するにはどうすればよいですか?

かすれた

testme.php/ tmp内のファイルを編集します。

<?php
echo  "test";
?>

タイトルの新しい投稿を編集してtestファイルをアップロード/tmp/testme.phpし、URLで公開しますhttp://home.local/wp/?p=4785
ここに画像の説明を入力してください

testmeでコンテンツを表示し、クリックして、wordpressで新しいウィンドウをポップアップします。 ここに画像の説明を入力してください

続けてクリックしてください。testウェブページに表示されます。

私の期待:
1。testmeテスト投稿を1回クリックするだけです。
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' );
サリーCJ

すでに正しいコードがあります—AddType text/plain phpこれにより、ApacheはPHPファイル(または名前がで終わるファイル.php)をプレーンテキストファイルとして扱います。

しかし、次のことを前提としています。

  • /var/www/htmlディレクトリにWordPressがインストールされています

  • PHPファイルはuploadsWordPressのデフォルトフォルダにアップロードされます(wp-content/uploads)。

ディレクトリを次のように設定した場合/var/www/html/wp-content/uploads

<Directory /var/www/html/wp-content/uploads>
  AddType text/plain php
</Directory>

希望する結果が得られuploadsます。フォルダ内のPHPファイルのみがプレーンテキストファイルとして扱われディレクトリ内のすべてのPHPファイルが扱われるわけではありません/var/www/htmlこれは、「投稿を開くためhttp://home.local/wp/?p=4785に、次の出力が得られた」という問題を説明しています/var/www/html/index.phpこの出力は、ファイル内のコードです<Directory /var/www/html>つまり、を使用したため、Apacheはindex.phpファイル内のPHPコードを実行する代わりに、ファイルをプレーンテキストファイルとして扱います。

別の方法:.htaccessファイルを使用します。

特に、Apacheの構成(.conf)ファイルを編集できないか、アクセスできない場合

  1. まだフォルダにない場合.htaccessは、uploadsフォルダに作成ます。

  2. 次にAddType text/plain php、そのファイルを追加します。

その他の注意事項

のコンテンツを表示したいのでtestme.php、クリックして新しいウィンドウをポップアップします

あなたはそれを行うことができるか、すでにコード/ソリューションを持っていると確信していますが、簡単な方法はtarget="_blank"、添付ファイル/ファイルのリンクに追加することです..またはJavaScriptを使用すると、を使用できますwindow.open()

また、PHPファイルのアップロードを許可すると、サイトやサイトユーザーに損害を与える可能があるため、完全なセキュリティ対策を講じる必要があります。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ