Projekt Caros Gruppenblog: Difference between revisions

From JoBaPedia
Jump to navigation Jump to search
 
(5 intermediate revisions by the same user not shown)
Line 1: Line 1:
= Caros Frauengruppenblog =
= Caros Frauengruppenblog =


Ich hab mal wordpress installiert, und zwar so:
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 ==
== Mysql Config ==
Line 55: Line 64:
  mysql -p wordpress < backup-file.sql
  mysql -p wordpress < backup-file.sql
* Alternativ neue Installation starten
* Alternativ neue Installation starten
** https://banzhaf.chickenkiller.com:444/wordpress
** https://banzhaf.chickenkiller.com/wordpress
** Name und Kurzbeschreibung des Blogs
** Name und Kurzbeschreibung des Blogs
** Admin User
** Admin User
Line 76: Line 85:
* User angelegt:
* User angelegt:
  useradd -c 'wordpress ftp user' -d /srv/www/htdocs/wordpress/ -g www wordpress
  useradd -c 'wordpress ftp user' -d /srv/www/htdocs/wordpress/ -g www wordpress
* Passwort setzen (Caros PW!)
* Passwort setzen (Caros PW, damit sie die Updates machen kann!)
  passwd wordpress
  passwd wordpress
* vsftpd start
* vsftpd start
Line 112: Line 121:


  #!/bin/bash
  #!/bin/bash
   
 
  DB=wordpress
  MOUNT_DIR=/net/qnap/BackupJob4
  MOUNT_DIR=/net/qnap/BackupJob4
  BACKUP_DIR=$MOUNT_DIR/ladiesroom
  BACKUP_DIR="$MOUNT_DIR/$DB"
   
   
  if ! mount | grep -q "$MOUNT_DIR"; then
  if ! mount | grep -q "$MOUNT_DIR"; then
Line 120: Line 130:
  fi
  fi
   
   
  if ! mysqldump wordpress | gzip >$BACKUP_DIR/backup_`date '+%F-%H-%M-%S'`.sql.gz; then
  if ! mysqldump "$DB" | gzip >$BACKUP_DIR/backup_`date '+%F-%H-%M-%S'`.sql.gz; then
         echo "$0: backup failed"
         echo "$0: backup failed"
  fi
  fi
Line 131: Line 141:
  user=wordpress
  user=wordpress
  password=the-password
  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

Latest revision as of 12:16, 23 March 2014

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