summaryrefslogtreecommitdiff
path: root/new-site.php
diff options
context:
space:
mode:
Diffstat (limited to 'new-site.php')
-rw-r--r--new-site.php68
1 files changed, 68 insertions, 0 deletions
diff --git a/new-site.php b/new-site.php
new file mode 100644
index 0000000..0568f8a
--- /dev/null
+++ b/new-site.php
@@ -0,0 +1,68 @@
+<?php
+
+// A script to make a new site
+// TODO:
+// Nginx conf
+// Git repo
+// Directory structure
+
+// Handle options
+$options = getopt('d:n:');
+
+if (!array_key_exists('d', $options)) {
+ echo "please provide a domain (-d)\n";
+ exit(1);
+}
+
+if (!array_key_exists('n', $options)) {
+ echo "please provide a name (-n)\n";
+ exit(1);
+}
+
+$domain = $options['d'];
+$name = $options['n'];
+
+$conf = include_once('nginx.php');
+
+$conf = sprintf($conf[0], $domain, $name, $name, $name, $name, $name);
+
+echo "Making directory structure\n";
+
+if (!mkdir('/web/sites/' . $name)) {
+ echo "Failed to create '/web/sites/'" . $name . "\n";
+ exit(1);
+}
+
+chown('/web/sites/' . $name, "nginx");
+
+if (!mkdir('/web/sites/' . $name . '/logs')) {
+ echo "Failed to create '/web/sites/'" . $name . "/logs\n";
+ exit(1);
+}
+
+chown('/web/sites/' . $name . '/logs', "nginx");
+
+
+if (!mkdir('/web/sites/' . $name . '/web')) {
+ echo "Failed to create '/web/sites/'" . $name . "/web\n";
+ exit(1);
+}
+
+chown('/web/sites/' . $name . '/logs', "nginx");
+
+echo "Complete\n";
+
+if (!file_put_contents("/web/etc/nginx/" . $name . ".conf", $conf)) {
+ echo "Failed to write nginx conf\n";
+}
+
+chown('/web/etc/nginx/' . $name . ".conf", "nginx");
+
+touch('/web/sites/' . $name . '/logs/' . $name . '.access_log');
+chown('/web/sites/' . $name . '/logs/' . $name . '.access_log', "nginx");
+
+touch('/web/sites/' . $name . '/logs/' . $name . '.error_log');
+chown('/web/sites/' . $name . '/logs/' . $name . '.error_log', "nginx");
+
+touch('/web/sites/' . $name . '/web/index.php');
+chown('/web/sites/' . $name . '/web/index.php', "nginx");