]> git.openstreetmap.org Git - chef.git/commitdiff
Use a separate FPM pool for each mediawiki site
authorTom Hughes <tom@compton.nu>
Thu, 23 Jul 2020 20:29:11 +0000 (21:29 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 23 Jul 2020 20:29:11 +0000 (21:29 +0100)
cookbooks/mediawiki/recipes/default.rb
cookbooks/mediawiki/resources/site.rb
cookbooks/mediawiki/templates/default/apache.erb
cookbooks/wiki/recipes/default.rb

index 08e7d73d0e6bd30e02e1efbec812cf22d662dd0c..2f94377603cf7f86df63c9af4abe2b300788b61c 100644 (file)
@@ -23,7 +23,7 @@ include_recipe "apt"
 include_recipe "git"
 include_recipe "memcached"
 include_recipe "mysql"
-include_recipe "php::apache"
+include_recipe "php::fpm"
 
 # Mediawiki Base Requirements
 package %w[
index e6c42df7f30ae897d51264e139c08a7a96ad0430..de0651f3512aa49d8d880e812b1c170a751513ba 100644 (file)
@@ -43,6 +43,7 @@ property :private_site, :kind_of => [TrueClass, FalseClass], :default => false
 property :recaptcha_public_key, :kind_of => String
 property :recaptcha_private_key, :kind_of => String
 property :extra_file_extensions, :kind_of => [String, Array], :default => []
+property :fpm_max_children, :kind_of => Integer, :default => 5
 property :reload_apache, :kind_of => [TrueClass, FalseClass], :default => true
 
 action :create do
@@ -517,6 +518,15 @@ action :create do
     domains [new_resource.site] + Array(new_resource.aliases)
   end
 
+  php_fpm new_resource.site do
+    pm_max_children new_resource.fpm_max_children
+    php_admin_values "open_basedir" => "#{site_directory}/:/usr/share/php/:/dev/null:/tmp/"
+    php_values "memory_limit" => "500M",
+               "max_execution_time" => "240",
+               "upload_max_filesize" => "70M",
+               "post_max_size" => "100M"
+  end
+
   apache_site new_resource.site do
     cookbook "mediawiki"
     template "apache.erb"
index 586f2391e6ede6d9f5a23408929758b0f95c5794..8c5224a4ace969a0c2a6aa41b19439788c65f698 100644 (file)
@@ -32,9 +32,6 @@
 
   DocumentRoot <%= @directory %>
 
-  ProxyFCGISetEnvIf "true" PHP_ADMIN_VALUE "open_basedir=<%= @directory %>/:/usr/share/php/:/dev/null:/tmp/"
-  ProxyFCGISetEnvIf "true" PHP_VALUE "memory_limit=500M\nmax_execution_time=240\nupload_max_filesize=70M\npost_max_size=100M"
-
   RewriteCond %{SERVER_NAME} !=<%= @name %>
   RewriteRule ^/(.*)$ https://<%= @name %>/$1 [R=permanent]
 
   <Directory <%= @directory %>>
     Options -Indexes
     Require all granted
+
+    <FilesMatch ".+\.ph(ar|p|tml)$">
+      SetHandler "proxy:unix:/run/php/<%= @name %>.sock|fcgi://127.0.0.1"
+    </FilesMatch>
   </Directory>
 
   <Directory <%= @directory %>/w/images/>
index 4a13e32566e993e509178365aa5d1308a38b6784..064f686cf9454de1919eb42b76dbbb5c9846bbaa 100644 (file)
@@ -33,6 +33,8 @@ mediawiki_site "wiki.openstreetmap.org" do
            "wiki.openstreetmap.pro", "wiki.openstreetmaps.org"]
   directory "/srv/wiki.openstreetmap.org"
 
+  fpm_max_children 25
+
   database_name "wiki"
   database_user "wiki-user"
   database_password passwords["database"]