===== Volkszaehler in einer VMware mit OpenWRT installieren =====
Diese Anleitung ist lange nicht mehr aktualisiert worden und weicht in wichtigen Punkten von der aktuellen Version ab.\\
This description is out of date, it differs in important steps from the actual version.
keeping to [[http://wiki.openwrt.org/oldwiki/RunningKamikazeOnVMwareHowTo|this howto]] do this:
* download [[http://downloads.openwrt.org/backfire/10.03.1-rc4/x86/openwrt-x86-generic-combined-ext2.vmdk|the prebuilt Kamikaze image in vmware disk image format]]:
(Remark: in case you should wonder why we're using the latest RC of 10.03.1 - it's because that is the first release that sports the mysql-server package)
* download [[http://volkszaehler.org/sparedisk-1G.vmdk.gz|the g'zipped prebuilt 1 GB spare disk image in vmware disk image format]] and gunzip it or roll your own:
* create a new file system for the db in an appropiate size - you might want to start with 1 GB:
dd if=/dev/zero of=disk.img bs=1024M count=10
* create an ext2 file system in that image
mkfs.ext2 sparedisk-1G.img
* convert the image using qemu-img from the package „qemu“ (Ubuntu/Debian):
qemu-img convert -f raw sparedisk-1G.img -O vmdk sparedisk-1G.vmdk
* get the [[http://volkszaehler.org/backfire-10.03.1-openwrt-x86-2.6-ext2.vmx|VMware configuration file]]
* open the vmx file with VMWare Player
* boot your new vm
* edit /etc/config/network:
config 'interface' 'lan'
option 'ifname' 'eth0'
option 'proto' 'dhcp'
* restart your network using the new settings:
/etc/init.d/network restart
* set a new root password:
passwd
* retrieve current package list:
opkg update
* mount overlay file system:
mount /dev/sdb1 /overlay
* move dirs with high disk space requirements to overlay file system:
mkdir /overlay/mysql
mkdir /mnt/data
ln -s /overlay/mysql/ /mnt/data/
mkdir /overlay/libexec
ln -s /overlay/libexec/ /usr/
* install required packages:
opkg install mysql-server php5-mod-mysql lighttpd coreutils-su php5-mod-pdo-mysql php5-mod-json php5-mod-sockets git bash php5-cgi libsqlite3 lighttpd-mod-fastcgi php5-mod-session lighttpd-mod-cgi php5-mod-ctype
* remarks: bash for install script (temporary) (php -> php-cli)
mkdir -p /mnt/data/mysql
ln -s /usr/bin/hostname /bin/
mysql_install_db --force (weil: /usr/bin/resolveip ist nicht da)
* clone volkszaehler.org:
cd /overlay
git clone git:\/\/github.com/volkszaehler/volkszaehler.org.git
cd /overlay/volkszaehler.org/volkszaehler.org/middleware/
* copy the config template and modify it to your needs:
cp volkszaehler.conf.template.php volkszaehler.conf.php
volkszaehler.conf.php:
$config['db']['user'] = '';
$config['db']['password'] = 'demo';
* run installer:
bash /overlay/volkszaehler.org/share/tools/install.sh
* set doctrine path to "/overlay/lib/doctrine"
* set volkszaehler path to "/overlay/www/vz"
* stop uhttpd before removing it
/etc/init.d/uhttpd stop
* now remove uhttpd and all packages that depend on uhttpd:
opkg remove luci-core luci-uci luci-theme-openwrt luci-web luci-sgi-cgi luci-http luci-app-firewall luci-admin-core luci-sys luci-uvl luci-lmo luci-app-initmgr luci-ipkg luci-cbi luci-admin-mini luci-admin-full luci-ipkg luci-admin-core luci-cbi luci-uvl luci-i18n-english luci-uci uhttpd
* modify /etc/lighttpd/lighttpd.conf:
server.document-root = "/overlay/www/"
index-file.names = ( "index.html", "index.php", "default.html", "index.htm", "default.htm" )
* modify /etc/php.ini:
doc_root = "/overlay/www"
; Dynamic Extensions
extension=ctype.so
extension=json.so
extension=pdo.so
extension=pdo-mysql.so
extension=session.so
extension=sockets.so
* enable (normal) cgi modify /etc/lighttpd/lighttpd.conf:
cgi.assign = ( ".php" => "/usr/bin/php-cgi" )
* or else enable fastcgi modify /etc/lighttpd/lighttpd.conf:
fastcgi.server = (
".php" => (
"localhost" => (
"socket" => "/tmp/php-fastcgi.socket",
"bin-path" => "/usr/bin/php-fcgi"
)
)
)
server.modules = (
"mod_fastcgi",
)
todos:
* mount /overlay at boot time
* start mysqld at boot time ("To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system"
* cd /usr ; /usr/bin/mysqld & (ohne _safe, weil nicht da!)
* /usr/bin/mysqladmin -u root password 'new-password'
* /usr/bin/mysqladmin -u root -h backfire password 'new-password'
* start lighttpd at boot time