DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan Now×
Skip to content
VGSources
Blog

How to Make Nginx, MySQL and PHP-FPM Start Automatically on Boot

A distribution-aware systemd guide to starting Nginx, PHP-FPM and MySQL automatically after reboot, including mysql versus mysqld naming, verification commands and recovery steps.
Length9 min Posted Quest giverVGSources Team

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

On a systemd-based Linux server, run sudo systemctl enable --now nginx and sudo systemctl enable --now php-fpm, then enable the MySQL unit that actually exists on the machine: mysql on most Debian-based systems or mysqld on most RPM-based systems. Verify the result with systemctl is-enabled, systemctl status and systemctl --failed.

What “start automatically” means in systemd

Linux systems that use systemd separate a service’s current state from its boot-time configuration. systemctl start launches a unit in the current session; it does not, by itself, arrange for the unit to return after a reboot. systemctl enable creates the boot-time relationship so systemd starts the unit when the appropriate boot target is reached. The combined form, systemctl enable --now, performs both operations: it enables the unit for future boots and starts it immediately.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Red Hat’s systemd guidance notes that an enablement change takes effect on the next reboot, while --now also starts the service without waiting. That distinction explains why a server can be running Nginx, PHP-FPM or MySQL now but still fail to bring one of them back after a restart.

Identify the correct unit names before changing anything

Unit names vary with the distribution family, package source and PHP version. Nginx is normally nginx, and Red Hat’s documented PHP-FPM service is php-fpm. MySQL is the common exception: Oracle’s MySQL documentation uses mysqld.service on RPM platforms and mysql.service on Debian platforms.

#1 Best Overall
Sale
Gaoye Blue Light Blocking Glasses
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
Component Common Debian/Ubuntu unit Common RPM/RHEL unit What to trust
Nginx nginx nginx The unit installed on the host
PHP-FPM Distribution- or version-specific; often a PHP-FPM unit php-fpm in Red Hat’s procedure systemctl list-unit-files and systemctl status
MySQL mysql mysqld The unit supplied by the installed package

Do not run both MySQL commands merely because both names appear in a generic example. Use the one that exists on your system. A vendor repository, a distribution package and a versioned PHP package can install different unit names even within the same distribution family.

Discover installed units instead of guessing

systemctl list-unit-files | grep -E 'nginx|php.*fpm|mysql|mysqld'

This lists unit files whose names contain Nginx, a PHP-FPM pattern, MySQL or mysqld. A unit that is absent from the output is not the name to enable. For a specific service, systemctl status <unit> reports the local unit name, whether it is loaded, its active state and the latest failure message.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Check that the software is installed

Enablement cannot repair a missing package. Check the binaries first:

nginx -v
php-fpm -v
mysql --version

Some distributions use a versioned or differently named PHP-FPM binary. If php-fpm -v is not found, use the PHP-FPM executable supplied by that distribution and then locate its matching systemd unit with the unit-file query above. The MySQL client command confirms that a MySQL-compatible client is installed; the service-unit check confirms which server unit systemd controls.

Enable and start Nginx

Use the combined command for an immediate change

sudo systemctl enable --now nginx

If the command succeeds, Nginx is running in the current session and is configured to be started by systemd during subsequent boots. Ubuntu packages normally enable Nginx during installation, but running enable is the way to restore boot startup after someone disabled it.

Start now without changing boot behavior

sudo systemctl start nginx

Use this form when you deliberately want a temporary start. It does not create the boot-time relationship. To inspect the result:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
systemctl status nginx

Read the “Loaded” line for whether the unit is enabled and the “Active” line for whether it is currently running. If the service is not active, the status output usually includes the first useful error to investigate.

Rank #2
Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
  • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
  • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
  • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
  • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
  • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed

Enable and start PHP-FPM

Red Hat and other systems using php-fpm.service

sudo systemctl enable --now php-fpm

Red Hat’s Nginx/PHP procedure uses systemctl start php-fpm and optionally enables it together with Nginx. On another distribution, replace php-fpm with the exact unit discovered on that host; versioned units are possible.

Check the PHP-FPM unit and its configuration

systemctl status php-fpm
journalctl -u php-fpm -b

Red Hat identifies these locations for its packaged setup: /etc/php-fpm.conf, /etc/php-fpm.d/www.conf, /etc/nginx/nginx.conf and /etc/nginx/conf.d/php-fpm.conf. A different package source may use different paths, so treat those as Red Hat locations rather than universal paths. A service can be enabled correctly yet fail at boot because a pool file, socket path or Nginx FastCGI setting is invalid; the journal records that failure.

Enable and start MySQL with the unit your distribution provides

Debian-based systems

sudo systemctl enable --now mysql

Oracle’s MySQL 8.0 manual documents mysql.service for Debian platforms. If systemctl status mysql reports that no such unit exists, do not substitute mysqld automatically; discover the installed unit first.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

RPM-based systems

sudo systemctl enable --now mysqld

The same manual documents mysqld.service for RPM platforms. The service name is the unit identifier, not necessarily the name of the client binary or the package directory.

Confirm that the server, not only the client, is enabled

systemctl status mysql
systemctl status mysqld

Only one of these commonly exists. The existing unit’s status output is authoritative. MySQL’s systemd integration provides automatic server startup and shutdown once the correct unit is enabled.

A safe all-in-one procedure

The following sequence works when you first identify the units and then run only the commands that apply:

  1. List unit files and note the exact Nginx, PHP-FPM and MySQL names.
  2. Check each unit’s current state with systemctl status <unit>.
  3. Enable and start Nginx: sudo systemctl enable --now nginx.
  4. Enable and start the discovered PHP-FPM unit, for example sudo systemctl enable --now php-fpm.
  5. Enable and start either mysql (Debian-style) or mysqld (RPM-style), never an assumed name that is absent.
  6. Run the verification commands in the next section before rebooting.

If a unit is masked, systemd will refuse to start or enable it. Remove the mask, then repeat the enablement:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men
  • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
  • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
  • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
  • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
  • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
sudo systemctl unmask nginx php-fpm mysql mysqld

The command is harmless for a name that is not installed, but you should still enable only the unit that actually exists. A mask is stronger than a normal disablement: it links the unit to /dev/null, intentionally preventing activation.

Verify enablement, runtime state and failed units

Check whether boot startup is configured

systemctl is-enabled nginx php-fpm mysql mysqld

For each existing unit, an enabled result means systemd has the boot relationship. “Disabled” means the unit can still be started manually but will not be selected automatically. “Masked” requires unmask. “Unit not found” means you queried a name that is not installed, not that the service is necessarily broken.

Check current service state

systemctl status nginx php-fpm mysql mysqld

This multi-unit form may print not-found messages for names that do not apply to your distribution. Use separate status commands for a cleaner diagnostic once you know the real names.

Look for any failed systemd unit

systemctl --failed

A failed unit can be unrelated to the web stack, so inspect the listed unit rather than assuming Nginx, PHP-FPM or MySQL caused it. For a service that failed during this boot, view its boot-scoped journal:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
journalctl -u <unit> -b

Why a service starts manually but not after reboot

The unit was started but never enabled

This is the most common distinction: start changes the current session, whereas enable changes the next boot. Use enable --now when you want both outcomes in one operation.

The wrong unit name was enabled

Enabling mysql on a host that installed mysqld, or enabling a generic PHP-FPM name when the package installed a versioned unit, leaves the real server outside the boot transaction. Re-run the unit-file discovery command and inspect the installed package’s status output.

The unit is enabled but fails during boot

Enablement does not guarantee a successful process start. Review systemctl status <unit> and journalctl -u <unit> -b for syntax errors, missing files, permission problems, unavailable sockets or failed dependencies. Fix the reported cause, then restart the unit and check its status again.

Rank #4
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC

Dependencies or ordering are incomplete

Inspect the relationships systemd calculated for the unit:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
systemctl list-dependencies <unit>

This is useful when a service works after the machine is fully up but fails during early boot because a required mount, network condition or related unit is not ready. Also confirm that the unit is enabled in the boot target used by the server; enablement is target-specific.

Apply systemd unit-file changes correctly

If you edited a unit file or a drop-in override, systemd must reread its metadata before you restart or enable the service:

sudo systemctl daemon-reload
sudo systemctl restart <unit>

daemon-reload reloads unit definitions; it does not itself restart a process. Use the restart command only after the file is valid, then inspect status and the boot journal. Changes to application configuration files may require only a service restart, while changes to unit files or drop-ins require the reload first.

Distribution and package-source differences that matter

Decision point Debian/Ubuntu packages RHEL/RPM packages Why it changes the procedure
Nginx boot default Ubuntu says Nginx starts automatically by default Enablement may be a separate administrative step Installation defaults can be changed or disabled later
MySQL unit mysql.service mysqld.service The wrong identifier produces “unit not found”
PHP-FPM unit May be distribution- or version-specific Red Hat documents php-fpm.service Versioned packages can install different names
Configuration paths Follow the files shipped by that package Red Hat lists the Nginx and PHP-FPM paths described above Vendor repositories and distributions arrange files differently

NGINX package documentation separates procedures for Debian, Ubuntu, RHEL derivatives, SLES, Alpine and Amazon Linux. Therefore, package origin is as important as the distribution label when you are locating configuration files or a service unit.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Turn boot startup off deliberately

To stop a service from being selected at future boots while leaving the unit available for manual starts, disable it:

sudo systemctl disable nginx

Ubuntu documents this command for turning Nginx’s automatic startup off and sudo systemctl enable nginx for restoring it. Disabling does not necessarily stop a process that is already running; use sudo systemctl stop <unit> when you also need to end the current session.

Best Value
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.

Reboot test and recovery checklist

A controlled reboot is the definitive test because enablement is evaluated during boot. Before restarting, record the exact units discovered and make sure you have console or out-of-band access in case a remote web stack fails.

  1. Confirm each intended unit returns enabled from systemctl is-enabled.
  2. Confirm each service is currently active with systemctl status.
  3. Reboot during a maintenance window.
  4. After reconnecting, run systemctl --failed and check each unit’s status.
  5. If one failed, read journalctl -u <unit> -b, correct the first reported cause, run sudo systemctl daemon-reload if a unit file changed, and restart that unit.

This process distinguishes a boot-order or configuration failure from a simple missing enablement and leaves you with the exact evidence needed for the next fix.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Command reference

Goal Command Effect
Start now only sudo systemctl start <unit> Runs the unit in the current session
Enable for future boots sudo systemctl enable <unit> Creates the boot-time relationship
Do both sudo systemctl enable --now <unit> Enables and starts immediately
Inspect state systemctl status <unit> Shows loaded, active and recent error information
Inspect boot errors journalctl -u <unit> -b Shows this boot’s journal entries for the unit
Find installed names systemctl list-unit-files | grep -E 'nginx|php.*fpm|mysql|mysqld' Searches unit files by component name
Remove a mask sudo systemctl unmask <unit> Allows the unit to be started or enabled again
Reload changed unit definitions sudo systemctl daemon-reload Makes systemd reread unit files and drop-ins

Frequently Asked Questions

Should I use systemctl start or systemctl enable?

Use start for the current session, enable for future boots, or enable --now when you need both.

Why is MySQL called mysql on one server and mysqld on another?

The unit name follows the package and distribution convention: MySQL documents mysql.service for Debian platforms and mysqld.service for RPM platforms.

What if PHP-FPM is not named php-fpm?

Search the installed unit files with systemctl list-unit-files | grep -E 'php.*fpm', then use the exact unit shown by systemctl status.

Does enabling a service prove that it will start successfully?

No. Enablement only configures boot selection. Check the unit’s active state and read journalctl -u <unit> -b for startup errors.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.