Archive

Posts Tagged ‘WordPress’

Configure Apache with a Server Alias

March 10th, 2010

Notes on setting up apache for multiple web sites:

In the /etc/apache2 directory you have two directories:
- sites-available
- sites-enabled

The sites-available directory contains configuration files for each website.
The sites-available contains links to the configuration file in the sites-available directory.  It does not contain the file itself.

The mistake that is made at times is that *all* configs are placed in one file – default.

So, for a domain name like domain.com you would create a file called domain.com in the sites-available directory with the following:

NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/domain
ServerName www.domain.com
Server Alias domain.com
</VirtualHost>

you would do:  /ln -s /etc/apache2/sites-available/domain.com /etc/apache2/sites-enabled/domain.com

OR

a2ensite domain.com (from within the sites-available) directory.

finally:  /etc/init.d/apache2 reload

So, in a nutshell — create a file per domain name — use ServerAlias to cover www.domain.com and domain.com.

Andrew Hosting , , , , , ,

Instructions for Installing WordPress on Ubuntu 9.10 (Karmic Koala)

January 19th, 2010

Instructions for Installing WordPress
——————————————————————————————————

# Setup Sources (some VPS vendors block sources)
vi /etc/apt/sources.list

(remove all # in front of all sources)
To save in vi: :qw
To exit without saving: :q!

# Do updates, upgrades, and install essentials
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get install build-essential
apt-get install linux-headers-$(uname -r)

# Install a friendly editor if you are not familiar with VI
apt-get install jed

# Now for some security (iptables will probably be installed, running command doesn’t hurt and verifies that it is)
# The config below allows for FTP, SMTP, POP, IMAP, HTTP, HTTPS and SSH
# Adjust according to your needs

apt-get install iptables
iptables -F
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p icmp –icmp-type any -j ACCEPT
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 25 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 110 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 143 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 443 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 993 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 995 -j ACCEPT
iptables -A INPUT -m state –state NEW -m tcp -p tcp –dport 10000 -j ACCEPT
iptables -A INPUT -j REJECT –reject-with icmp-host-prohibited
iptables -A FORWARD -j REJECT –reject-with icmp-host-prohibited

iptables-save > /etc/network/iptables
printf ‘#!/bin/sh\niptables-restore < /etc/network/iptables\n’ > /etc/network/if-pre-up.d/iptables
chmod 754 /etc/network/if-pre-up.d/iptables

# Deny Hosts is a nifty little program that tracks people who try to brute force your root account
apt-get install denyhosts

#Location of config files:
#config: /etc/denyhosts.conf
#datafile: /etc/hosts.deny

# This installs the lamp stack
tasksel install lamp-server

# And now for Wordpress
cd ~/
mkdir downloads
cd downloads
wget http://wordpress.org/latest.tar.gz
mkdir /var/www/wordpress
cd /var/www/
chown -R www-data:www-data wordpress
chmod -R -v 755 wordpress
tar -zxvf ~/downloads/latest.tar.gz –directory=/var/www
cd /var/www
mv wordpress myblog
cp /etc/apache2/sites-available/default /etc/apache2/sites-available/default.org
jed /etc/apache2/sites-available/default

#add the following section to the top
#-START——————————————
NameVirtualHost *:80
<VirtualHost *:80>
DocumentRoot /var/www/myblog
ServerName www.myblog.com
</VirtualHost>
#-END——————————————–
/etc/init.d/apache2 restart

#Setup a database for WordPress
#Change command below according to your needs

mysqladmin -u root -p create wordpress-myblog
mysql -u root -p
CREATE USER ‘wp-myblog’@'localhost’ IDENTIFIED BY ‘NiftyPasswordGoesHere’;
FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO ‘wp-myblog’@'localhost’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
USE wordpress-myblog;

#Finally point your domain DNS records to your IP address and complete setup.

Andrew Hosting, How-to , , , , , , ,

WordPress Permissions and Problems – now a solution!

May 6th, 2009

So you’ve installed WordPress and it’s just not working out.   Maybe you’re getting one of these error messages:

“You need to make this file writable before you can save your changes. See the Codex for more information.”

“The uploaded file could not be moved to…”

“Sorry, I can’t write to the directory. You’ll have to either change the permissions on your WordPress directory or create your wp-config.php manually.”

What to do?  Why not toss the entire kitchen sink at it?  After all, that’s what 90% of solutions I found online suggested.

Just chmod 777 the directory and it will work!

Why not just set your password to the name of your blog?

I’m not a person who uses Linux every day of the week, but I do appreciate it and see it’s use in meeting some business goals.  So, I got a bit  frustrated.  I’d fix one problem, discover another, fix that, discover another.  So, I stopped and thought about the situation – I even phoned a friend (thanks Ron!).

There were two facts I had to deal with before moving forward:

1. Not everyone has these problem.

2. The solution is related to permissions, but the way I was fixing them wasn’t the right way.

Then it hit me.  After I uncompressed the download and moved it into the www directory, I did not change the owner of the folder and all child folders/files.

A bit of background, I’m running WordPress on a Ubuntu LAMP Server.  So, I realize the configuration may differ, but if you’re having the same problems, regardless of distro, the solution is the same.

First, figure out what user and group the folder needs.  For my server, it was www-data for both.  So, I used the following command:

chown -R www-data:www-data wordpress

or

chown -R www-data:www-data www

(depending on where you moved the wordpress directory)

Also, you’ll need to set permissions:

chmod -R -v 755 wordpress

or

chmod -R -v 755 www

(again, depending on where you moved the directory)

After completing this step, then go to http://webserver/wordpress (or whatever URL you’re using) and you won’t have the errors listed above.



Andrew Troubleshooting , , , , , ,