/* * Plugin Name: APCu Object Cache * Description: APCu backend for the WP Object Cache. * Based on Plugin named APCu Object Cache Backend * Plugin URI: https://wordpress.org/plugins/apcu/ * Author: Pierre Schmitz * Author URI: https://pierre-schmitz.com/ * Plugin URI: https://wordpress.org/plugins/apcu/ * * * @Authors James Dugger, Jonathan Bardo * @copyright 2017 GoDaddy Inc. 14455 N. Hayden Road Scottsdale, Arizona */ $oc_logged_in = false; foreach ( $_COOKIE as $k => $v ) { if ( preg_match( '/^comment_author|wordpress_logged_in_[a-f0-9]+|woocommerce_items_in_cart|PHPSESSID_|edd_wp_session|edd_items_in_cartcc_cart_key|ccm_token/', $k ) ) { $oc_logged_in = true; break; } } $oc_blocked_page = ( defined( 'WP_ADMIN' ) || defined( 'DOING_AJAX' ) || defined( 'XMLRPC_REQUEST' ) || 'wp-login.php' === basename( $_SERVER['SCRIPT_FILENAME'] ) ); function wpaas_is_using_apcu() { return version_compare( PHP_VERSION, '5.6.0', '>=' ) && function_exists( 'apcu_fetch' ); } if ( 'cli' !== php_sapi_name() && ! $oc_logged_in && ! $oc_blocked_page && wpaas_is_using_apcu() ) : /** * Save the transients to the DB. The explanation is a bit too long * for code. The tl;dr of it is that we don't have a single 'fast cache' * source yet (like memcached) and so some long lived items like transients * are still best cached in the db and then brought back into APC * * @param string $transient * @param mixed $value * @param int $expire * @param boolean $site = false * * @return bool */ function wpaas_save_transient( $transient, $value, $expire, $site = false ) { global $wp_object_cache, $wpdb; // The 'special' transient option names $transient_timeout = ( $site ? '_site' : '' ) . '_transient_timeout_' . $transient; $transient = ( $site ? '_site' : '' ) . '_transient_' . $transient; // Cap expiration at 24 hours to avoid littering the DB if ( $expire == 0 ) { $expire = 24 * 60 * 60; } // Save to object cache $wp_object_cache->set( $transient, $value, 'options', $expire ); $wp_object_cache->set( $transient_timeout, time() + $expire, 'options', $expire ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); $alloptions[ $transient ] = $value; $alloptions[ $transient_timeout ] = time() + $expire; $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); // Use the normal update option logic if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); if ( $site && is_multisite() ) { $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->sitemeta}` ( `option_name`, `option_value`, `autoload` ) VALUES ( %s, UNIX_TIMESTAMP( NOW() ) + %d, 'yes' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient_timeout, $expire ) ); $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->sitemeta}` ( `option_name`, `option_value`, `autoload` ) VALUES ( %s, %s, 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient, maybe_serialize( $value ) ) ); } else { $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( %s, UNIX_TIMESTAMP( NOW() ) + %d, 'yes' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient_timeout, $expire ) ); $wpdb->query( $wpdb->prepare( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( %s, %s, 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );", $transient, maybe_serialize( $value ) ) ); } $wpdb->suppress_errors( $flag ); } return true; } function wpaas_prune_transients() { global $wpdb; if ( ! empty( $wpdb ) && $wpdb instanceof wpdb && function_exists( 'is_main_site' ) && function_exists( 'is_main_network' ) ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); // Lifted straight from schema.php // Deletes all expired transients. // The multi-table delete syntax is used to delete the transient record from table a, // and the corresponding transient_timeout record from table b. $time = time(); $wpdb->query( "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE '\_transient\_%' AND a.option_name NOT LIKE '\_transient\_timeout\_%' AND b.option_name = CONCAT( '_transient_timeout_', SUBSTRING( a.option_name, 12 ) ) AND b.option_value < $time" ); if ( is_main_site() && is_main_network() ) { $wpdb->query( "DELETE a, b FROM $wpdb->options a, $wpdb->options b WHERE a.option_name LIKE '\_site\_transient\_%' AND a.option_name NOT LIKE '\_site\_transient\_timeout\_%' AND b.option_name = CONCAT( '_site_transient_timeout_', SUBSTRING( a.option_name, 17 ) ) AND b.option_value < $time" ); } $wpdb->suppress_errors( $flag ); } } /** * If another cache was flushed or updated, sync across all servers / processes using * the database as the authority. This uses the database as the authority for timestamps * as well to avoid drift between servers. * @return void */ function wpaas_init_sync_cache() { global $wpdb; if ( empty( $wpdb ) || ! ( $wpdb instanceof wpdb ) ) { return; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( "SELECT option_name, option_value FROM `{$wpdb->options}` WHERE option_name = 'gd_system_last_cache_flush' UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( empty( $result ) ) { return; } $master_flush = false; foreach ( $result as $row ) { switch ( $row['option_name'] ) { case 'current_time' : $current_time = $row['option_value']; break; case 'gd_system_last_cache_flush' : $master_flush = $row['option_value']; break; } } $local_flush = wp_cache_get( 'gd_system_last_cache_flush' ); if ( false === $local_flush || $local_flush < $master_flush ) { wp_cache_flush( true ); wp_cache_set( 'gd_system_last_cache_flush', $current_time ); } } /** * Start default implementation of object cache */ if ( ! defined( 'WP_APC_KEY_SALT' ) ) { define( 'WP_APC_KEY_SALT', '' ); } function wp_cache_add( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; if ( 'transient' == $group ) { wpaas_save_transient( $key, $data, $expire ); return $wp_object_cache->add( "_transient_$key", $data, 'options', $expire ); } elseif ( 'site-transient' == $group ) { wpaas_save_transient( $key, $data, $expire, true ); return $wp_object_cache->add( "_site_transient_$key", $data, 'site-options', $expire ); } else { return $wp_object_cache->add( $key, $data, $group, $expire ); } } function wp_cache_incr( $key, $n = 1, $group = '' ) { global $wp_object_cache; return $wp_object_cache->incr2( $key, $n, $group ); } function wp_cache_decr( $key, $n = 1, $group = '' ) { global $wp_object_cache; return $wp_object_cache->decr( $key, $n, $group ); } function wp_cache_close() { return true; } function wp_cache_delete( $key, $group = '' ) { global $wp_object_cache, $wpdb; if ( 'transient' == $group ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( $wpdb->prepare( "DELETE FROM `{$wpdb->prefix}options` WHERE option_name IN ( %s, %s );", "_transient_{$key}", "_transient_timeout_{$key}" ) ); $wpdb->suppress_errors( $flag ); } $wp_object_cache->delete( "_transient_timeout_$key", 'options' ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); unset( $alloptions["_transient_$key"] ); unset( $alloptions["_transient_timeout_$key"] ); $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); return $wp_object_cache->delete( "_transient_$key", 'options' ); } elseif ( 'site-transient' == $group ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $table = $wpdb->options; if ( is_multisite() ) { $table = $wpdb->sitemeta; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( $wpdb->prepare( "DELETE FROM `{$table}` WHERE option_name IN ( %s, %s );", "_transient_{$key}", "_transient_timeout_{$key}" ) ); $wpdb->suppress_errors( $flag ); } $wp_object_cache->delete( "_transient_timeout_$key", 'site-options' ); // Update alloptions $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); unset( $alloptions["_site_transient_$key"] ); unset( $alloptions["_site_transient_timeout_$key"] ); $wp_object_cache->set( 'alloptions', $alloptions, 'options' ); return $wp_object_cache->delete( "_site_transient_$key", 'site-options' ); } return $wp_object_cache->delete( $key, $group ); } function wp_cache_flush( $local_flush = false ) { global $wp_object_cache, $wpdb; if ( ! $local_flush ) { if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $wpdb->query( "INSERT INTO `{$wpdb->options}` (`option_name`, `option_value`, `autoload`) VALUES ( 'gd_system_last_cache_flush', UNIX_TIMESTAMP( NOW() ), 'no' ) ON DUPLICATE KEY UPDATE `option_name` = VALUES ( `option_name` ), `option_value` = VALUES ( `option_value` ), `autoload` = VALUES ( `autoload` );" ); $wpdb->suppress_errors( $flag ); } } return $wp_object_cache->flush(); } function wp_cache_get( $key, $group = '', $force = false ) { global $wp_object_cache, $wpdb; if ( 'transient' == $group ) { $alloptions = $wp_object_cache->get( 'alloptions', 'options' ); if ( isset( $alloptions["_transient_$key"] ) && isset( $alloptions["_transient_timeout_$key"] ) && $alloptions["_transient_timeout_$key"] > time() ) { return maybe_unserialize( $alloptions["_transient_$key"] ); } $transient = $wp_object_cache->get( "_transient_$key", 'options', $force ); $timeout = $wp_object_cache->get( "_transient_timeout_$key", 'options', $force ); if ( false !== $transient && ! empty( $timeout ) && $timeout > time() ) { return maybe_unserialize( $transient ); } if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( $wpdb->prepare( "SELECT option_name, option_value FROM `{$wpdb->options}` WHERE option_name IN ( %s, %s ) UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", "_transient_{$key}", "_transient_timeout_{$key}" ), ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( ! empty( $result ) ) { $transient = false; $timeout = false; $current_time = time(); foreach ( $result as $row ) { switch ( $row['option_name'] ) { case "_transient_$key" : $transient = $row['option_value']; break; case "_transient_timeout_$key" : $timeout = $row['option_value']; break; case 'current_time' : $current_time = $row['option_value']; break; } } if ( false !== $transient && ! empty( $timeout ) && $timeout > $current_time ) { return maybe_unserialize( $transient ); } } } return false; } elseif ( 'site-transient' == $group ) { $transient = $wp_object_cache->get( "_site_transient_$key", 'options', $force ); $timeout = $wp_object_cache->get( "_site_transient_timeout_$key", 'options', $force ); if ( false !== $transient && ! empty( $timeout ) && $timeout > time() ) { return maybe_unserialize( $transient ); } if ( ! empty( $wpdb ) && $wpdb instanceof wpdb ) { $table = $wpdb->options; if ( is_multisite() ) { $table = $wpdb->sitemeta; } $flag = $wpdb->suppress_errors; $wpdb->suppress_errors( true ); $result = $wpdb->get_results( $wpdb->prepare( "SELECT option_name, option_value FROM `{$table}` WHERE option_name IN ( %s, %s ) UNION SELECT 'current_time', UNIX_TIMESTAMP( NOW() ) AS option_value;", "_site_transient_{$key}", "_site_transient_timeout_{$key}" ), ARRAY_A ); $wpdb->suppress_errors( $flag ); if ( ! empty( $result ) ) { $transient = false; $timeout = false; $current_time = time(); foreach ( $result as $row ) { switch ( $row['option_name'] ) { case "_site_transient_$key" : $transient = $row['option_value']; break; case "_site_transient_timeout_$key" : $timeout = $row['option_value']; break; case 'current_time' : $current_time = $row['option_value']; break; } } if ( false !== $transient && ! empty( $timeout ) && $timeout > $current_time ) { return maybe_unserialize( $transient ); } } } return false; } else { return $wp_object_cache->get( $key, $group, $force ); } } function wp_cache_init() { global $wp_object_cache; if ( mt_rand( 1, 100 ) == 42 ) { wpaas_prune_transients(); } add_action( 'muplugins_loaded', 'wpaas_init_sync_cache' ); $wp_object_cache = new APCu_Object_Cache(); } function wp_cache_replace( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; return $wp_object_cache->replace( $key, $data, $group, $expire ); } function wp_cache_set( $key, $data, $group = '', $expire = 0 ) { global $wp_object_cache; if ( defined( 'WP_INSTALLING' ) == false ) { if ( 'transient' == $group ) { return wpaas_save_transient( $key, $data, $expire ); } elseif ( 'site-transient' == $group ) { return wpaas_save_transient( $key, $data, $expire, true ); } else { return $wp_object_cache->set( $key, $data, $group, $expire ); } } else { return $wp_object_cache->delete( $key, $group ); } } function wp_cache_switch_to_blog( $blog_id ) { global $wp_object_cache; return $wp_object_cache->switch_to_blog( $blog_id ); } function wp_cache_add_global_groups( $groups ) { global $wp_object_cache; $wp_object_cache->add_global_groups( $groups ); } function wp_cache_add_non_persistent_groups( $groups ) { global $wp_object_cache; $wp_object_cache->add_non_persistent_groups( $groups ); } class GD_APCu_Object_Cache { private $prefix = ''; private $local_cache = array(); private $global_groups = array(); private $non_persistent_groups = array(); private $multisite = false; private $blog_prefix = ''; public function __construct() { global $table_prefix; $this->multisite = is_multisite(); $this->blog_prefix = $this->multisite ? get_current_blog_id() . ':' : ''; $this->prefix = DB_HOST . '.' . DB_NAME . '.' . $table_prefix; } private function get_group( $group ) { return empty( $group ) ? 'default' : $group; } private function get_key( $group, $key ) { if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) ) { return $this->prefix . '.' . $group . '.' . $this->blog_prefix . ':' . $key; } else { return $this->prefix . '.' . $group . '.' . $key; } } public function add( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( function_exists( 'wp_suspend_cache_addition' ) && wp_suspend_cache_addition() ) { return false; } if ( isset( $this->local_cache[ $group ][ $key ] ) ) { return false; } // FIXME: Somehow apcu_add does not return false if key already exists if ( ! isset( $this->non_persistent_groups[ $group ] ) && apcu_exists( $key ) ) { return false; } if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_add( $key, $data, (int) $expire ); } return true; } public function add_global_groups( $groups ) { if ( is_array( $groups ) ) { foreach ( $groups as $group ) { $this->global_groups[ $group ] = true; } } else { $this->global_groups[ $groups ] = true; } } public function add_non_persistent_groups( $groups ) { if ( is_array( $groups ) ) { foreach ( $groups as $group ) { $this->non_persistent_groups[ $group ] = true; } } else { $this->non_persistent_groups[ $groups ] = true; } } public function decr( $key, $offset = 1, $group = 'default' ) { if ( $offset < 0 ) { return $this->incr( $key, abs( $offset ), $group ); } $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->local_cache[ $group ][ $key ] ) && $this->local_cache[ $group ][ $key ] - $offset >= 0 ) { $this->local_cache[ $group ][ $key ] -= $offset; } else { $this->local_cache[ $group ][ $key ] = 0; } if ( isset( $this->non_persistent_groups[ $group ] ) ) { return $this->local_cache[ $group ][ $key ]; } else { $value = apcu_dec( $key, $offset ); if ( $value < 0 ) { apcu_store( $key, 0 ); return 0; } return $value; } } public function delete( $key, $group = 'default', $force = false ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); unset( $this->local_cache[ $group ][ $key ] ); if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_delete( $key ); } return true; } public function flush() { $this->local_cache = array(); // TODO: only clear our own entries apcu_clear_cache(); return true; } public function get( $key, $group = 'default', $force = false, &$found = null ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( ! $force && isset( $this->local_cache[ $group ][ $key ] ) ) { $found = true; if ( is_object( $this->local_cache[ $group ][ $key ] ) ) { return clone $this->local_cache[ $group ][ $key ]; } else { return $this->local_cache[ $group ][ $key ]; } } elseif ( isset( $this->non_persistent_groups[ $group ] ) ) { $found = false; return false; } else { $value = @apcu_fetch( $key, $found ); if ( $found ) { if ( $force ) { $this->local_cache[ $group ][ $key ] = $value; } return $value; } else { return false; } } } public function incr2( $key, $offset = 1, $group = 'default' ) { if ( $offset < 0 ) { return $this->decr( $key, abs( $offset ), $group ); } $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->local_cache[ $group ][ $key ] ) && $this->local_cache[ $group ][ $key ] + $offset >= 0 ) { $this->local_cache[ $group ][ $key ] += $offset; } else { $this->local_cache[ $group ][ $key ] = 0; } if ( isset( $this->non_persistent_groups[ $group ] ) ) { return $this->local_cache[ $group ][ $key ]; } else if ( function_exists( 'apcu_inc' ) ) { $value = apcu_inc( $key, $offset ); if ( $value < 0 ) { apcu_store( $key, 0 ); return 0; } return $value; } return false; } public function replace( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( isset( $this->non_persistent_groups[ $group ] ) ) { if ( ! isset( $this->local_cache[ $group ][ $key ] ) ) { return false; } } else { if ( ! isset( $this->local_cache[ $group ][ $key ] ) && ! apcu_exists( $key ) ) { return false; } apcu_store( $key, $data, (int) $expire ); } if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } return true; } public function reset() { // This function is deprecated as of WordPress 3.5 // Be safe and flush the cache if this function is still used $this->flush(); } public function set( $key, $data, $group = 'default', $expire = 0 ) { $group = $this->get_group( $group ); $key = $this->get_key( $group, $key ); if ( is_object( $data ) ) { $this->local_cache[ $group ][ $key ] = clone $data; } else { $this->local_cache[ $group ][ $key ] = $data; } if ( ! isset( $this->non_persistent_groups[ $group ] ) ) { return apcu_store( $key, $data, (int) $expire ); } return true; } public function stats() { // Only implemented because the default cache class provides this. // This method is never called. echo ''; } public function switch_to_blog( $blog_id ) { $this->blog_prefix = $this->multisite ? $blog_id . ':' : ''; } } if ( function_exists( 'apcu_inc' ) ) { class APCu_Object_Cache extends GD_APCu_Object_Cache { function incr( $key, $offset = 1, $group = 'default' ) { return parent::incr2( $key, $offset, $group ); } } } else { class APCu_Object_Cache extends GD_APCu_Object_Cache { // Blank } } endif; Rock music photo history of 60s in 33 pictures - Old Pictures
MusicStories

Rock music photo history of 60s in 33 pictures

11 Mins read

Rock music photo history of 60s is a tricky thing. Back in those days, there was no tradition of rock photography. In London, some good rock photographers – Sir Cecil Beaton among them – had shot the Rolling Stones, The Beatles, and few other bands. Then the British invasion brought some best practices to the US. Before this era photographers of rock stars were often bad publicity stills, snapshots, or stage shots with a microphone in the performer’s face. Baron Wolan, Henry Diltz, and others change the course of the rock photo history and created dozens of iconic pictures that still make our hearts beat faster.

Rock history doesn’t start in the 60s, but it was a time when it seemed to reach its eclipse. Many of those glory moments were pictured by photographers, and some of their works you’ll find below.

Beatles in Limo, 1964

The Beatles, Limo, US tourHow can we start Rock music photo history of 60s without The Beatles? It was their first tour of the US and Canada. Lucky young photographer Curt  Gunther took The Beatles photos in Europe and was invited to picture brit’s tour by Lennon himself. He spent all the tour time with a band, lived, and traveled with them and As such, he traveled and lived with the band and thus was a happy witness of something which will be later called Liverpool phenomena. The negative of this photo was found by Curt’s son Steve after his death. The story says that the father-photographer gave his suitcase with photos and negatives to son before death to encourage him to continue his photo craft. Many priceless gems were found in that suitcase…

Credits: Curt Gunther

The Beatles, Perthshire, Scotland 1964

The Beatles, ScotlandThis photo was taken at the hotel in Perthshire, Scotland. According to Ringo Starr, it was a cloudy and windy winter day, but the receptionist offered bandmembers sun umbrellas for reasons unknown. It seemed funny to bandmates and John Lennon decided to use them for a photoshoot which was planned for this day.

Credits:  Robert Whitaker

Janis Joplin, Newport Folk Festival, 1968

Janis Joplin, FestivalJanis Joplin visited the Newport Folk Festival in Newport, Rhode Island, in July 1968. The festival was pretty popular and supposed to gather ‘modern genre’s musicians’. It was a ninth year in a row when this even attracted thousands of fans from all over the US. David Gahr pictured a classic look of Janis: famous glasses, headwear, cigarette, and alcohol nearby. Once asked by a reporter about her attendance at this event Joplin said: “ It was too hot and I was too stoned to remember anything”. 

Credits: David Gahr

Janis Joplin on stage, Newport Folk Festival 1968

Janis Joplin, NewportJanis insisted that her performance should be moved to late night as it was too hot for her in July 1968 to set a good show in the daytime. Well, it’s a part of the Rock music photo history of 60s.

Credits: David Gahr

Bob Dylan, England 1966

Bob Dylan, London, FansThe UK was a homeland for many iconic bands of the 60s, but brits admired the US rockers as well.  Bob Dylan was one of them, and you can check how fans were following a young star in this picture. It was taken in London, upon Bob’s arrival to the city where he planned several performances. Barry Feinstein was the official photographer for several of Dylan’s tours and was not a surprise that some of the iconic photos of this period belong to his portfolio. Dylan protected his privacy and had a reputation for the musician who doesn’t like the reporters and photoshoots. However, he made an exclusion for Feinstein’s camera. At this picture Bob is looking calm, while fans are literally infiltrating the car.

Credits: Barry Feinstein

Bob Dylan, a scene from DONT LOOK BACK, 1965

Bob Dylan, Don't look backPhotos taken from the film DONT LOOK BACK about Dylan’s tour in London in 1965. The film itself was recognized by critics as one of the best music documentaries. Movie’s director Pennebaker said that the title came from the Satchel Paige quote, “Don’t look back. Something might be gaining on you,” and that Dylan shared this view. Dylan also used this title in his song “She belongs to me”.

Credits: D A Pennebaker

Wilson Pickett, Madison Square Garden, 1969

Wilson PicketIt’s hard to imagine the R’n’B scene of the 60s without Wilson Pickett. And you’ll never underestimate his contribution to this genre. Picket was particularly popular in NY, which resulted in many performances with full sold outs. His “Land of 1,000 Dances”, “Mustang Sally”, and “Funky Broadway” topped the Billboard charts and won’t be forgotten. 

The Doors, Morrison Hotel, Los Angeles, 1969

The Doors, Morrison HotelThere’s no way how you could know this small hotel in Downtown LA on Hope Street without this photo. Surprisingly, the hotel administration didn’t allow a photoshoot, despite the band’s popularity. Photographer Henry Diltz says that Jim wanted this photo in one way or another. So they had to stay at lobby, wait until the receptions leaves his desk and quickly run outside to take a photo. When they did so administration forced them to leave the Morrison hotel immediately. Later Jim Morrison decided to use this photo for an album cover and it still stays in Rock music photo history of 60s.

Credits: Henry Diltz

The Doors, Venice Beach, CA, 1969

The Doors, Venice BeachWhich band loves California the most? Red Hot Chilly Peppers? Maybe, but it was The Doors’ territory in 60s. And they loved the iconic Venice Beach Boardwalk the most too. According to Ray Manzarek many The Doors songs were either written or inspired by this place. 

The palm trees in the background are perfectly framed by Robby and Ray, and the calm and collected looks on their faces exude an aura of confidence of a band completely in their prime.

This picture became a poster for award-winning director Tom DiCillo’s film on The Doors: probably the best movie to understand the whole life and the truth behind the success of the quartet.

Credits: Henry Diltz

Rolling Stones, Their Satanic Majesties Request, 1967

The Rolling StonesThis photo was influenced by the groundbreaking The Beatles’ Sgt. Pepper’s Lonely Hearts Club Band. At least visually. In many ways, The Rolling Stones competed with Liverpool’s band. And their 1967 album Their Satanic Majesties Request was a response to SPLHCB album. Even the photographer was the same, and Mick Jagger asked him to create the same visual effect for this shoot.

The album itself had mixed critics, but the visual part was tremendous. According to photographer Michael Cooper, it had to be was a fantastical 3-dimensional image. He told Jagger that only one camera in one studio can do this, meaning the Mount Vernon Studios in New York City. The band booked a studio for only two days, in September, with a condition that no crew will assist them due to day-offs. 

Credits: Michael Cooper

Rolling Stones, 1967

The Rolling StonesAnother Rolling’s iconic photo. Without this picture, we can’t imagine the history of the rock. The band started with Chuck Berry’s “Come on” in June, 1963 and continued with a pure hit “I wanna be your man”. The band was well known in the US by the beginning of 1967 when this photo was made. They’ve just made their appearance at CBS Ed Sullivan’s show where they performed “Let’s spend some time together”. Time later after this photoshoot Mick Jagger and Keith Richards, and then Jones, were charged in the first big drug arrests in British rock.

Сredits: Michael Cooper

Jimi Hendrix, Hollywood, CA 1967

Jimmy Hendrix, Rock music photo history 60sThe Hollywood Bowl attracted thousands of fans and the best musicians. This photo was taken on the backstage of the event, where Jimi Hendrix is waiting until The Mamas and Papas finish their performance. His show is the following. The performance itself wasn’t as significant as his anthem at Woodstock, but according to many critics, Jimmi has stolen the show that night.

Сredits: Henry Diltz

Jimi Hendrix playing “The Star Spangled Banner” at Woodstock, NY 1969

Hendrix, WoodstockEvery music fan should know this photo. Taken on Monday morning around 6 am. The initial plan was to give Hendrix a Sunday night scene slot, but due to transportation mess, he didn’t come on until Monday morning. Photographer was allowed to stand at the stage and take photos, which were destined to become iconic.

Henry Diltz said, that it was real bizarre and psychedelic. The key point was when Jimi started playing the Star-Spangled Banner. He started to put the sound effects in: machine guns, planes dive-bombing – utterly amazing.

Read more: Woodstock 1969: 3 Days of Peace&#038; Music

Credits: Henry Diltz

James Taylor and Old Truck, Lake Hollywood, CA 1969

James Taylor and Old truckHenry Diltz photoed this picture on the same day hi did the Sweet Baby James album cover. James Taylor will receive his first Grammy award for this album, which will be followed by another four during the next decade. But who could know it when this photo was taken?

Credits: Henry Diltz

The Dirty Mac: Eric Clapton, John Lennon, Mitch Mitchell and Keith Richards 1969

Lennon's Super BandThe super-groups, which consist of different bands’ members, always occupied a special place in fans’ hearts. Some admire such groups music, some take it as treason to their main bands. ‘The Dirty Mac’ was one of the first super-groups.  It was a one-time pure English team consisting of John Lennon, Eric Clapton, Keith Richards, and Mitch Mitchell. The overall initiative belonged to Lennon who proposed put musicians together for the Rolling Stones’ TV special titled The Rolling Stones Rock and Roll Circus.

Credits: Ethan Russell

The Who, Monterey International Pop Music Festival, CA 1967

The Who, MontereyBy the middle of 1967 The Who was supposed to be one of Top 3 Rock bands in the UK. But at the same time almost unknown in US. They performed in the New World for the first time in June 1967 at The Monterey International Pop Music Festival. Americans never experienced the rockers who smash their instruments (and not only them) during the performance until The Who showed them what rock explosion means. The guy on the left is the sound engineer trying to rescue the expensive microphones.

Credits: Henry Diltz

The Who, Woodstock, NY, 1969

The Who, Woodstock, Rock music photo history 60sThe Who during performing t at Woodstock Music Festival. Minutes after this moment Pete Townshend started smashing his guitar on stage. Some critics compared their performance with hockey matches: You’re visiting them to watch the game, but you want to watch the players punching each other faces too.

Credits: Henry Diltz

Neil Young, ‘White Falcon,’ Balboa Stadium, San Diego, CA 1969

Neil YoungNeil Young performing with CSNY at Balboa Stadium in San Diego, California playing his infamous Gretsch guitar, the ‘White Falcon.’

Credits: Henry Diltz

Neil Young in the car, 1969

Neil Young carNeil was born in Canada but he moved to California after he started his musical career. His guitar work, deeply personal lyrics, and signature tenor singing voice define his long career. You’ll never say that guy from this photo will win 5 Grammy awards in his lifetime.

Credits: Henry Diltz

The Byrds, Mr. Tambourine Man Album Cover Shot, 1965

The Byrds, music photo historyThe Byrds are often considered as influential as The Beatles and The Rolling Stones. It’s hard to overstate their importance for both folk-rock and country-rock. Producing a remarkable body of work between 1965 and 1968, The Byrds were noteworthy for their spirit of innovation and adventure. Presenting the substantial challenge to the popularity of The Beatles in the mid-60s, The Byrds recorded Dylan’s  “Mr. Tambourine Man” and transformed his acoustic guitar sound to the into rock adaptation.

Credits: Barry Feinstein

Jefferson Airplane, NYC, 1968

Jefferson Airplane music photo historyThe whole idea of this photoshoot belonged to photographer Art Kane. He tried to create a feeling of a ‘flying band’ with an ‘air sound’. He constructed this setting with plexi cubes (which cost him $3000). The photograph was taken in Queens, NYC, just south of the 59th Street bridge and across the East River from the United Nations, at a gypsum factory that lends a bizarre and almost lunar landscape. This location was replaced with commercial buildings later, so this landmark is gone forever. This album cover belongs to the Top100 best album designs according to the Rolling Stones magazine.

Credits: Art Kane

Led Zeppelin, 1969

Led Zeppelin, Music photo historyEssentially formed in 1968, Led Zeppelin recorded their debut album, Vanilla Fudge, pretty quickly and had to follow it up with US tour according to the agreement with Atlantic records. This photo was made during this tour, at the Texas Pop Music Festival. Their debut album became an instant bestseller and stayed in album charts for two years. 

Credits: Jay Dickman

The Monkees & Jack Nicholson, 1968

Monkees, Rock music photo history 60sThe Monkees was a first group which consisted of movie actors. The band was created through auditions conducted by NBC television in September 1965. Mickey Dolenz had been a child actor, appearing in the series  Circus Boy, and Davy Jones was a horse jockey in a different show. So it wasn’t surprising that the Monkees combined musical performance with shooting a movie about themselves. One of those movies, “Head”, was filmed in Salt Lake City. This picture was taken in their dressing room at The Valley Music Hall. Jack Nicholson was a writer and producer of the movie.

Credits: Henry Diltz

The Animals, Newcastle upon Tyne, England 1964

The Animals, Rock music photo history 60sThe Animals was one of the most popular British rock bands of the mid-60s. Their popularity faded after the departure of Alan Price, but in 1964 they were on top. These photos were taken when the band arrived back in England from their first USA tour. All they wanted was a decent cup of tea.

Credits: Ian Wright

Frank Zappa and Captain Beefhart, 1969

Frank Zappa, Rock music photo history 60sFrank Zappa musical creations always stayed in the underground niche. The debut album of the Mothers of Invention, which was masterminded by Zappa, unique for the rock landscape of the 60s. Zappa and his band flaunted the standard path to international success. Their special ingredient was the on-stage performance which looked like the first instance of calculated theatrics in rock.

Credits: Barrie Wentzell

Frank Zappa, Los Angeles, CA 1968

Zappa, Rock music photo history 60sZappa was always known for his eccentric reputation, and that’s was the reason why both concert producers and photographers avoided dealing with him. Baron Walman was one of them. ‘I knew I could take great pictures but I knew that I couldn’t keep up with his mind’, Walman said. Zappa didn’t want to spend any extra hour on a photoshoot, and he insisted to take the pictures right away, just behind his house. The landscape and the setting looked bizarre, and the photographer even didn’t need to say or do anything extra. 

Credits: Baron Wolman

Iggy Pop, NYC, 1969

Iggy Pop, Rock music photo history 60sIggy Pop started his musical career as a vocal part of the Stooges band. At this photo, he’s recording their first album. Surprisingly, Iggy is not half-naked at this photo, unlike his signature performances of later years. But Rock music photo history of 60s remembers him as on this photo.

Credits: Glen Craig

Jerry Garcia, San Francisco, CA 1966

Garcia, Rock photo 60sJerry Garcia grew up in San Francisco and Menlo Park, obtaining his first guitar when he was fifteen years old. He dropped high school, served in the army, and then finally got back to the bay area to take up his banjo and start creating signature folk sound. He won an amateur bluegrass contest at the Monterey Folk festival in 1963 and that the beginning of the great folk music story of the 60s.

Credits: Herb Greene

The Velvet Underground, Los Angeles, CA 1966

Velvet Underground, Rock music photo history 60sThe Velvet Underground was famous not only for their unique sound but for their on-stage performances which were inspired by Andy Warhol (he designed the light show). The show was called the Exploding Plastic Inevitable, which speaks for itself. 

Credits: Lisa Law

Pink Floyd 1967

Pink Floyd, Barret's era, 60sThey redefined the rock sound of the whole generation in the mid-70s with their Dark Side of the Moon, Wish You Were Here, and The Wall, but Pink Floyd was founded in 1965 and during the first years of existence they earned a reputation of psychedelic space heady moodscapers. Not everyone remembers that in their salad days the original frontman was Syd Barrett, and David Gilmour joined the band few years later.

Credits: Baron Wolman

Syd Barrett & Record Player 1969

Syd Barret, Rock photo 60sSyd left Pink Floyd for the sole career in 1969. This photo was take in his apartment, Wetherby Mansions, London, where he was working on his first album “The Madscap Luaghs”.Despite the fact that he worked with four producers while assembling the record, it received mixed reviews and pushed Syd even further into the grim drug world.

Credits: Mick Rock

The Grateful Dead, San Francisco, CA 1967

Greatful Dead, Rock photo 60sThis photo was made during the preparation of a long story for the first issue of the Rolling Stone magazine. Photographer Baron Wolman remembers that, the cops came into the band’s house and arrested several of them. The entire band wasn’t at home at the time so the cops couldn’t bust them all or they would have. After the press conference, Jann Wenner, co-founder of Rolling Stone, asked me to get a group shot of the band on the steps of their house. I suggested they pose for me outside. They asked me, “Who are you?” I said, “I’m Baron from Rolling Stone.” They replied, “What’s Rolling Stone?” The band members didn’t know what Rolling Stone was, the first issue had yet to be published, so it was really hard to get them to cooperate; at that point I think most of them didn’t even know who I was. When they came out, they wouldn’t settle down, pointed their guns this way and that, flipped me the bird, threatened to kill me. It was all great fun for them but at the moment not for me. In the end I did get one great shot. I call it “Dead On The Steps.” And so ended my first real assignment for Rolling Stone. 

Credits: Baron Wolman

Related posts
ArtStories

TOP 50 legendary LIFE magazine photographs

7 Mins read
The LIFE magazine archive counts millions of excellent pictures. Oldpics attempted to select the best 50 of them. LIFE magazine always managed…
Stories

The death of Ernest Hemingway: rare archive pictures

3 Mins read
THE LAST YEARS of Ernest Hemingway and his tragic death have left many questions and secrets. Even today, it is not completely…
ArtCities

Rare celebrity pictures in Venice in the 1960s

2 Mins read
Many famous people fell in love with Venice, and we publish some amazing pictures of this romance. Jane Fonda, Sean Connery, Sophia…
Subscribe
Notify of
guest
6 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
trackback
3 years ago

[…] Read more: Rock music photo history of 60s in 33 pictures […]

trackback
3 years ago

[…] Read more: Rock music photo history of 60s in 33 pictures […]

trackback
3 years ago

[…] Read more: Rock music photo history of 60s in 33 pictures […]

trackback
3 years ago

[…] Read more: Rock music photo history of 60s in 33 pictures […]

trackback
3 years ago

[…] Read more: Rock music photo history of 60s in 33 pictures […]

adam
adam
2 years ago

hello

6
0
Would love your thoughts, please comment.x
()
x