Projekt Caros Gruppenblog

From JoBaPedia
Revision as of 11:39, 23 March 2014 by Joachim (talk | contribs) (→‎Backup)
Jump to navigation Jump to search

Caros Frauengruppenblog

Ich hab mal wordpress installiert, und zwar so:

Mysql Config

  • In einem Mysql System (muß nicht der Webserver sein) einen User mit Datenbank anlegen
    • geht ganz einfach mit phpMyAdmin
      • https://banzhaf.chickenkiller.com/phpMyAdmin
      • Anmelden als root
      • Link "Benutzer"
      • Link "Neuen Benutzer hinzufügen"
      • Formular ausfüllen
        • Benutzername (egal, z.b. wp)
        • Host (den Webserver bzw. lokal)
        • ein Passwort
        • Option "Erstelle eine Datenbank mit gleichem Namen und gewähre alle Rechte"
        • OK
    • oder folgendes SQL ausführen (** mit Passwort ersetzen)
CREATE USER 'wp'@'localhost' IDENTIFIED BY '**';
GRANT USAGE ON * . * TO 'wp'@'localhost' IDENTIFIED BY '**' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE DATABASE IF NOT EXISTS `wp` ;
GRANT ALL PRIVILEGES ON `wp` . * TO 'wp'@'localhost';

Wordpress Install

  • Download des deutschen V3.8.1 Wordpress Zip von der http://de.wordpress.org Seite
  • Auspacken des Zip -> wordpress/ Verzeichnis
  • Anpassen des Connect Templates wp-config-sample.php mit den oben verwendeten Mysql-Daten und umbenennen in wp-config.php
  • Anpassen der Apache Konfiguration (wordpress arbeitet mit .htaccess, das ist bei Opensuse disabled
    • mod_rewrite aktivieren: in /etc/sysconfig/apache2 zu Variable APACHE_MODULES "rewrite" hinzufügen
    • Datei wordpress/.htaccess kopieren nach /etc/apache2/conf.d/wordpress und so ändern:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

zu

<Location /wordpress/>
Options FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
# RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
</Location>
  • Kopieren des wordpress Verzeichnis ins Document Root des Servers nach /srv/www/htdocs
  • Wenn vorhanden wordpress db kopieren:
mysqldump -p wordpress > backup-file.sql
  • Neue db anlegen (z.B. mit phpMyAdmin: neuer User mit db)
mysql -p wordpress < backup-file.sql

FTP Install

FTP aktivieren, damit wordpress sich updaten und Plugins installieren kann

  • vsftpd Paket installieren (am besten mit Zypper). Mangels Repo unter 11.4 manuell (64bit gab es nicht):
rpm -ihv ~joachim/Downloads/libopenssl1_0_0-1.0.0c-17.1.i586.rpm
rpm -ihv ~joachim/Downloads/libcap2-2.19-8.1.i586.rpm
rpm -ihv ~joachim/Downloads/vsftpd-2.3.2-2.1.i586.rpm
  • vsftpd Konfigurieren in /etc/vsftpd.conf (allow_writable_chroot erst ab vsftpd 3.0)
write_enable=YES
local_enable=YES
chroot_local_user=YES
allow_writeable_chroot=YES
pam_service_name=vsftpd
listen=YES
  • PAM konfigurieren: für openSuse13.1 ok, aber früher: /etc/pam.d/vsftpd ging nicht, daher sshd kopiert und außerdem in /lib/security ein Link von pam_unix.so nach pam_unix2.so
  • User angelegt:
useradd -c 'wordpress ftp user' -d /srv/www/htdocs/wordpress/ -g www wordpress
  • Passwort setzen (Caros PW!)
passwd wordpress
  • vsftpd start
systemctl start vsftpd.service
  • vsftpd autostart on boot
systemctl enable vsftpd.service
  • Gruppe von wordpress/ rekursiv auf www geändert und Schreibberechtigung erteilt
chgrp -R www /srv/www/htdocs/wordpress
chmod -R g+w /srv/www/htdocs/wordpress
  • ftp logs, wenn was nicht geht (web update, plugin install)
journalctl -u vsftpd.service -f

Wordpress Plugins

Über Adminseite Plugin "Members" installiert und konfiguriert:

  • Enable the content permissions feature.
  • Redirect all logged-out users to the login page before allowing them to view the site.
  • Show error message for feed items.

Über Adminseite Plugin "WP-Benutzer-Avatar" installiert und konfiguriert:

Web Address Change

Access problems probably due to firewalls not passing port 444. Reconfigured router to use standard port 443:

https://banzhaf.chickenkiller.com/wordpress

Backup

Make daily backup now. Currently backup size is ~30k (-> 10MB/year).

Crontab

44 04 * * * $HOME/backup.sh

Backup Script

#!/bin/bash
DB=wordpress
MOUNT_DIR=/net/qnap/BackupJob4
BACKUP_DIR="$MOUNT_DIR/$DB"

if ! mount | grep -q "$MOUNT_DIR"; then
        mount "$MOUNT_DIR"
fi

if ! mysqldump "$DB" | gzip >$BACKUP_DIR/backup_`date '+%F-%H-%M-%S'`.sql.gz; then
        echo "$0: backup failed"
fi

Mysql Config

~/.my.cnf contains these lines:

[mysqldump]
user=wordpress
password=the-password

Test Site

created a test site wptest exactly like wordpress, just without the content and users.

https://banzhaf.chickenkiller.com/wptest