Projekt Caros Gruppenblog: Difference between revisions
 (New page: = Caros Frauengruppenblog  Ich hab mal wordpress installiert, und zwar so:  * In einem Mysql System (muß nicht der Webserver sein) einen User mit Datenbank anlegen ** geht ganz einfach mi...)  | 
				|||
| (22 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 ==  | |||
* In einem Mysql System (muß nicht der Webserver sein) einen User mit Datenbank anlegen  | * In einem Mysql System (muß nicht der Webserver sein) einen User mit Datenbank anlegen  | ||
** geht ganz einfach mit phpMyAdmin  | ** geht ganz einfach mit phpMyAdmin  | ||
*** https://banzhaf.chickenkiller.com  | *** https://banzhaf.chickenkiller.com/phpMyAdmin  | ||
*** Anmelden als root  | *** Anmelden als root  | ||
*** Link "  | *** Link "Benutzer"  | ||
*** Link "Neuen Benutzer hinzufügen"  | *** Link "Neuen Benutzer hinzufügen"  | ||
*** Formular ausfüllen  | *** Formular ausfüllen  | ||
| Line 20: | Line 30: | ||
  CREATE DATABASE IF NOT EXISTS `wp` ;  |   CREATE DATABASE IF NOT EXISTS `wp` ;  | ||
  GRANT ALL PRIVILEGES ON `wp` . * TO 'wp'@'localhost';  |   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  | * Download des deutschen V3.8.1 Wordpress Zip von der http://de.wordpress.org Seite  | ||
* Auspacken des Zip -> wordpress/ Verzeichnis  | * 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 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  | * 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:  | ** Datei wordpress/.htaccess kopieren nach /etc/apache2/conf.d/wordpress und so ändern:  | ||
  <IfModule mod_rewrite.c>  |   <IfModule mod_rewrite.c>  | ||
| Line 33: | Line 46: | ||
  RewriteRule . /wordpress/index.php [L]  |   RewriteRule . /wordpress/index.php [L]  | ||
  </IfModule>  |   </IfModule>  | ||
zu  | |||
  <Location /wordpress/>  |   <Location /wordpress/>  | ||
  Options FollowSymLinks  |   Options FollowSymLinks  | ||
| Line 46: | Line 59: | ||
  </Location>  |   </Location>  | ||
* Kopieren des wordpress Verzeichnis ins Document Root des Servers nach /srv/www/htdocs  | * Kopieren des wordpress Verzeichnis ins Document Root des Servers nach /srv/www/htdocs  | ||
* Installation starten  | * Wenn vorhanden wordpress db kopieren:  | ||
** https://banzhaf.chickenkiller  |  mysqldump -p wordpress > backup-file.sql  | ||
* FTP aktivieren, damit wordpress sich updaten und Plugins installieren kann  | * 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/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/libcap2-2.19-8.1.i586.rpm  | ||
  rpm -ihv ~joachim/Downloads/vsftpd-2.3.2-2.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  |   write_enable=YES  | ||
  local_enable=YES  | |||
  chroot_local_user=YES  |   chroot_local_user=YES  | ||
 allow_writeable_chroot=YES  | |||
  pam_service_name=vsftpd  |   pam_service_name=vsftpd  | ||
  listen=YES  |   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  |   useradd -c 'wordpress ftp user' -d /srv/www/htdocs/wordpress/ -g www wordpress  | ||
** vsftpd   | * Passwort setzen (Caros PW, damit sie die Updates machen kann!)  | ||
** Gruppe von wordpress/ rekursiv auf www geändert und Schreibberechtigung erteilt  |  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  | |||
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