LIGHTTPD-W.P-GRAV
Install Lighttpd, MariaDB, and PHP
Configure PHP-FPM to Work with Lighttpd
Next, you will need to configure PHP-FPM to work with Lighttpd. To do so, edit the www.conf file:
$ nano /etc/php/8.2/fpm/pool.d/www.conf
listen = /run/php/php8.2-fpm.sock
And, replace it with the following line:
listen = 127.0.0.1:9000
$ nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
"bin-path" => "/usr/bin/php-cgi",
"socket" => "/var/run/lighttpd/php.socket",
And, replaced them with the following lines:
"host" => "127.0.0.1",
"port" => "9000",
Save and close the file, then enable the required modules with the following command:
$ lighty-enable-mod fastcgi
$ lighty-enable-mod fastcgi-php
Next, restart the Lighttpd and PHP-FPM service to apply the changes:
$ systemctl restart lighttpd
$ systemctl restart php8.2-fpm
Step 3 – Create a Database for WordPress
Next, log in to the MariaDB with the following command:
$ mysql
Once you are log in, create a database and user with the following command:
CREATE DATABASE wpdb;
GRANT ALL PRIVILEGES on wpdb.* TO 'wpuser'@'localhost' IDENTIFIED BY 'password';
Next, flush the privileges and exit from the MariaDB:
FLUSH PRIVILEGES;
EXIT;
Step 4 – Install WordPress
Next, change the directory to the Lighttpd web root directory and download the latest version of WordPress using the following command:
$ cd /var/www/html
wget https://wordpress.org/latest.tar.gz
Once the download is completed, extract the downloaded file with the following command:
$ tar -xvzf latest.tar.gz
Next, change the directory to WordPress and rename the sample configuration file:
$ cd wordpress
mv wp-config-sample.php wp-config.php
Next, edit the configuration file and define your database settings:
$ nano wp-config.php
Change the following lines:
/** The name of the database for WordPress */
define( 'DB_NAME', 'wpdb' );
/** MySQL database username */
define( 'DB_USER', 'wpuser' );
/** MySQL database password */
define( 'DB_PASSWORD', 'password' );
/** MySQL hostname */
define( 'DB_HOST', 'localhost' );
/** Database Charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );
Save and close the file, then set proper permissions and ownership with the following command:
$ chown -R $USER:$USER /var/www/html/wordpress
$ chmod -R 755 /var/www/html/wordpress
Step 5 – Configure Lighttpd for WordPress
First, create a directory to store the virtual host configuration file:
$ mkdir -p /etc/lighttpd/vhosts.d/
Next, edit the Lighttpd configuration file:
$ nano /etc/lighttpd/lighttpd.conf
Add mod_rewrite in the following block:
server.modules = (
"mod_access",
"mod_alias",
"mod_compress",
"mod_redirect",
"mod_rewrite",
)
And define the path of your virtual host configuration directory:
include_shell "cat /etc/lighttpd/vhosts.d/*.conf"
Save and close the file. Then, create a new virtual host configuration file for WordPress:
$ nano /etc/lighttpd/vhosts.d/wordpress.conf
Add the following lines:
$HTTP["host"] =~ "(^|.)wordpress.example.com$" {
server.document-root = "/var/www/html/wordpress"
server.errorlog = "/var/log/lighttpd/wordpress-error.log"
}
Save and close the file, then restart the Lighttpd service to apply the changes:
$ systemctl restart lighttpd
Step 6 – Access WordPress Dashboard
Now, open your web browser and access the WordPress installation.
Grav with Lighttpd
$ apt-get update --allow-releaseinfo-change -y
$ apt-get install --reinstall ca-certificates -y
$ apt-get upgrade -y
$ apt-get install nano wget curl perl sudo -y
$ sudo apt -y dist-upgrade
$ sudo apt --purge autoremove -y
$ sudo apt update && sudo apt upgrade -y
$ apt -y purge Apache2* bind* exim* ufw firewalld libapache2-mod-php*
$ adduser lighttpd
$ adduser lighttpdsudo
$ su - lighttpd
$ exit
1. ============Install DB================
$ apt install mariadb-server mariadb-client -y
$ systemctl start mariadb
$ systemctl enable mariadb
$ systemctl status mariadb
$ mysql_secure_installation
type y to set the root password
$ mariadb -u rootexit;
2. ==========Install PHP==================
$ sudo apt -y install php software-properties-common
$ sudo apt -y install php-common php-mysql php-xml php-xmlrpc php-curl php-gd php-imagick php-cli php-fpm php-json php-imap php-mbstring php-opcache php-soap php-dev php-cgi php-zip php-intl php-bcmath php-pear
$ sudo apt -y install libmcrypt-dev libreadline-dev mcrypt
$ sudo apt -y install php8.2 php8.2-fpm php8.2-common php8.2-mysql php8.2-xml php8.2-xmlrpc php8.2-curl php8.2-gd php8.2-cli php8.2-dev php8.2-imap php8.2-mbstring php8.2-soap php8.2-zip php8.2-cgi
$ sudo apt -y install php7.4 php7.4-fpm php7.4-common php7.4-mysql php7.4-xml php7.4-xmlrpc
$ sudo apt -y install php7.4-curl php7.4-gd php7.4-cli php7.4-dev php7.4-imap php7.4-mbstring
$ sudo apt -y install php7.4-soap php7.4-zip php7.4-cgi
3. =============Install Lighttpd=======================
$ apt-get install lighttpd -y
$ systemctl start lighttpd
$ systemctl enable lighttpd
$ systemctl status lighttpd
go to http://your-server-ip
$ apt -y purge Apache2* bind* exim* ufw firewalld libapache2-mod-php*
**if it doesn't have space, check */var/cache/* and **/var/log(except Apache2)** clean crap!**
# if you want to use php-fpm; Use PHP-FPM service for PHP via FastCGI
$ sudo systemctl restart php8.2-fpm
$ sudo lighty-enable-mod fastcgi fastcgi-php-fpm
$ nano /etc/php/8.2/fpm/php.ini
uncomment
cgi.fix_pathinfo=1
$ sudo service lighttpd force-reload
$ sudo nano /etc/lighttpd/conf-available/15-fastcgi-php-fpm.conf
fastcgi.server += ( ".php" =>
((
"socket" => "/run/php/php8.2-fpm.sock",
"broken-scriptfilename" => "enable"
))
)
$ sudo systemctl restart lighttpd
$ sudo nano /var/www/html/test.php
http://your i.p/test.php
4. ============Lighttpd conf=====================================
$ nano /etc/lighttpd/lighttpd.conf
server.module += ("mod_rewrite")
server.document-root = "/home/lighttpd/" OR "/var/www/html/"
server.port = 80
server.bind = "72.12.5.10"
---//At the bottom of the file, add:---------
include "domain1.conf" //include "domain2.conf" and many more...
5. =========Making Website========================
# mkdir -p /home/lighttpd
# mkdir -p /home/lighttpd/domain1 OR "/var/www/html/domain1"
# mkdir -p /home/lighttpd/domain1/logs OR "/var/www/html/domain1/logs"
# nano /etc/lighttpd/domain1.conf and paste
$HTTP["host"] =~ "domain1\.com" {
server.document-root = "/home/lighttpd/domain1" OR "/var/www/html/domain1"
accesslog.filename = "/home/lighttpd/domain1/logs/access.log" OR "/var/www/html/domain1/logs"
}
# chown -R www-data:www-data /home/lighttpd/domain1 // don't forget!!!
OR chown -R www-data:www-data /var/www/html/domain1
# chmod -R 755 /home/lighttpd/domain OR chmod -R 755 /var/www/html/domain1
# systemctl restart lighttpd
6. =======Install Grav==============
$ wget https://getgrav.org/download/core/grav-admin/latest -O grav-admin.zip
$ unzip grav-admin.zip -d grav
$ mv grav grav2
$ mv grav2/grav-admin/ /var/www/html/grav
$ rm -rf grav2/
$ nano /etc/lighttpd/lighttpd.conf
add server.module += ("mod_rewrite")
at bottom add include "domain1.conf"
$ nano /etc/lighttpd/domain1.conf and paste
$HTTP["host"] =~ "domain1.com" {
server.document-root = "/var/www/html/grav"
accesslog.filename = "/var/www/html/grav/logs"
url.rewrite-if-not-file = ( "" => "/index.php" )
}
$ chown -R www-data:www-data /var/www/html/grav
$ chmod -R 755 /var/www/html/grav
$ systemctl restart lighttpd
7. =========Install Webmin===============
$ curl -o setup-repos.sh https://raw.githubusercontent.com/webmin/webmin/master/setup-repos.sh
$ sh setup-repos.sh
$ apt -y install webmin --install-recommends
( change port: $ sudo nano -w /etc/webmin/miniserv.conf )Posted :
Monday 15th of September 2025 @ 12:45 AM— Tags :
lighttpd-wordpress