WordPress: Difference between revisions
imported>Onny Add info about ssl behind reverse proxy |
imported>Onny Add note about necessity enablng plugins manually |
||
Line 59: | Line 59: | ||
</syntaxHighlight> | </syntaxHighlight> | ||
Hopefully Wordpress plugins and themes will also be packaged inside the Nixpkgs repository, see [https://github.com/NixOS/nixpkgs/pull/173622 this draft pull request]. | Unfortunately you'll have to enable plugins and themes every time you update or install them manually. Hopefully Wordpress plugins and themes will also be packaged inside the Nixpkgs repository, see [https://github.com/NixOS/nixpkgs/pull/173622 this draft pull request]. | ||
== Tips and tricks == | == Tips and tricks == |
Revision as of 11:27, 13 September 2022
Installation
A simple local setup of Wordpress can be enabled with the following setup
services.wordpress.sites."localhost".enabled = true;
Visit http://localhost to setup your new Wordpress instance. By default, a Mysql server is configured automatically so you won't have to setup the database backend.
Configuration
Plugins and themes
In case you want to package and add custom plugins and themes, you can add these too
let
# For shits and giggles, let's package the responsive theme
responsiveTheme = pkgs.stdenv.mkDerivation {
name = "responsive-theme";
# Download the theme from the wordpress site
src = pkgs.fetchurl {
url = http://wordpress.org/themes/download/responsive.1.9.7.6.zip;
sha256 = "06i26xlc5kdnx903b1gfvnysx49fb4kh4pixn89qii3a30fgd8r8";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
# Wordpress plugin 'akismet' installation example
akismetPlugin = pkgs.stdenv.mkDerivation {
name = "akismet-plugin";
# Download the theme from the wordpress site
src = pkgs.fetchurl {
url = https://downloads.wordpress.org/plugin/akismet.3.1.zip;
sha256 = "1i4k7qyzna08822ncaz5l00wwxkwcdg4j9h3z2g0ay23q640pclg";
};
# We need unzip to build this package
buildInputs = [ pkgs.unzip ];
# Installing simply means copying all files to the output directory
installPhase = "mkdir -p $out; cp -R * $out/";
};
in
{
services.wordpress.sites."webservice5" = {
themes = [ responsiveTheme ];
plugins = [ akismetPlugin ];
virtualHost = {
adminAddr = "js@lastlog.de";
serverAliases = [ "webservice5" "www.webservice5" ];
};
};
}
Unfortunately you'll have to enable plugins and themes every time you update or install them manually. Hopefully Wordpress plugins and themes will also be packaged inside the Nixpkgs repository, see this draft pull request.
Tips and tricks
Enable SSL behind reverse proxy
In case you're running Wordpress behind a reverse proxy which offers a SSL/https connection to the outside, you can force Wordpress to use the https protocol
services.wordpress.sites."localhost".extraConfig = ''
// Needed to run behind reverse proxy
define('FORCE_SSL_ADMIN', true);
$_SERVER['HTTPS']='on';
'';