Index: src/wp-admin/includes/schema.php
===================================================================
--- src/wp-admin/includes/schema.php	(revision 30993)
+++ src/wp-admin/includes/schema.php	(working copy)
@@ -397,7 +397,7 @@
 	'links_updated_date_format' => __('F j, Y g:i a'),
 	'comment_moderation' => 0,
 	'moderation_notify' => 1,
-	'permalink_structure' => '',
+	'permalink_structure' => '/%year%/%monthnum%/%day%/%postname%/',
 	'gzipcompression' => 0,
 	'hack_file' => 0,
 	'blog_charset' => 'UTF-8',
@@ -495,7 +495,6 @@
 	if ( is_multisite() ) {
 		/* translators: blog tagline */
 		$options[ 'blogdescription' ] = sprintf(__('Just another %s site'), get_current_site()->site_name );
-		$options[ 'permalink_structure' ] = '/%year%/%monthnum%/%day%/%postname%/';
 	}
 
 	// Set autoload to no for these options
Index: src/wp-admin/includes/upgrade.php
===================================================================
--- src/wp-admin/includes/upgrade.php	(revision 30993)
+++ src/wp-admin/includes/upgrade.php	(working copy)
@@ -87,6 +87,12 @@
 
 	wp_install_defaults($user_id);
 
+	// Verify pretty permalinks work. Fall back to ugly permalinks if they don't.
+	$pretty_permalinks_work = wp_install_verify_pretty_permalinks_work();
+	if ( ! $pretty_permalinks_work ) {
+		$wp_rewrite->set_permalink_structure('');
+	}
+
 	flush_rewrite_rules();
 
 	wp_new_blog_notification($blog_title, $guessurl, $user_id, ($email_password ? $user_password : __('The password you chose during the install.') ) );
@@ -260,6 +266,32 @@
 }
 endif;
 
+/**
+ * Verify whether the default pretty permalink structure works.
+ *
+ * @since 4.2.0
+ *
+ * @return bool
+ */
+function wp_install_verify_pretty_permalinks_work() {
+	global $wp_rewrite;
+	// Flush rules with the hard option to force refresh of the web-server's
+	// rewrite config file (e.g. .htaccess or web.config).
+	$wp_rewrite->flush_rules( true );
+
+	// Send a HEAD request to a random page on the site,
+	// and check whether the 'x-pingback' header is returned as expected.
+	$url = site_url( '/some-random-404-page/' );
+	$response = wp_remote_get( $url );
+	$x_pingback_header = wp_remote_retrieve_header( $response, 'x-pingback' );
+	if ( $x_pingback_header && $x_pingback_header === get_bloginfo('pingback_url') ) {
+		return true;
+	}
+	else {
+		return false;
+	}
+}
+
 if ( !function_exists('wp_new_blog_notification') ) :
 /**
  * {@internal Missing Short Description}}
