diff --git src/wp-admin/css/list-tables-rtl.css src/wp-admin/css/list-tables-rtl.css
index a262405bd7..85d8a75aec 100644
--- src/wp-admin/css/list-tables-rtl.css
+++ src/wp-admin/css/list-tables-rtl.css
@@ -1523,11 +1523,18 @@ div.action-links,
 .plugin-card .compatibility-incompatible:before {
 	content: "\f158";
 }
+.plugin-card .column-compatibility .compatibility-incompatible:before {
+	color: #f00;
+}
 
 .plugin-card .compatibility-compatible:before {
 	content: "\f147";
 }
 
+.plugin-card .column-compatibility .compatibility-compatible:before {
+	color: #008000;
+}
+
 .plugin-icon {
 	position: absolute;
 	top: 20px;
diff --git src/wp-admin/css/list-tables.css src/wp-admin/css/list-tables.css
index 1f463e6e54..950e3948e5 100644
--- src/wp-admin/css/list-tables.css
+++ src/wp-admin/css/list-tables.css
@@ -1524,10 +1524,18 @@ div.action-links,
 	content: "\f158";
 }
 
+.plugin-card .column-compatibility .compatibility-incompatible:before {
+	color: #f00;
+}
+
 .plugin-card .compatibility-compatible:before {
 	content: "\f147";
 }
 
+.plugin-card .column-compatibility .compatibility-compatible:before {
+	color: #008000;
+}
+
 .plugin-icon {
 	position: absolute;
 	top: 20px;
diff --git src/wp-admin/includes/class-wp-plugin-install-list-table.php src/wp-admin/includes/class-wp-plugin-install-list-table.php
index a19729b1d4..1767244f9e 100644
--- src/wp-admin/includes/class-wp-plugin-install-list-table.php
+++ src/wp-admin/includes/class-wp-plugin-install-list-table.php
@@ -456,6 +456,8 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 
 		$group = null;
 
+		$this->load_requires_php();
+
 		foreach ( (array) $this->items as $plugin ) {
 			if ( is_object( $plugin ) ) {
 				$plugin = (array) $plugin;
@@ -665,15 +667,25 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 				</div>
 				<div class="column-compatibility">
 					<?php
+					echo '<strong>' . __( 'Requirements' ) . '</strong><br>';
 					$wp_version = get_bloginfo( 'version' );
 
-					if ( ! empty( $plugin['tested'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['tested'] ) ), $plugin['tested'], '>' ) ) {
+					if ( $this->is_wordpress_compatible( $plugin['tested'], '>' ) ) {
 						echo '<span class="compatibility-untested">' . __( 'Untested with your version of WordPress' ) . '</span>';
-					} elseif ( ! empty( $plugin['requires'] ) && version_compare( substr( $wp_version, 0, strlen( $plugin['requires'] ) ), $plugin['requires'], '<' ) ) {
-						echo '<span class="compatibility-incompatible">' . __( '<strong>Incompatible</strong> with your version of WordPress' ) . '</span>';
+					} elseif ( $this->is_wordpress_compatible( $plugin['requires'], '<' ) ) {
+						printf( '<span class="compatibility-incompatible">' . __( 'WordPress %s' ) . '</span>', $plugin['requires'] );
 					} else {
-						echo '<span class="compatibility-compatible">' . __( '<strong>Compatible</strong> with your version of WordPress' ) . '</span>';
+						printf( '<span class="compatibility-compatible">' . __( 'WordPress %s' ) . '</span>', $plugin['requires'] );
 					}
+
+					/**
+					 * Add additional compatibility information to bottom of plugin card.
+					 *
+					 * @since 4.9.x
+					 *
+					 * @param array $plugin Readme.txt data from current plugin.
+					 */
+					do_action( 'plugin_install_compatibilty_information', $plugin );
 					?>
 				</div>
 			</div>
@@ -686,4 +698,67 @@ class WP_Plugin_Install_List_Table extends WP_List_Table {
 			echo '</div></div>';
 		}
 	}
+
+	/**
+	 * Test if current version of WordPress is compatible with plugin requirements.
+	 *
+	 * @param mixed $version  Version required.
+	 * @param mixed $operator `version_compare` operator.
+	 * @return bool
+	 */
+	public function is_wordpress_compatible( $version, $operator ) {
+		global $wp_version;
+		return ! empty( $version ) && version_compare( substr( $wp_version, 0, strlen( $version ) ), $version, $operator );
+	}
+
+	/**
+	 * Loads the filter hook to disable the plugin install button if PHP version not sufficient.
+	 */
+	public function load_requires_php(){
+		add_filter( 'plugin_install_action_links', array( $this, 'disable_install_button' ), 10, 2 );
+		add_filter( 'wp_ajax_search-install-plugins', array( $this, 'disable_install_button' ), 10, 2 );
+		add_action( 'plugin_install_compatibilty_information', array( $this, 'add_compatibility_text' ), 10, 1 );
+	}
+
+	/**
+	 * Filter plugin action links in Install Plugin page.
+	 *
+	 * @param array $action_links
+	 * @param array $plugin
+	 *
+	 * @return array $action_links
+	 */
+	public function disable_install_button( $action_links, $plugin ) {
+		$disable_button = '<button type="button" class="button button-disabled" disabled="disabled">';
+		$disable_button .= __( 'Cannot install' );
+		$disable_button .= '</button>';
+
+		if ( $plugin['requires_php'] &&
+		     version_compare( PHP_VERSION, $plugin['requires_php'], '<=' )
+		) {
+			$action_links[0] = $disable_button;
+		}
+
+		return $action_links;
+	}
+
+	/**
+	 * Add PHP version compatibility text to plugin card bottom.
+	 *
+	 * @uses `plugin_install_compatibilty_information` action hook.
+	 *
+	 * @param mixed $plugin Current plugin data.
+	 *
+	 * @return string
+	 */
+	public function add_compatibility_text( $plugin ) {
+		if ( $plugin['requires_php'] &&
+		     version_compare( PHP_VERSION, $plugin['requires_php'], '<=' )
+		) {
+			printf( '<br><span class="compatibility-incompatible">' . __( 'PHP %s' ) . '</span>', $plugin['requires_php'] );
+		} else {
+			printf( '<br><span class="compatibility-compatible">' . __( 'PHP %s' ) . '</span>', $plugin['requires_php'] );
+		}
+	}
+
 }
