Projekt Caros Gruppenblog

From JoBaPedia
Jump to navigation Jump to search

Caros Frauengruppenblog

Caro und ein paar Freundinnen möchten gern einen Blog zum privaten Meinungsaustausch nutzen. Daher hab ich mal wordpress installiert:

https://banzhaf.chickenkiller.com/wordpress

Da ich auf diesen Blog keinen Zugriff habe, gibt es noch einen zweiten für Tests:

https://banzhaf.chickenkiller.com/wptest

Installiert hab ich die 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, damit sie die Updates machen kann!)
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

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

  • copy wordpress directory to wptest in document root
  • delete the copied wp-config.php
  • copy wordpress.conf to wptest.conf in apache2's conf.d
  • create new mysql user and database wptest
  • add new ftp user wptest
  • adjust backup cron script and add it to crontab of wptest
  • restart apache (reload did not work for static pages)
  • go through the setup pages of wptest page
  • activate and configure the plugins

https://banzhaf.chickenkiller.com/wptest