User Tools

Site Tools


computing:selfhostedwp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
computing:selfhostedwp [2023/06/29 04:16] oemb1905computing:selfhostedwp [2023/06/29 04:34] oemb1905
Line 11: Line 11:
 ------------------------------------------- -------------------------------------------
  
-This tutorial is for setting up a self-hosted WordPress instance on Debian GNU/Linux.  This tutorial assumes you already have a LAMP stack with active TLS If not, you should read the [[https://wiki.haacksnetworking.com/doku.php?id=computing:apachesurvival|Apache Survival]] tutorial first Once you do thatbegin with some common php extensions needed for Word Press to function well:+This tutorial is for setting up a self-hosted WordPress instance on Debian GNU/Linux. This tutorial assumes you have some familiarity setting up a LAMP stack. If you need help with that, check out [[https://wiki.haacksnetworking.com/doku.php?id=computing:apachesurvival|Apache Survival]]. Alrightlet's install our LAMP stack and required/optional php modules. //Make sure to review what your instance requires and don't install or configure modules you don't need.//
  
-  sudo apt install php-common php-cgi php-cli php-zip php-mysql php-mbstring php-intl php-fpm php-curl php-gd php-imagick php-xml php-xmlrpc php-soap php-opcache php-apcu php-bcmath memcached wget unzip+  sudo apt install apache2 mariadb-server php8.x php-common php-cgi php-cli php-zip php-mysql php-mbstring php-intl php-fpm php-curl php-gd php-imagick php-xml php-xmlrpc php-soap php-opcache php-apcu php-bcmath memcached wget unzip
      
-Alternately, you can specify the php version as follows:+Sometimes dpkg can choose which version of php you want and it's not always the version you want. In those cases, you can explicitly specify the version you need as follows:
      
   sudo apt-get install php8.2-{common,cgi,cli,zip,mysql,mbstring,intl,fpm,curl,gd,imagick,xml,xmlrpc,gpm,soap,opcache,apcu,bcmath}   sudo apt-get install php8.2-{common,cgi,cli,zip,mysql,mbstring,intl,fpm,curl,gd,imagick,xml,xmlrpc,gpm,soap,opcache,apcu,bcmath}
      
-Okaylet's now enable fast cgi and rewrite php modules and then check your config.+In this particular configurationI am not using libapache2-mod-php. Instead I am using mpm_event and php-fpm. This is not necessary for many smaller instances or self-hosted scenarios. If you are new to self-hosting, then in addition to the above steps, you should do ''sudo apt install libapache2-mod-php8.x'' and ignore the fpm-based steps below.
      
 +  sudo apt remove libapache2-mod-php --purge
 +  sudo a2enmod ssl
 +  sudo a2enmod headers
 +  sudo a2enmod cache
   sudo a2enmod rewrite   sudo a2enmod rewrite
 +  sudo a2enmod setenvif 
 +  sudo a2dismod php8.2
 +  sudo a2dismod mpm_prefork
 +  sudo a2enmod mpm_event
 +  sudo a2enmod proxy
   sudo a2enmod proxy_fcgi   sudo a2enmod proxy_fcgi
-  sudo a2enconf php7.3-fpm+  sudo a2enconf php8.2-fpm 
 +  sudo a2enconf php8.2-cgi
   sudo apache2ctl configtest     sudo apache2ctl configtest  
-   +  sudo systemctl restart apache2 
-Move index.php to the top priority as follows:+  sudo systemctl restart php8.2-fpm 
 + 
 +There are two standard ways to configure php-fpm. One of those is to use ProxyPassReverse, however, this will disable the use of .htaccess in your WordPress root which is not ideal. The next common way which I prefer and use here, is to add a FilesMatch condition to your virtual host as follows. Within the <Include> and </Include> portion of your default-ssl.conf virtual host, add something like: 
 + 
 +  <FilesMatch ".+\.ph(ar|p|tml)$"> 
 +      SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost" 
 +  </FilesMatch> 
 + 
 +That takes care of configuring php-fpm and mpm_event. Before proceeding, navigate to your tld.domain in a web browser and make sure that your site resolves properly. Now, to make sure that your WordPress index.php file resolves properly to display your home page, make sure to move index.php to the top priority as follows:
      
   sudo nano /etc/apache2/mods-enabled/dir.conf   sudo nano /etc/apache2/mods-enabled/dir.conf
   <DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm>   <DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm>
-  + 
 +*** 
 Optionally, we can install phpmyadmin, and if you do, you should secure as follows: Optionally, we can install phpmyadmin, and if you do, you should secure as follows:
  
Line 189: Line 209:
   </IfModule>   </IfModule>
  
- --- //[[jonathan@haacksnetworking.org|oemb1905]] 2023/06/29 04:09//+ --- //[[jonathan@haacksnetworking.org|oemb1905]] 2023/06/29 04:29//
computing/selfhostedwp.txt · Last modified: 2023/12/16 20:33 by oemb1905