User Tools

Site Tools


build:wordpress

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Last revision Both sides next revision
build:wordpress [2014/04/27 22:06]
216.152.251.72 , http://ohh.nu/onlinecasinoaustralia42971 mobile casino, 47598, http://j34.co/onlinecasinoaustralia42971 best online casino, wbec,
build:wordpress [2016/07/08 11:34]
Craig Buchek [Upgrading] Upgrade to 4.5.3
Line 1: Line 1:
-, http://ohh.nu/onlinecasinoaustralia42971 mobile casino,  ​47598, http://j34.co/onlinecasinoaustralia42971 best online casino,  ​wbec+====== WordPress Build ====== 
 + 
 +WordPress is an excellent choice for blogging software. It's simple to set up and usehas a pretty good security record, and has lots of plugins. If you're hosting your own blog on GNU/Linux, WordPress is pretty much the way to go. 
 + 
 +This is how we built WordPress to host several blogs. 
 + 
 +Note that this installation is different than a standard installation in 2 ways. First, we're installing the package into /usr/local, and /var/local. This is to improve LSB compliance, and allows the possibility of sharing /usr/local across systems, as well as making it read-only. Second, we're not using WordPress'​ multi-site feature, but hacking in our own simple multi-site functionality. The reason we're rolling our own here is that WordPress multi-site makes some assumptions that we don't agree with. Most critical of these is that we want our sites to be able to maintain their own domain names, users, themes, and plugins. 
 + 
 + 
 +===== Requirements ===== 
 + 
 +WordPress 3.5 requires: 
 +  * Apache 
 +  * PHP 5.2.4+ 
 +  * MySQL 5.0+ 
 +  * Apache mod_rewrite (optional, but highly recommended) 
 + 
 +This build process assumes: 
 +  * A Debian-derived system 
 +  * Commands can be run as root via ''​sudo''​ 
 +  * The user has read/write access to ''/​var/​www/''​ 
 +    * In Debian, this probably means the user is a member of ''​www-data''​ 
 +  * The user can create MySQL databases 
 +    * Root username and password in ''​[mysqladmin]''​ and ''​[mysql]''​ sections of ''​.my.cnf''​ 
 +  * Apache has been set up with virtual hosts for any WordPress sites 
 +    * The virtual hosts' ''​DocumentRoot''​ are set to ''/​var/​www/​$SITE_NAME/​public''​ 
 +    * The ''/​var/​www/​$SITE_NAME/​public''​ directories are soft links to ''/​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION''​ 
 + 
 + 
 +===== Installation ===== 
 + 
 +<code bash> 
 +# Set the version of WordPress we're going to install. 
 +WORDPRESS_VERSION=3.5.1 
 + 
 +# Download and unpack the software. 
 +wget http://wordpress.org/wordpress-$WORDPRESS_VERSION.tar.gz 
 +tar xfz wordpress-$WORDPRESS_VERSION.tar.gz 
 +rm wordpress-$WORDPRESS_VERSION.tar.gz 
 + 
 +# Make sure attackers cannot view directory listings (especially listing of installed plugins). 
 +echo '​Options -Indexes'​ >> wordpress/​.htaccess 
 + 
 +# Create a config file that will allow per-site configuration. 
 +cat > wordpress/​wp-config.php <<'​EOF'​ 
 +<?php 
 +# Pull in per-site configuration. Assumes per-site config file is 1 directory up from DOCUMENT_ROOT. 
 +include(dirname($_SERVER['​DOCUMENT_ROOT'​]) . '/​wp-config.php'​);​ 
 +  
 +# Pull in all the WordPress settings and include files. 
 +if ( !defined('​ABSPATH'​) ) 
 +    define('​ABSPATH'​dirname(__FILE__) . '/'​);​ 
 +require_once(ABSPATH . '​wp-settings.php'​);​ 
 +EOF 
 + 
 +# Move the installation to /​usr/​local/​share. 
 +sudo mkdir -p /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +sudo mv wordpress/* /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +sudo mkdir -p /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content 
 + 
 +# Move changeable content to /​var/​local/​share. 
 +sudo mv /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​{plugins,​themes} /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​ 
 +sudo rm -rf /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content 
 +sudo ln -sf /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content 
 +sudo mkdir -p /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​uploads 
 + 
 + 
 +# Set ownership of the directory so Apache can use it, and permissions so that web admins have write access: 
 +sudo chown -R www-data:​www-data /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +sudo chown -R www-data:​www-data /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +sudo chmod -R g+w /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +find /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION -type d | sudo xargs chmod g+ws 
 +</​code>​ 
 + 
 + 
 +==== Per-Site Installation ==== 
 + 
 +<code bash> 
 +SITE=blog.craigbuchek.com 
 +mkdir -p /​var/​www/​$SITE 
 +cd /​var/​www/​$SITE 
 +rm -rf public 
 +ln -s /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION public 
 +ln -s /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​uploads uploads 
 +</​code>​ 
 + 
 +Create the MySQL database (set the real database name, username, and password):​ 
 +<code bash> 
 +WORDPRESS_MYSQL_DB=${SITE//​[\.-]/​_} 
 +WORDPRESS_MYSQL_USER=wp_craigbuchek ;# NOTE: Must be no longer than 16 characters 
 +WORDPRESS_MYSQL_PWD="​`dd if=/​dev/​urandom bs=15 count=1 | base64`"​ 
 +sudo mysqladmin create $WORDPRESS_MYSQL_DB 
 +sudo sh -c "mysql <<​EOF 
 +  GRANT ALL PRIVILEGES ON $WORDPRESS_MYSQL_DB.* TO $WORDPRESS_MYSQL_USER@localhost IDENTIFIED BY '​$WORDPRESS_MYSQL_PWD';​ 
 +  FLUSH PRIVILEGES;​ 
 +EOF" 
 +</​code>​ 
 + 
 +Save the username and password in the ''​.my.cnf''​ file. 
 +<code bash> 
 +cat >>​~/​.my.cnf <<​EOF 
 + 
 +# Specify --defaults-group-suffix=_$WORDPRESS_MYSQL_DB to use this group. 
 +[client_$WORDPRESS_MYSQL_DB] 
 +user = $WORDPRESS_MYSQL_USER 
 +password = '​$WORDPRESS_MYSQL_PWD'​ 
 +EOF 
 +chmod 600 ~/.my.cnf 
 +</​code>​ 
 + 
 +Manually create the configuration file. 
 +<code bash> 
 +KEY1=`dd if=/​dev/​urandom count=1 bs=1024 | sha256sum | awk '​{print $1}'​` 
 +KEY2=`dd if=/​dev/​urandom count=1 bs=1024 | sha256sum | awk '​{print $1}'​` 
 +KEY3=`dd if=/​dev/​urandom count=1 bs=1024 | sha256sum | awk '​{print $1}'​` 
 +KEY4=`dd if=/​dev/​urandom count=1 bs=1024 | sha256sum | awk '​{print $1}'​` 
 +cat > /​var/​www/​$SITE/​wp-config.php <<​EOF 
 +<?php 
 + 
 +# Define database access settings. 
 +define('​DB_NAME'​'​$WORDPRESS_MYSQL_DB'​);​ 
 +define('​DB_USER',​ '​$WORDPRESS_MYSQL_USER'​);​ 
 +define('​DB_PASSWORD',​ '​$WORDPRESS_MYSQL_PWD'​);​ 
 +define('​DB_HOST',​ '​localhost'​);​ # Can also specify hostname:​port. 
 +define('​DB_CHARSET',​ '​utf8'​);​ 
 +define('​DB_COLLATE',​ '​utf8_general_ci'​);​ # Override the MySQL default latin1_swedish_ci. 
 +\$table_prefix ​ = '​wp_';​ # Prefix used on all table names. 
 + 
 +# Set localization language. Defaults to English; otherwise specify a file within wp-content/​languages/​. 
 +define('​WPLANG',​ ''​);​ 
 + 
 +# Keys for encryption of information stored in browser cookies. 
 +define('​AUTH_KEY',​ '​$KEY1'​);​ 
 +define('​SECURE_AUTH_KEY',​ '​$KEY2'​);​ 
 +define('​LOGGED_IN_KEY',​ '​$KEY3'​);​ 
 +define('​NONCE_KEY',​ '​$KEY4'​);​ 
 +EOF 
 +sudo chmod 660 /​var/​www/​$SITE/​wp-config.php 
 +sudo chown www-data:​www-data /​var/​www/​$SITE/​wp-config.php 
 +</​code>​ 
 + 
 +Create a per-site uploads directory. (Don't forget to set the configuration below to include the **full path** to this directory. 
 +<code bash> 
 +mkdir -p /​var/​www/​$SITE/​uploads 
 +sudo chmod 770 /​var/​www/​$SITE/​uploads 
 +sudo chown www-data:​www-data /​var/​www/​$SITE/​uploads 
 +</​code>​ 
 + 
 +For a new site, run the installation script by accessing ''<​nowiki>​http://$SITE/​wp-admin/​install.php</nowiki>''​ in a web browser. 
 +Enter the weblog title and email address. 
 +Record the admin password that is generated. It will be needed to log in to administer the application. 
 + 
 +Log in as the adminand create an Editor account for yourself. Record this password as well. 
 +Use this account to post blog entries. Use the admin account to change site settings. 
 + 
 +==== Post-Installation ==== 
 + 
 +Remove some files that aren't needed after installing:​ 
 +<code bash> 
 +rm /​usr/​local/​lib/​wordpress-$VERSION/​{license.txt,​readme.html,​wp-config-sample.php,​wp-admin/​import*.php} 
 +</​code>​ 
 + 
 + 
 +===== Configuration ===== 
 + 
 +Log in as ''​admin''​ with the newly generated password. 
 + 
 +==== Settings ==== 
 + 
 +=== General === 
 +  Time zone: Chicago 
 +  Time format: 1:04 PM (g:i A) 
 +  Weeks in the calendar should start on: Sunday 
 + 
 +=== Writing === 
 +  Size of the post box: 15 lines 
 +  UNCHECK Convert emoticons 
 +  CHECK WordPress should correct invalidly nested XHTML 
 + 
 +=== Reading === 
 +  Syndication feeds show the most recent: 20 posts 
 +  For each article in a feedshow: Full text 
 + 
 +=== Discussion === 
 +  CHECK Enable threaded (nested) comments, 5 levels deep 
 +  UNCHECK E-mail me whenever anyone posts a comment 
 +  Default Avatar: blank 
 + 
 +=== Permalinks === 
 +  Custom Structure: /​%year%/​%monthnum%/​%day%/​%postname% 
 + 
 +=== Media === 
 +  Store uploads in this folder: /​var/​www/​$SITE/​uploads 
 +  Full URL path to files: /uploads 
 + 
 +Note that this requires the following Apache configuration in the ''​VirtualHost''​ section for the site: 
 +  Alias /uploads /​var/​www/​$SITE/​uploads 
 + 
 +==== Posts / Categories ==== 
 + 
 +Set up a list of categories that your posts will fall within. You can add more later, but try to set up a few that you'll likely use. 
 + 
 +==== Links ==== 
 + 
 +Delete the pre-configured links, and add your own links, if you want to use them as a blogroll. 
 + 
 +==== Themes ==== 
 + 
 +Add some new themes, and activate them to try them out. Once you've activated a theme, it may add a options pane to the Appearance menu of the admin page. 
 + 
 +==== Widgets ==== 
 + 
 +Add some widgets to the sidebar(s). I like to add these widgets: 
 + 
 +  * Categories 
 +  * Archives 
 +  * Links 
 +  * Meta 
 + 
 +===== Plugins ===== 
 + 
 +WordPress has a lot of plugins available to enhance the experience and add new features. We've installed and enabled a few. Below is the list, as well as the configuration of each. 
 + 
 +==== Bad Behavior ==== 
 + 
 +  * UNCHECK Display statistics in blog footer. 
 +  * Stick with Normal HTTP request logging. 
 +  * CHECK Allow form postings from other web sites (because we may allow OpenID) 
 + 
 +==== Robots Meta ==== 
 + 
 +  * RSS Feeds 
 +    * CHECK noindex the comment RSS feeds 
 +  * Prevent Indexing 
 +    * CHECK This site's search result pages 
 +    * CHECK The login and register pages 
 +    * CHECK All admin pages 
 +    * CHECK Author archives 
 +    * CHECK Date-based archives 
 +  * Archive Settings 
 +    * CHECK Disable the author archives 
 +    * CHECK Redirect search results pages when referrer is external 
 +  * Internal nofollow settings 
 +    * CHECK Nofollow category listings on pages 
 +    * CHECK Nofollow category listings on single posts 
 +    * CHECK Nofollow the links to your tag pages 
 +    * CHECK Nofollow login and registration links 
 +    * CHECK Nofollow comments links 
 + 
 +==== wp-Typography ==== 
 + 
 +  * Hyphenation 
 +    * UNCHECK Allow hyphenation of words that begin with a capital letter. 
 +  * Intelligent Character Replacement 
 +    * UNCHECK Transform three periods to ellipses 
 +    * CHECK Transform exponents to pretty exponents 
 +  * Space Control 
 +    * CHECK Keep integers with adjoining fractions. 
 +    * CHECK Keep values and units together. 
 + 
 + 
 +===== Upgrading ===== 
 + 
 +It's **highly** recommended that you back up all your sites before upgrading. You can do this from the admin panel, **Tools / Export**. 
 + 
 +<code bash> 
 +WORDPRESS_VERSION_OLD=4.4 
 +WORDPRESS_VERSION=4.5.3 
 +wget http://​wordpress.org/​wordpress-$WORDPRESS_VERSION.tar.gz 
 +tar xfz wordpress-$WORDPRESS_VERSION.tar.gz 
 +rm wordpress-$WORDPRESS_VERSION.tar.gz 
 +sudo mv wordpress /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +sudo cp /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION_OLD/​wp-config.php /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​ 
 +sudo cp /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION_OLD/​.htaccess /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​ 
 +sudo mkdir -p /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​{plugins,​themes} 
 +sudo mkdir -p /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​{plugins,​themes,​uploads} 
 +sudo cp -r /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION_OLD/​wp-content/​plugins/​* /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​plugins/​ 
 +sudo cp -r /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION_OLD/​wp-content/​themes/​* /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​themes/​ 
 +sudo cp -r /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION_OLD/​wp-content/​plugins/​* /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​plugins/​ 
 +sudo cp -r /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION_OLD/​wp-content/​themes/​* /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​themes/​ 
 +sudo cp -r /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION_OLD/​wp-content/​uploads/​* /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​uploads/​ 
 +sudo chown -R www-data:​www-data /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +sudo chown -R www-data:​www-data /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +sudo chmod -R g+w /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION 
 +find /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION -type d | sudo xargs chmod g+ws 
 +sudo rm /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION/​{license.txt,​readme.html,​wp-config-sample.php,​wp-admin/​import*.php} 
 +</​code>​ 
 + 
 +Point each site to the new version: 
 +<code bash> 
 +for SITE in blog.craigbuchek.com blog.boochtek.com;​ do 
 +  cd /​var/​www/​$SITE 
 +  rm -f public 
 +  ln -sf /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION public 
 +  ln -sf /​var/​local/​share/​wordpress/​$WORDPRESS_VERSION/​wp-content/​uploads uploads 
 +done 
 +</​code>​ 
 + 
 +Run the ''/​wp-admin/​upgrade.php''​ script for each site.  
 +Then test the site to make sure it's working OK.  
 +Pay special attention to plugins, as they may break between revisions. 
 + 
 +When you're sure that the upgrade was successful, remove the old version: 
 +<code bash> 
 +sudo rm -rf /​usr/​local/​share/​wordpress/​$WORDPRESS_VERSION_OLD 
 +</​code>​ 
 + 
 + 
 +===== Themes ===== 
 + 
 +<code bash> 
 +cd /​var/​www/​wordpress-$VERSION/​wp-content/​themes 
 +wget http://​sandbox-theme.googlecode.com/​files/​sandbox.1.6.zip 
 +unzip sandbox.1.6.zip 
 +cd sandbox 
 +# Make some changes so that it will work with Matthew James Taylor'​s 3-column layout. 
 +sed -i -e '​s|<​div id="​container">​|<​div class="​holygrail"><​div class="​colmid"><​div class="​colleft"><​div id="​container">​|' ​ *.php 
 +sed -i -e '​s|</​div><​!-- #secondary .sidebar -->​|</​div></​div></​div></​div><​!-- #secondary .sidebar -->​|' ​ *.php 
 +</​code>​ 
 + 
 +<code bash> 
 +cd /​var/​www/​wordpress-$VERSION/​wp-content/​themes 
 +wget http://​www.themelab.com/​download/​60 -O stylevantage.zip 
 +unzip stylevantage.zip 
 +sed -i -e '​s/​Orange/​Blue/'​ stylevantage/​header.php 
 +</​code>​ 
 + 
 +<code bash> 
 +cd /​var/​www/​wordpress-$VERSION/​wp-content/​themes 
 +wget http://​thematic.googlecode.com/​files/​thematic-0.5.zip 
 +unzip thematic-0.5.zip 
 +</​code>​ 
 + 
 +<code bash> 
 +cd /​var/​www/​wordpress-$VERSION/​wp-content/​themes 
 +wget http://​sndbx.org/​first/​downloads/​diurnal.zip 
 +unzip diurnal.zip 
 +</​code>​ 
 + 
 +<code bash> 
 +cd /​var/​www/​wordpress-$VERSION/​wp-content/​themes 
 +wget http://​sndbx.org/​first/​downloads/​mix.zip 
 +unzip mix.zip 
 +</​code>​ 
 + 
 +<code bash> 
 +cd /​var/​www/​wordpress-$VERSION/​wp-content/​themes 
 +wget http://​sndbx.org/​first/​downloads/​moo-point.zip 
 +unzip moo-point.zip 
 +</​code>​ 
 + 
 +<code bash> 
 +cd /​var/​www/​wordpress-$VERSION/​wp-content/​themes 
 +wget http://​sndbx.org/​first/​downloads/​potassium.zip 
 +unzip potassium.zip 
 +</​code>​ 
 + 
 +==== Custom Theme ==== 
 + 
 +<code bash> 
 +cd /​var/​www/​wordpress-$VERSION/​wp-content/​themes 
 +mkdir testing 
 +cd testing 
 +</​code>​ 
 + 
 +Add the following to a new file named ''​style.css'':​ 
 +<​file>​ 
 +/* 
 +THEME NAME: Testing 
 +THEME URI: http://​boochtek.com/​testing-theme/​ 
 +DESCRIPTION:​ Basic theme, based on Sandbox 
 +VERSION: 0.1 
 +AUTHOR: Craig Buchek 
 +AUTHOR URI: http://​boochtek.com 
 +TAGS: three columns 
 +TEMPLATE: sandbox 
 +*/ 
 + 
 +@import url("​reset-meyer.css"​);​ 
 +@import url("​fonts-yahoo.css"​);​ 
 +@import url("​layout.css"​);​ 
 +@import url("​booch.css"​);​ 
 + 
 +a { 
 +  color: green; 
 +
 + 
 +/* Make Firefox always show vertical scrollbar, like IE does. */ 
 +html { 
 +  overflow-y: scroll; 
 +
 + 
 +/* Fix problem w/ Firefox not showing underlines if line-height is 1em. */ 
 +/* Note: note needed if using fonts-yahoo. */ 
 +a { 
 +  line-height:​ 1.01em; 
 +
 +</​file>​ 
 + 
 +Add the following to a new file named ''​reset-meyer.css'':​ 
 +<​file>​ 
 +/* From Eric Meyer - http://​meyerweb.com/​eric/​tools/​css/​reset/​ */ 
 +/* v1.0 | 20080212 */ 
 + 
 +html, body, div, span, applet, object, iframe, 
 +h1, h2, h3, h4, h5, h6, p, blockquote, pre, 
 +a, abbr, acronym, address, big, cite, code, 
 +del, dfn, em, font, img, ins, kbd, q, s, samp, 
 +small, strike, strong, sub, sup, tt, var, 
 +b, u, i, center, 
 +dl, dt, dd, ol, ul, li, 
 +fieldset, form, label, legend, 
 +table, caption, tbody, tfoot, thead, tr, th, td { 
 +  margin: 0; 
 +  padding: 0; 
 +  border: 0; 
 +  outline: 0; 
 +  font-size: 100%; 
 +  vertical-align:​ baseline; 
 +  background: transparent;​ 
 +
 +body { 
 +  line-height:​ 1; 
 +
 +ol, ul { 
 +  list-style: none; 
 +
 +blockquote, q { 
 +  quotes: none; 
 +
 +blockquote:​before,​ blockquote:​after,​ 
 +q:before, q:after { 
 +  content: '';​ 
 +  content: none; 
 +
 + 
 +/* remember to define focus styles! */ 
 +:focus { 
 +  outline: 0; 
 +
 + 
 +/* remember to highlight inserts somehow! */ 
 +ins { 
 +  text-decoration:​ none; 
 +
 +del { 
 +  text-decoration:​ line-through;​ 
 +
 + 
 +/* tables still need '​cellspacing="​0"'​ in the markup */ 
 +table { 
 +  border-collapse:​ collapse; 
 +  border-spacing:​ 0; 
 +
 +</​file>​ 
 + 
 + 
 +Add the following to a new file named ''​fonts-yahoo.css'':​ 
 +<​file>​ 
 +/* 
 +Copyright (c) 2008, Yahoo! Inc. All rights reserved. 
 +Code licensed under the BSD License: 
 +http://​developer.yahoo.net/​yui/​license.txt 
 +version: 2.5.2 
 +*/ 
 +/** 
 + * Percents could work for IE, but for backCompat purposes, we are using keywords. 
 + * x-small is for IE6/7 quirks mode. 
 + */ 
 +body {font:​13px/​1.231 arial,​helvetica,​clean,​sans-serif;​*font-size:​small;​*font:​x-small;​} 
 +table {font-size:​inherit;​font:​100%;​} 
 +/** 
 + * Bump up IE to get to 13px equivalent 
 + */ 
 +pre,​code,​kbd,​samp,​tt {font-family:​monospace;​*font-size:​108%;​line-height:​100%;​} 
 +</​file>​ 
 + 
 + 
 +Add the following to a new file named ''​layout.css'':​ 
 +<​file>​ 
 +/* These are from Matthew James Taylor'​s Perfect 3 Column Liquid Layout. */ 
 +/* http://​matthewjamestaylor.com/​blog/​ultimate-3-column-holy-grail-ems.htm */ 
 +@import url('​holygrail.css'​);​ 
 + 
 +.skip-link, #access { 
 +  display: none; 
 +
 +</​file>​ 
 + 
 + 
 +Add the following to a new file named ''​booch.css'':​ 
 +<​file>​ 
 +body, html { 
 +  margin: 0; /* Remove white space along the page borders. */ 
 +
 +#header h1 { 
 +  margin: 0; /* Remove white space above header. */ 
 +  font-size: 2em; /* Use a large font for the header title. */ 
 +
 + 
 +#header { 
 +  background-color:​ #ccffcc; 
 +  padding: 1em; /* Add space inside header. */ 
 +  border-bottom:​ 2px solid black; 
 +
 + 
 +#blog-title a { 
 +  text-decoration:​ none; /* Don't underline the blog title. */ 
 +
 + 
 +#​blog-description { 
 +
 + 
 +#container { 
 +  margin-top: 1em; /* Put a bit of space above main content. */ 
 +
 + 
 +.sidebar { 
 +  margin-top: 1em; /* Put a bit of space above top item in sidebars. */ 
 +
 + 
 +.sidebar ul { 
 +  list-style-type:​ none; /* Remove bullets from lists in sidebars. */ 
 +
 + 
 +.comment.alt { 
 +  background-color:​ #EEEEEE; /* Use a light gray for odd-numbred comments. */ 
 +
 +.comment.bypostauthor { /* NOTE: Put this after .comment.alt,​ so it has preccendence. */ 
 +  background-color:​ #DDFFDD; /* Set special color for comments by the author of the post. */ 
 +
 + 
 +.sidebar ul.xoxo { 
 +
 + 
 +.sidebar ul.xoxo li { 
 +  margin-bottom:​ 1em; /* Separate sidebar items a bit */ 
 +/*  border: 1px #ccc solid; /* Put a border around all sidebar items. */ 
 +/*  background-color:​ red; /* */ 
 +
 +.sidebar ul.xoxo li li { 
 +  border: 0; 
 +
 + 
 +.widget { 
 +  margin-top: 0; 
 +
 + 
 +.sidebar h3 { 
 +  font-size: 1.2em; /* Make the sidebar item titles a bit smaller. */ 
 +  margin: 0; /* Move the sidebar items closer together. */ 
 +/*  border-bottom:​ 1px #ccc solid; */ 
 +
 +</​file>​ 
 + 
 + 
 +Add the following to a new file named ''​holygrail.css'':​ 
 +<​file>​ 
 +/* General styles */ 
 +body { 
 +  border:​0; ​          /* This removes the border around the viewport in old versions of IE */ 
 +  min-width:​600px; ​   /* Minimum width of layout - remove line if not required */ 
 +                      /* The min-width property does not work in old versions of Internet Explorer */ 
 +
 + 
 +/* holy grail 3 column settings */ 
 +.holygrail { 
 +  position:​relative; ​     /* This fixes the IE7 overflow hidden bug and stops the layout jumping out of place */ 
 +  clear:​both;​ 
 +  float:​left;​ 
 +  width:​100%; ​            /* width of whole page */ 
 +  overflow:​hidden; ​       /* This chops off any overhanging divs */ 
 +  background:#​CDEAFF; ​    /* Right column background colour */ 
 +
 +.holygrail .colmid { 
 +  float:​left;​ 
 +  width:​200%;​ 
 +  margin-left:​-12em; ​     /* Width of right column */ 
 +  position:​relative;​ 
 +  right:​100%;​ 
 +  background:#​fff; ​       /* Centre column background colour */ 
 +
 +.holygrail .colleft { 
 +  float:​left;​ 
 +  width:​100%;​ 
 +  margin-left:​-50%;​ 
 +  position:​relative;​ 
 +  left:​24em; ​             /* Left column width + right column width */ 
 +  background:#​cdeaff; ​    /* Left column background colour */ 
 +
 +/* IE6-only hack required if using Standards-mode (i.e. not using an XML prolog.) */ 
 +* html .holygrail .colleft { 
 +  margin-left:​-100%;​ 
 +
 +.holygrail #container { 
 +  float:​left;​ 
 +  width:​50%;​ 
 +  position:​relative;​ 
 +  right:​12em; ​            /* Width of left column */ 
 +  padding-bottom:​1em; ​    /* Centre column bottom padding. Leave it out if it's zero */ 
 +
 +.holygrail #content { 
 +  margin:0 13em;          /* Centre column side padding: 
 +                          Left padding = left column width + centre column left padding width 
 +                          Right padding = right column width + centre column right padding width */ 
 +  position:​relative;​ 
 +  left:​200%;​ 
 +  overflow:​hidden;​ 
 +
 +.holygrail #​primary.sidebar { 
 +  float:​left;​ 
 +  float:​right; ​           /* This overrides the float:left above */ 
 +  width:​10em; ​            /* Width of left column content (left column width minus left and right padding) */ 
 +  position:​relative;​ 
 +  right:​1em; ​             /* Width of the left-had side padding on the left column */ 
 +
 +.holygrail #​secondary.sidebar { 
 +  float:​left;​ 
 +  float:​right; ​           /* This overrides the float:left above */ 
 +  width:​10em; ​            /* Width of right column content (right column width minus left and right padding) */ 
 +  margin-right:​3em; ​      /* Width of right column right-hand padding + left column left and right padding */ 
 +  position:​relative;​ 
 +  left:50%; 
 +
 +</​file>​ 
 + 
 + 
 +===== Notes ===== 
 + 
 +==== Password Reset ==== 
 + 
 +You can reset an account password from the command line: 
 + 
 +<code bash> 
 +WP_DATABASE=my_wp_blog 
 +WP_LOGIN=admin 
 +NEW_PASSWORD="​xxxxxx"​ 
 +NEW_PASSWORD=`echo -n $NEW_PASSWORD | md5sum | cut -f1 -d' '` 
 +mysql --defaults-group-suffix=_$WP_DATABASE $WP_DATABASE <<​EOF 
 +UPDATE wp_users SET user_pass="​$NEW_PASSWORD"​ WHERE user_login="​$WP_LOGIN"​ 
 +EOF 
 +</​code>​ 
 + 
 + 
 +===== TODO ===== 
 + 
 +Add some plugins: 
 +  * [[http://​wordpress.org/​extend/​plugins/​really-static/​ | Really Static]] 
 +  * [[https://​wordpress.org/​extend/​plugins/​better-wp-security/​ | Better WP Security]] 
 + 
 +Complete configuration. 
 + 
 +Complete my custom theme.
build/wordpress.txt · Last modified: 2017/01/27 19:58 by Admin