|
|
| (8 intermediate revisions by 2 users not shown) |
| Line 4: |
Line 4: |
| = Components = | | = Components = |
|
| |
|
| | == Setup Network == |
| | Set the IP address for the each nic |
|
| |
|
| == Web ==
| | /etc/networks/interfaces |
| | <pre> |
| | # The loopback network interface |
| | auto lo |
| | iface lo inet loopback |
| | |
| | # The primary network interface |
| | auto eth0 |
| | iface eth0 inet static |
| | address 10.0.0.101 |
| | netmask 255.255.255.0 |
| | network 10.0.0.0 |
| | broadcast 10.0.0.255 |
| | gateway 10.0.0.1 |
| | |
| | #auto eth1 |
| | iface eth1 inet static |
| | address 10.0.0.201 |
| | netmask 255.255.255.0 |
| | network 10.0.0.0 |
| | broadcast 10.0.0.255 |
| | gateway 10.0.0.1 |
| | </pre> |
|
| |
|
| == Database == | | restart the network |
| Standard web node
| | |
| | /etc/init.d/networking restart |
| | |
| | == Install php server == |
|
| |
|
| ===Install needed packages=== | | ===Install needed packages=== |
| apt-get install mysql-client-5.0 mysql-server-5.0 | | sudo apt-get install gettext |
|
| |
|
| ===Create database and set permissions=== | | ===Install required php modules=== |
| mysqladmin -u root -p create activities | | sudo pear config-set preferred_state beta |
| mysql -u root -p | | sudo pear install Archive_Zip |
|
| |
|
| GRANT ALL ON *.* TO 'activities'@'xxx.xxx.xxx' IDENTIFIED BY 'XXXX'; | | ===Create user to run scripts=== |
| exit;
| | sudo useradd -d /srv/activities activities |
|
| |
|
| ===Configuring database===
| | Make sure that all files in /srv/activities |
| /etc/mysql/my.cnf | | * has apache(web-data) user |
| | * ''activities'' group |
| | * group write access |
| | * umask is 002 |
|
| |
|
| <pre>
| | ===Switch to activities user=== |
| [mysqld_safe]
| | |
| socket = /var/run/mysqld/mysqld.sock
| | sudo -i -u activities |
| nice = 0
| | |
| | ===Checkout ASLO sources=== |
| | |
| | git clone git://git.sugarlabs.org/slo-activities/mainline.git ~ |
| | git checkout production -b production |
|
| |
|
| [mysqld]
| | ===Fetch external dependencies=== |
| # * IMPORTANT
| |
| # If you make changes to these settings and your system uses apparmor, you may
| |
| # also need to also adjust /etc/apparmor.d/usr.sbin.mysqld.
| |
|
| |
|
| user = mysql
| | cd ~/site/vendors/ |
| pid-file = /var/run/mysqld/mysqld.pid
| | svn co http://svn.mozilla.org/libs/product-details |
| socket = /var/run/mysqld/mysqld.sock
| | svn co http://svn.mozilla.org/libs/fizzypop.mozdev fizzypop |
| port = 3306
| | svn co http://svn.mozilla.org/libs/phorms |
| basedir = /usr
| | svn co http://svn.mozilla.org/libs/zxtm-api |
| datadir = /var/lib/mysql
| |
| tmpdir = /tmp
| |
| skip-external-locking
| |
|
| |
|
|
| |
|
| # Instead of skip-networking the default is now to listen only on
| | ===Set up NFS mount points=== |
| # localhost which is more compatible and is not less secure.
| | Create directories |
| # bind-address = 127.0.0.1
| | mkdir -p ~/files |
| | mkdir -p ~/staging |
|
| |
|
| # * Tuning
| | Add the following lines to the end of `/etc/fstab' |
| #
| |
|
| |
|
| tmp_table_size = 16M
| | sunjammer.sugarlabs.org:/srv/nfs/activities/files /srv/activities/files nfs rsize=8192,wsize=8192,timeo=14,intr |
|
| | sunjammer.sugarlabs.org:/srv/nfs/activities/staging /srv/activities/staging nfs rsize=8192,wsize=8192,timeo=14,intr |
| innodb_buffer_pool_size = 1024M
| |
|
| |
| key_buffer = 64M
| |
| | |
| max_allowed_packet = 16M
| |
| thread_stack = 128K
| |
| thread_cache_size = 8
| |
| # This replaces the startup script and checks MyISAM tables if needed
| |
| # the first time they are touched
| |
| myisam-recover = BACKUP
| |
|
| |
| max_connections = 151
| |
| | |
| table_cache = 128
| |
| #thread_concurrency = 10
| |
|
| |
| query_cache_limit = 2M
| |
| query_cache_size = 32M
| |
|
| |
|
| # * Logging and Replication
| | ===First-time ASLO setup=== |
| #
| |
| # Both location gets rotated by the cronjob.
| |
| # Be aware that this log type is a performance killer.
| |
| #log = /var/log/mysql/mysql.log
| |
| #
| |
| # Error logging goes to syslog. This is a Debian improvement :)
| |
| #
| |
| # Here you can see queries with especially long duration
| |
| log_slow_queries = /var/log/mysql/mysql-slow.log
| |
| long_query_time = 1
| |
| #log-queries-not-using-indexes
| |
| #
| |
| # The following can be used as easy to replay backup logs or for replication.
| |
| # note: if you are setting up a replication slave, see README.Debian about
| |
| # other settings you may need to change.
| |
| #server-id = 1
| |
| #log_bin = /var/log/mysql/mysql-bin.log
| |
| expire_logs_days = 10
| |
| max_binlog_size = 100M
| |
| #binlog_do_db = include_database_name
| |
| #binlog_ignore_db = include_database_name
| |
| #
| |
| # * InnoDB
| |
| #
| |
| # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
| |
| # Read the manual for more InnoDB related options. There are many!
| |
| # You might want to disable InnoDB to shrink the mysqld process by circa 100MB.
| |
| #skip-innodb
| |
| #
| |
| # * Federated
| |
| #
| |
| # The FEDERATED storage engine is disabled since 5.0.67 by default in the .cnf files
| |
| # shipped with MySQL distributions (my-huge.cnf, my-medium.cnf, and so forth).
| |
| #
| |
|
| |
|
| #
| | Using ''~/aslo/config.php'' as template, setup ASLO settings in file ''~/site/app/config/config.php''. Template file was configured for ''dev'' environment, switch it to production by setting ''SITE_STATE'' variable to ''production''. |
| # Read the manual, too, if you want chroot!
| |
| # chroot = /var/lib/mysql/
| |
| #
| |
| # For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
| |
| #
| |
| # ssl-ca=/etc/mysql/cacert.pem
| |
| # ssl-cert=/etc/mysql/server-cert.pem
| |
| # ssl-key=/etc/mysql/server-key.pem
| |
|
| |
|
| [mysqldump]
| | Setup other env defines in file ''~/site/app/config/config-local.php'' |
| quick
| | define('DEBUG', 0); |
| quote-names
| | define('DEV', false); |
| max_allowed_packet = 16M
| | define('QUERY_CACHE', true); |
|
| |
|
| [mysql]
| | Create directories |
| #no-auto-rehash # faster start of mysql but no tab completition
| | mkdir -p ~/site/app/tmp/cache/persistent |
| | mkdir -p ~/site/app/tmp/cache/models |
| | mkdir -p ~/site/app/tmp/cache/views |
| | mkdir -p ~/files/temp |
| | mkdir -p ~/files/extracted |
| | mkdir -p ~/data |
|
| |
|
| [isamchk]
| | Minify css/js stuff |
| key_buffer = 16M
| | ~/aslo/minify.py |
|
| |
|
| #
| | Merge ASLO gettext strings |
| # * NDB Cluster
| | ~/aslo/po-compile.sh |
| #
| |
| # See /usr/share/doc/mysql-server-*/README.Debian for more information.
| |
| #
| |
| # The following configuration is read by the NDB Data Nodes (ndbd processes)
| |
| # not from the NDB Management Nodes (ndb_mgmd processes).
| |
| #
| |
| # [MYSQL_CLUSTER]
| |
| # ndb-connectstring=127.0.0.1
| |
|
| |
|
| | ===Crontab for activities user=== |
|
| |
|
| #
| | @hourly $HOME/aslo/cron/hourly |
| # * IMPORTANT: Additional settings that can override those from this file! | | # do not use @daily to make sure that we start job after aslo-proxy |
| # The files must end with '.cnf', otherwise they'll be ignored.
| | 01 08 * * * $HOME/aslo/cron/daily |
| #
| |
| !includedir /etc/mysql/conf.d/
| |
| </pre>
| |
|
| |
|
| ===Log Rotate=== | | ===Create vhost=== |
| /etc/logrotate.d/mysql-server | | vim /etc/apache2/sites-available/activities.sl.org |
| <pre> | | <pre> |
| # - I put everything in one block and added sharedscripts, so that mysql gets
| | <VirtualHost *:80 *:443> |
| # flush-logs'd only once.
| | ServerName activities.sugarlabs.org |
| # Else the binary logs would automatically increase by n times every day. | | ServerAlias activities2.sugarlabs.org # for test/install |
| # - The error log is obsolete, messages go to syslog now.
| | ServerAdmin webmaster@sugarlabs.org |
| /var/log/mysql.log /var/log/mysql/mysql.log /var/log/mysql/mysql-slow.log { | | |
| daily
| | DocumentRoot /srv/activities/site/app/webroot |
| rotate 7
| | |
| missingok
| | LogFormat "%h %V %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\" \"%{HTTP_COOKIE}i\"" addons |
| create 640 mysql adm
| | CustomLog /srv/activities/data/access addons |
| compress
| | CustomLog /var/log/apache2/all-access.log vhost_combined |
| sharedscripts
| | #CustomLog /var/log/apache2/performance.log performance |
| postrotate | | </VirtualHost> |
| test -x /usr/bin/mysqladmin || exit 0
| |
|
| |
| # If this fails, check debian.conf!
| |
| MYADMIN="/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf"
| |
| if [ -z "`$MYADMIN ping 2>/dev/null`" ]; then
| |
| # Really no mysqld or rather a missing debian-sys-maint user?
| |
| # If this occurs and is not a error please report a bug.
| |
| if ps cax | grep -q mysqld; then
| |
| exit 1
| |
| fi
| |
| else
| |
| $MYADMIN flush-logs
| |
| fi
| |
| endscript
| |
| }
| |
| </pre> | | </pre> |