Last active
January 26, 2017 18:06
-
-
Save apokalyptik/8fec5f2471f48014ee0be4a76ff3546e to your computer and use it in GitHub Desktop.
Installing jobs system from scratch by itself on Debian 8.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2x Debian 8 | |
- 2GB Ram | |
- 20GB disk | |
- selected: SSH server, and Standard Utilities | |
jobs1.test.local | |
eth0 - bridged, configured 10.0.1.12 (change depending on your network) | |
eth1 - lan, configured to 192.168.0.1 (change to suite your liking) | |
jobs2.test.local | |
eth0 - bridged, configured 10.0.1.13 (change depending on your network) | |
eth1 - lan, configured to 192.168.0.2 (change to suite your liking) | |
# more servers just follow the same instructions.... | |
# dotdeb is for php7 | |
wget https://www.dotdeb.org/dotdeb.gpg | |
apt-key add dotdeb.gpg | |
rm dotdeb.gpg | |
echo 'deb http://packages.dotdeb.org jessie all | |
> deb-src http://packages.dotdeb.org jessie all' > /etc/apt/sources.list.d/dotdeb.list | |
apt-get update | |
apt-get install mysql-server mysql-client php7.0 php7.0-mysql subversion vim-nox sudo curl strace | |
groupadd jobs | |
useradd jobs -g jobs -m -s /bin/bash | |
if [ ! -x /usr/local/bin/php ]; then ln -s "$(which php)" /usr/local/bin/php; fi | |
curl http://code.svn.wordpress.org/glockd/builds/312/linux-amd64/glockd.gz | gunzip > /usr/local/sbin/glockd | |
chmod a+rx /usr/local/sbin/glockd |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo -u jobs -i | |
# These could be externals in your own repository | |
svn co http://code.svn.wordpress.org/jobs/core | |
svn co http://code.svn.wordpress.org/jobs/bin | |
svn co http://code.svn.wordpress.org/jobs/www | |
svn co http://core.svn.wordpress.org/tags/4.7.1/ wordpress | |
svn co https://plugins.svn.wordpress.org/hyperdb/tags/1.2/ hyperdb | |
mkdir var var/run var/log var/log/jobs | |
# Just on the MySQL Master | |
mysql -uroot -p -e 'CREATE DATABASE `jobstest`' | |
mysql -uroot -p -e 'GRANT ALL PRIVILEGES ON `jobstest`.* TO "jobsuser" identified by "ET[JtPYZsEJboPknRmGtWC3vFivvAP"' | |
php /home/jobs/bin/schema.php | mysql -ujobsuser -p -D jobstest | |
mysql -ujobsuser -p -D jobstest -e 'SHOW TABLES' | |
exit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sudo -u jobs curl -o /home/jobs/config.php \ | |
'https://gist.githubusercontent.com/apokalyptik/8fec5f2471f48014ee0be4a76ff3546e/raw/config.php' | |
sudo -u jobs curl -o /home/jobs/config-www.php \ | |
'https://gist.githubusercontent.com/apokalyptik/8fec5f2471f48014ee0be4a76ff3546e/raw/config-www.php' | |
sudo -u jobs curl -o /home/jobs/config-worker.php \ | |
'https://gist.githubusercontent.com/apokalyptik/8fec5f2471f48014ee0be4a76ff3546e/raw/config-worker.php' | |
chown jobs:jobs /home/jobs/config.php | |
chown jobs:jobs /home/jobs/config-www.php | |
chown jobs:jobs /home/jobs/config-worker.php | |
curl -o /etc/systemd/system/jobs-jcron.service \ | |
'https://gist.githubusercontent.com/apokalyptik/8fec5f2471f48014ee0be4a76ff3546e/raw/jobs-jcron.service' | |
curl -o /etc/systemd/system/jobs-manager.service \ | |
'https://gist.githubusercontent.com/apokalyptik/8fec5f2471f48014ee0be4a76ff3546e/raw/jobs-manager.service' | |
curl -o /etc/systemd/system/lockd.service \ | |
'https://gist.githubusercontent.com/apokalyptik/8fec5f2471f48014ee0be4a76ff3546e/raw/lockd.service' | |
curl -o /etc/apache2/conf-available/jobs-ui.conf \ | |
'https://gist.githubusercontent.com/apokalyptik/8fec5f2471f48014ee0be4a76ff3546e/raw/jobs-ui.conf' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
systemctl daemon-reload | |
systemctl enable lockd.service | |
systemctl enable jobs-manager.service | |
systemctl enable jobs-jcron.service | |
systemctl start lockd.service | |
systemctl start jobs-manager.service | |
systemctl start jobs-jcron.service | |
a2enconf jobs-ui | |
a2enmod rewrite | |
service apache2 restart |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
require dirname( __FILE__ ) . '/core/jobs.php'; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
define( 'DAEMONIZE', false ); | |
require dirname( __FILE__ ) . '/config.php'; | |
add_action( 'jobs_www_head', function() { | |
?> | |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> | |
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> | |
<head> | |
<title>Jobs System Dashboard</title> | |
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/> | |
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> | |
</head> | |
<body> | |
<?php | |
} ); | |
add_action( 'jobs_www_foot', function() { | |
?> | |
</body> | |
</html> | |
<?php | |
} ); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
date_default_timezone_set( "utc" ); | |
ini_set( 'error_log', '/tmp/php-errors' ); | |
ini_set( 'log_errors', 1 ); | |
ini_set( 'error_reporting', E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED ); | |
define( "JOBS_SYSTEM_ROOT", dirname( __FILE__ ) ); | |
define( "DB_CONFIG_FILE", JOBS_SYSTEM_ROOT . '/hyperdb/db-config.php' ); | |
# Locking | |
require dirname( __FILE__ ) . '/core/includes/lockd/lockd-client.php'; | |
$lockc = new lockc(); | |
# Define our database connection | |
define( "DB_USER", "jobsuser" ); | |
define( "DB_PASSWORD", "ET[JtPYZsEJboPknRmGtWC3vFivvAP" ); | |
define( "DB_HOST", "192.168.0.1" ); | |
define( "DB_NAME", "jobstest" ); | |
define( "SHORTINIT", true ); | |
define( "WP_CONTENT_DIR", JOBS_SYSTEM_ROOT ); | |
define( "WP_DEBUG", false ); | |
define( "WP_DEBUG_DISPLAY", false ); | |
define( "ABSPATH", JOBS_SYSTEM_ROOT . "/wordpress/" ); | |
define( "WPINC", "wp-includes"); | |
require ABSPATH . WPINC . "/plugin.php"; | |
# Bring in HyperDB | |
require dirname( __FILE__ ) . "/hyperdb/db.php"; | |
require ABSPATH . WPINC . "/load.php"; | |
# Configure log and pidfiles to be relative to the location of this config file | |
function jobs_cfg_path( $fn ) { | |
return rtrim( JOBS_SYSTEM_ROOT, "/" ) . "/" . ltrim( $fn, "/" ); | |
} | |
add_filter( 'cfg_jan_logfile', 'jobs_cfg_path' ); | |
add_filter( 'cfg_jan_worker_stderr_glob', 'jobs_cfg_path' ); | |
add_filter( 'cfg_crn_pidfile', 'jobs_cfg_path' ); | |
add_filter( 'cfg_crn_logfile', 'jobs_cfg_path' ); | |
add_filter( 'cfg_mgr_pidfile', 'jobs_cfg_path' ); | |
add_filter( 'cfg_mgr_logfile', 'jobs_cfg_path' ); | |
add_filter( 'cfg_mgr_worker_logfile', 'jobs_cfg_path' ); | |
add_filter( 'cfg_mgr_janitor_logfile', 'jobs_cfg_path' ); | |
add_filter( 'cfg_wkr_logfile', 'jobs_cfg_path' ); | |
add_filter( 'cfg_wkr_external_logfile', 'jobs_cfg_path' ); | |
define( 'IS_JOBS', true ); | |
if ( !defined( 'SYSTEM_PREFIX' ) ) | |
define( 'SYSTEM_PREFIX', 'jobs_' ); | |
require JOBS_SYSTEM_ROOT . '/core/includes/queue.php'; | |
require JOBS_SYSTEM_ROOT . '/core/daemon.php'; | |
if ( !defined( 'DAEMONIZE' ) ) | |
define( 'DAEMONIZE', true ); | |
daemonize( DAEMONIZE ); | |
ob_start(); | |
require JOBS_SYSTEM_ROOT . '/core/includes/counters.php'; | |
ob_end_clean(); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /etc/systemd/system/jobs-jcron.service | |
[Unit] | |
Description=Jobs System Scheduler | |
[Service] | |
WorkingDirectory=/home/jobs/ | |
ExecStart=/home/jobs/core/jcron.php | |
User=jobs | |
Type=forking | |
PIDFile=/home/jobs/var/run/jobs_jcron.pid | |
Restart=always | |
KillMode=process | |
KillSignal=SIGKILL | |
Requires=mysql.service lockd.service jobs-manager.service network-online.target | |
[Install] | |
WantedBy=multi-user.target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /etc/systemd/system/jobs-manager.service | |
[Unit] | |
Description=Jobs System Manager | |
[Service] | |
WorkingDirectory=/home/jobs/ | |
ExecStart=/home/jobs/core/manager.php | |
User=jobs | |
Type=forking | |
PIDFile=/home/jobs/var/run/jobs_manager.pid | |
Restart=always | |
KillMode=process | |
KillSignal=SIGKILL | |
Requires=mysql.service lockd.service network-online.target | |
[Install] | |
WantedBy=multi-user.target |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Alias "/jobs" "/home/jobs/www" | |
<Directory "/home/jobs/www/"> | |
DirectoryIndex jobs.php | |
Require all granted | |
Options ALL | |
RewriteEngine On | |
RewriteBase "/jobs/" | |
RewriteCond %{REQUEST_FILENAME} !-d | |
RewriteCond %{REQUEST_FILENAME} !-f | |
RewriteRule . jobs.php [L,NE] | |
</Directory> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# /etc/systemd/system/lockd.service | |
[Unit] | |
Description=Lockd | |
[Service] | |
WorkingDirectory=/home/jobs/ | |
ExecStart=/usr/local/sbin/glockd -pidfile=/home/jobs/var/run/lockd.pid -port=2626 -ws=0 | |
User=jobs | |
PIDFile=/home/jobs/var/run/lockd.pid | |
Restart=always | |
[Install] | |
WantedBy=multi-user.target network-online.target |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment