Projekt Caros Gruppenblog: Difference between revisions
(5 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
= Caros Frauengruppenblog = | = 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 == | == 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 | ** 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/ | 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 | 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)
- geht ganz einfach mit phpMyAdmin
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
- Alternativ neue Installation starten
- https://banzhaf.chickenkiller.com/wordpress
- Name und Kurzbeschreibung des Blogs
- Admin User
- URLs auf die von außen (s.o.) einstellen
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