WordPress 4.1.1 installation on Ubuntu 14.04
- Tested on Ubuntu 14.04.2 LTS, Apache/2.4.9, PHP 5.5.15RC1, git 2.0.2, MySQL 5.5.41-0ubuntu0.14.04.1 / easy /
There is the Famous 5-Minute Install instruction so these are just my personal notes if I have to install other instances on a similar environment.
Unpack the files
WordPress devs have decided on, what I consider as outdated, SVN, however they have been kind to put up a GitHub repo. This makes it easier to pull or merge latest updates even though the update is supposed to be much simpler.
mhan@brahms:/srv/www/blog $ git clone https://github.com/WordPress/WordPress.git .
Cloning into '.'... remote: Counting objects: 196601, done. remote: Compressing objects: 100% (43/43), done. remote: Total 196601 (delta 28), reused 0 (delta 0), pack-reused 196558 Receiving objects: 100% (196601/196601), 116.49 MiB | 9.94 MiB/s, done. Resolving deltas: 100% (154751/154751), done. Checking connectivity... done. Checking out files: 100% (1424/1424), done.<br>
Set up the database
I'm connecting to the local database.
mhan@brahms:/srv/www/blog $ mysql -uroot -p
Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 9234 Server version: 5.5.41-0ubuntu0.14.04.1 (Ubuntu) Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql> create database wp_michael; Query OK, 1 row affected (0.02 sec) mysql> grant all on wp_michael.* to 'webacc'@'localhost' identified by 'password'; Query OK, 0 rows affected (0.00 sec) mysql> exit Bye
Update the wp-config.php file
We'll use the default as a starting point. Let's first make a copy of the sample config file.
mhan@brahms:/srv/www/blog $ cp -p wp-config-sample.php wp-config.php
This doesn't add to the security, but I usually keep original files with an extension of .dist (short for distribution).
mhan@brahms:/srv/www/blog $ mv wp-config-sample.php wp-config-sample.php.dist
Make updates to the config file. The lines for salts can be obtained at https://api.wordpress.org/secret-key/1.1/salt/. The following diff shows you the changes I've made.
19c19
< define('DB_NAME', 'database_name_here');
---
> define('DB_NAME', 'wp_michael');
22c22
< define('DB_USER', 'username_here');
---
> define('DB_USER', 'webacc');
25c25
< define('DB_PASSWORD', 'password_here');
---
> define('DB_PASSWORD', 'password');
45,53c45,52
< define('AUTH_KEY', 'put your unique phrase here');
< define('SECURE_AUTH_KEY', 'put your unique phrase here');
< define('LOGGED_IN_KEY', 'put your unique phrase here');
< define('NONCE_KEY', 'put your unique phrase here');
< define('AUTH_SALT', 'put your unique phrase here');
< define('SECURE_AUTH_SALT', 'put your unique phrase here');
< define('LOGGED_IN_SALT', 'put your unique phrase here');
< define('NONCE_SALT', 'put your unique phrase here');
<
---
> define('AUTH_KEY', 'xSiS5fsJx&c6x-1Xd^xv8<IK|Fp2#]jjyxfH7|XRr -sRrH2O]&gS=U7jp:ikj$j');
> define('SECURE_AUTH_KEY', ';)[9IiH)=]^ca[sYbSrSX!-8Ou?3_B7TN#47^tI#R/l8MaSnc^>|C]Yb9pJBoW/d');
> define('LOGGED_IN_KEY', '9]&k)u#m;n#40-j4<~X*!}E`RjE]Se[nxa,D}+]b~zu`1+$*L7H4}&C]=4dr]+H8');
> define('NONCE_KEY', 'k3i|O O4 ls_lcaamI-aza)zp|/h4G-KAnOGlQD.Z1k0Pgjc!a fcOXs+B^?6Jus');
> define('AUTH_SALT', ':SrSJn+FH2.K>udlBa+)a8|wt#l%P*#gQ{bv;{S*Sn+>-GUA~]re`BqL043j7Hlp');
> define('SECURE_AUTH_SALT', 'GpRr[xCm:ECIo$z+-<S{)>W*[QnWagNyD.z|1(6)-+v{5z4GiK7}4Co03,W]Htr~');
> define('LOGGED_IN_SALT', '_jbNqHC(GT=i|!T?+KFRL>4|S|d:-<..#@NnCb9@m e_nKZomo>W-Da&UEnr)w`j');
> define('NONCE_SALT', 'Sq+|7M++P>BFh6]-aw ja/aRlf(v0!<Q#7DIiun|)G0yJ$0&LknmTVAAY?~-tDon');
Set up the web services
I'm using Apache here, and this is how my config file looks like.
<VirtualHost *:80>
ServerName michael.blog.com
ServerAdmin webmaster@server.com
ServerSignature off
DocumentRoot /srv/www/blog
<Directory /srv/www/blog>
Options -Indexes +FollowSymLinks -MultiViews
AllowOverride All
Require all granted
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>d