more phabricator setup;
authorwenzelm
Tue, 05 Nov 2019 20:47:15 +0100
changeset 71051 4eeff87c5072
parent 71050 8198ceef0301
child 71052 6bf53035baf0
more phabricator setup;
src/Pure/System/linux.scala
src/Pure/Tools/phabricator.scala
--- a/src/Pure/System/linux.scala	Tue Nov 05 17:32:40 2019 +0100
+++ b/src/Pure/System/linux.scala	Tue Nov 05 20:47:15 2019 +0100
@@ -114,6 +114,9 @@
   def service_stop(name: String): Unit =
     Isabelle_System.bash("systemctl stop " + Bash.string(name)).check
 
+  def service_restart(name: String): Unit =
+    Isabelle_System.bash("systemctl restart " + Bash.string(name)).check
+
   def service_install(name: String, spec: String)
   {
     val service_file = Path.explode("/lib/systemd/system") + Path.basic(name).ext("service")
--- a/src/Pure/Tools/phabricator.scala	Tue Nov 05 17:32:40 2019 +0100
+++ b/src/Pure/Tools/phabricator.scala	Tue Nov 05 20:47:15 2019 +0100
@@ -166,6 +166,8 @@
     val config = Config(name, root_path)
     write_config(configs ::: List(config))
 
+    config.execute("config set pygments.enabled true")
+
 
     /* local repository directory */
 
@@ -187,6 +189,16 @@
 
     progress.echo("MySQL setup...")
 
+    File.write(Path.explode("/etc/mysql/mysql.conf.d/phabricator.cnf"),
+"""[mysqld]
+max_allowed_packet = 32M
+innodb_buffer_pool_size = 1600M
+local_infile = 0
+""")
+
+    Linux.service_restart("mysql")
+
+
     def mysql_conf(R: Regex): Option[String] =
       split_lines(File.read(Path.explode(options.string("phabricator_mysql_config")))).
         collectFirst({ case R(a) => a })
@@ -202,6 +214,8 @@
     config.execute("config set storage.default-namespace " +
       Bash.string(prefix_name.replace("-", "_")))
 
+    config.execute("config set storage.mysql-engine.max-size 8388608")
+
     config.execute("storage upgrade --force")
 
 
@@ -247,6 +261,22 @@
     Isabelle_System.bash("chmod 0440 " + File.bash_path(sudoers_file)).check
 
 
+    /* PHP setup */
+
+    val php_version =
+      Isabelle_System.bash("""php --run 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;'""")
+        .check.out
+
+    val php_conf =
+      Path.explode("/etc/php") + Path.basic(php_version) +  // educated guess
+        Path.explode("apache2/conf.d/phabricator.ini")
+
+    File.write(php_conf,
+      "post_max_size = 32M\n" +
+      "opcache.validate_timestamps = 0\n" +
+      "memory_limit = 512M\n")
+
+
     /* Apache setup */
 
     progress.echo("Apache setup...")
@@ -271,12 +301,12 @@
 # vim: syntax=apache ts=4 sw=4 sts=4 sr noet
 """)
 
-    Isabelle_System.bash("""
+    Isabelle_System.bash( """
       set -e
       a2enmod rewrite
-      a2ensite """ + Bash.string(prefix_name) + """
-      systemctl restart apache2
-""").check
+      a2ensite """ + Bash.string(prefix_name)).check
+
+    Linux.service_restart("apache2")
 
     progress.echo("\nDONE\nWeb configuration via http://" + prefix_name + ".lvh.me")
   }