Installer Apache, PHP, MySQL og WordPress på Debian 6.0

Der skal også være lidt til dem der ikke har prøvet så meget, så et godt sted at starte må være med at installere skidtet. Jeg vil have flyttet min WordPress installation fra specialhosting.dk webhotellet over på en dedikeret virtuel server, fordi det har jeg brug for til næste indlæg. Derfor tager vi lige en nem en idag 🙂

Start med en ny frisk-installeret Debian 6.0 maskine, og installer følgende pakker:

root@specialhosting:~# apt-get install apache2 mysql-server phpmyadmin
libapache2-mod-php5 php5-mysql php5-gd vim

Du bliver bedt om at indtaste root password til din MySQL server, det er vigtigt at du vælger et sikkert password, brug evt. sikkeradgangskode.dk. Password skal tastes to gange.

Herefter skal du vælge hvilken webserver du vil benytte til phpmyadmin, her vælger du selvfølgelig “apache2”.

Phpmyadmin beder om tilladelse til at installere nogle databaser, det må den selvfølgelig gerne. For at gøre det skal den bruge Mysql root password, når den har fået det vil den oprette en account til sig selv og beder dig foreslå et password, det plejer jeg IKKE at gøre men derimod trykker jeg bare ENTER og lader installeren selv generere et password.

… Så er selve installationen faktisk færdig, og ved at taste din servers ip i en browser vil du kunne se en besked om at den nyinstallerede webserver virker. Det er fedt nok, men for lige at lære dig lidt mere om opsætningen vil jeg tage flytningen af WordPress med også.

Først logger jeg ind på den gamle server og laver et dump af databasen:

old-server# mysqldump -pPASSWORD DATABASE --hex-blob > specialhosting.sql

Så pakker vi alle filerne sammen: (mens du står i dit webdir)

old-server# tar zcpf specialhosting.tgz * .htaccess

og til sidst flytter vi filen:

old-server# scp specialhosting.tgz root@specialhosting.mikjaer.com:/root
The authenticity of host 'specialhosting.mikjaer.com (109.202.159.47)' can't be established.
RSA key fingerprint is 38:0e:7e:6a:35:8d:04:94:ca:7a:f4:a3:e4:92:69:eb.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'specialhosting.mikjaer.com,109.202.159.47' (RSA) to the list of known hosts.
root@specialhosting.mikjaer.com's password:
specialhosting.tgz                                                        100%  140MB  17.5MB/s   00:08

Ovre på den nye server pakker vi filen ud og gør web-root klar til brug:

root@specialhosting:~# cd /var/www/
root@specialhosting:/var/www# ls
index.html
root@specialhosting:/var/www# rm index.html
root@specialhosting:/var/www# tar zxf /root/specialhosting.tgz
root@specialhosting:/var/www# chown -R www-data:www-data *

Nu starter vi med at slå op hvilket brugernavn og password WordPress forventer at bruge til databasen:

root@specialhosting:/var/www# cat wp-config.php | grep DB_
define('DB_NAME', 'DATABASE');
define('DB_USER', 'USERNAME');
define('DB_PASSWORD', 'PASSWORD');
define('DB_HOST', 'localhost');
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

og så opretter vi behørig database og useraccount:

root@specialhosting:/var/www# mysql -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 49
Server version: 5.1.61-0+squeeze1 (Debian)

Copyright (c) 2000, 2011, 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 DATABASE;
Query OK, 1 row affected (0.00 sec)

mysql> grant all privileges on DATABASE.* to USERNAME@localhost identified by "PASSWORD";
Query OK, 0 rows affected (0.00 sec)

Til sidst importerer vi database dumpet, således:

root@specialhosting:/var/www# mysql -u USERNAME -pPASSWORD DATABASE < specialhosting.sql

… og til allersidst skal vi lige have aktiveret mod_rewrite så vi kan få pæne URL’s på WordPress, først redigerer du: /etc/apache2/sites-enabled/000-default

<VirtualHost *:80>
        ServerAdmin webmaster@localhost

        DocumentRoot /var/www
        <Directory />
                Options FollowSymLinks
                AllowOverride None
        </Directory>
        <Directory /var/www/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>

        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
        <Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Og retter linie 11, fra “AllowOverride none” til “AllowOverride all” og slutter af med at aktivere modulet og genstarte Apache:

root@specialhosting:/var/www# a2enmod rewrite
Enabling module rewrite.
Run '/etc/init.d/apache2 restart' to activate new configuration!
root@specialhosting:/var/www# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting .

Og nu skulle WordPress gerne virke på den nye server, det gjorde min ihvertfald 🙂

Dette indlæg blev udgivet i Apache, Knowledge Base, Old Base. Bogmærk permalinket.

Skriv et svar