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

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

On a systemd-based Linux server, use systemctl enable --now for each installed service. This both starts the service immediately and creates the boot-time link that starts it after future reboots. The exact MySQL and PHP-FPM unit names depend on your distribution and package source: Debian-based systems commonly use mysql, RPM-based systems commonly use mysqld, and PHP-FPM may have a versioned name.

Do not enable every name shown in examples. First discover the units that exist on the host, then enable only those units and verify their state.

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

What start, enable and enable --now actually do

Systemd separates a service’s current state from its boot configuration. Confusing these operations is the most common reason a service works now but disappears after a reboot.

Command Effect When to use it
systemctl start UNIT Starts the unit in the current boot session. It does not, by itself, arrange startup at the next boot. Testing a service or starting it temporarily.
systemctl enable UNIT Creates systemd’s boot-time relationship for the unit. It normally takes effect on the next reboot, but does not start a currently stopped service. Changing boot behavior without changing the current session.
systemctl enable --now UNIT Enables the unit for future boots and starts it immediately. The usual choice when provisioning or repairing a server.
systemctl disable UNIT Removes the boot-time relationship. It does not necessarily stop a service that is already running. Preventing automatic startup while leaving the current process alone.
systemctl stop UNIT Stops the current service. It does not necessarily change whether it starts at boot. Stopping a service for maintenance.

Red Hat’s systemd guidance states that enablement applies with the next reboot and that --now can start the unit immediately. Therefore, enable --now is normally the least surprising command for all three components.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.

Before enabling anything: identify the installed units

Package names and unit names are not universal. A server can have Nginx from the distribution repository, a vendor repository, or a manually installed build; those choices affect the unit file and configuration paths. PHP-FPM is especially likely to use a versioned unit such as a distribution-specific PHP release name.

Check that the software is installed

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

If php-fpm -v is not found, use the PHP-FPM binary supplied by your distribution or package. A missing command means you should install the package before trying to enable a unit; it is not evidence that the service has a different name.

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

List candidate systemd units

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

This lists unit files known to systemd, including disabled and masked units. Look for the exact unit name and its state. You can also ask systemd about likely names directly:

systemctl status nginx
systemctl status php-fpm
systemctl status mysql
systemctl status mysqld

Some of those commands may report that a unit does not exist. That is expected when the host uses a different naming convention. The successful status output is the authority for the local unit name and, when a service fails, the immediate failure reason.

Enable Nginx, PHP-FPM and MySQL

Once you have identified the actual units, run the commands that match your host. The following sequence is safe as a pattern, but execute only the MySQL command whose unit exists.

  1. Enable and start Nginx:

    sudo systemctl enable --now nginx
  2. Enable and start PHP-FPM. On an RHEL-family installation this is commonly:

    Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
    sudo systemctl enable --now php-fpm

    If your distribution lists a versioned unit, substitute that exact name, for example the unit shown by systemctl list-unit-files.

  3. Enable and start MySQL using the installed unit:

    sudo systemctl enable --now mysql

    Use this form on Debian-based systems when mysql.service exists.

    Rank #2
    EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
    • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
    • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
    • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
    • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
    • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
    sudo systemctl enable --now mysqld

    Use this form on RPM-based systems when mysqld.service exists. Do not run both commands merely because both appear in documentation.

MySQL’s 8.0 Reference Manual documents automatic startup and shutdown through systemd and distinguishes mysqld.service on RPM platforms from mysql.service on Debian platforms. The unit naming is a property of the package and distribution, not of the SQL protocol itself.

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.

Distribution-specific behavior and file locations

Debian and Ubuntu

Ubuntu states that Nginx is enabled to start at boot by default. If that relationship was disabled, restore it with:

sudo systemctl enable nginx

That command changes future boots; add --now if Nginx is also stopped and should run immediately:

sudo systemctl enable --now nginx

Debian-family MySQL packages commonly expose mysql.service. Confirm the unit rather than relying on the family name, particularly when a vendor repository has replaced the distribution package. PHP-FPM may be exposed as a generic or versioned unit, so use the name returned by the unit listing.

RHEL and other RPM-based distributions

Red Hat’s documented Nginx/PHP-FPM procedure uses nginx and php-fpm:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo systemctl start nginx
sudo systemctl start php-fpm
sudo systemctl enable php-fpm nginx

For a newly provisioned machine, the combined form is shorter:

sudo systemctl enable --now nginx php-fpm

RPM-based MySQL installations commonly use mysqld.service. Verify that unit before enabling it.

Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Red Hat identifies these common configuration locations:

  • /etc/nginx/nginx.conf
  • /etc/nginx/conf.d/php-fpm.conf
  • /etc/php-fpm.conf
  • /etc/php-fpm.d/www.conf

Those paths describe the documented RHEL procedure; other distributions and package sources can arrange equivalent files differently.

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

Other distribution families

NGINX package documentation provides separate procedures for Debian, Ubuntu, RHEL derivatives, SUSE Linux Enterprise, Alpine and Amazon Linux. Do not copy a unit name or configuration path from one family to another without checking the installed package. The systemd discovery and verification commands in this guide are more portable than a hard-coded assumption.

Verify boot enablement and current health

After enabling the services, verify both the boot relationship and the current process state.

systemctl is-enabled nginx php-fpm mysql mysqld
systemctl --failed
systemctl status nginx php-fpm mysql mysqld

is-enabled should report enabled for each real unit. It may report not-found for names that are not installed; ignore those names and check the actual unit discovered earlier. systemctl --failed provides a quick list of failed units across the system. The detailed status output shows whether a service is active, the main process identifier, recent log lines and the unit’s failure reason.

Test the result with a controlled reboot

If the machine can be restarted safely, reboot after enablement and check the services again:

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

When the host returns:

systemctl is-enabled nginx
systemctl is-enabled php-fpm
systemctl is-enabled mysql    # or mysqld, whichever exists
systemctl --failed
systemctl status nginx
systemctl status php-fpm
systemctl status mysql        # replace with mysqld when applicable

A service can be enabled yet fail during boot because of a bad configuration, a missing dependency or a port conflict. “Enabled” describes the boot relationship; “active (running)” describes the current result.

Fix a masked unit before enabling it

A masked unit is deliberately prevented from starting. enable cannot make a masked service runnable. Check for this state in systemctl status or systemctl is-enabled; systemd will typically report masked.

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
  1. Unmask the unit or units you actually intend to run:

    sudo systemctl unmask nginx
    sudo systemctl unmask php-fpm
    sudo systemctl unmask mysql
    sudo systemctl unmask mysqld
  2. Enable and start the correct units:

    sudo systemctl enable --now nginx
    sudo systemctl enable --now php-fpm
    sudo systemctl enable --now mysql     # Debian-style unit, if present
    sudo systemctl enable --now mysqld    # RPM-style unit, if present
  3. Repeat the verification commands and confirm that only the existing MySQL unit is being checked.

    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.

Unmasking changes an intentional administrative block. If another administrator masked the unit for security or maintenance reasons, establish why before removing that control.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Troubleshoot services that do not start at boot

The package or binary is missing

Run the version checks again:

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

A failed version command indicates that the corresponding package or binary is absent or uses a distribution-specific executable name. Install the intended package through your operating system’s package manager, then repeat unit discovery. Do not create a hand-written service unit simply to compensate for an uninstalled package.

The unit name is wrong

Search the installed unit files:

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

Use the exact result, including a PHP version suffix. For MySQL, choose either mysql.service or mysqld.service according to what exists on this host. This avoids the common mistake of enabling a name copied from instructions for another distribution.

The service is enabled but failed

Inspect the current status and this boot’s journal:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
systemctl status UNIT
journalctl -u UNIT -b

Replace UNIT with the exact service name. Read the first configuration, permission, bind or dependency error rather than repeatedly restarting the service. Correct the underlying issue, then start it again:

sudo systemctl restart UNIT

Use restart only after the cause is understood; otherwise a restart can hide the first useful log message.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.

The service starts manually but not during boot

Check the unit’s dependency graph and target relationship:

systemctl list-dependencies UNIT
systemctl is-enabled UNIT

The dependency listing shows what systemd must start first. The enablement check confirms that the unit is attached to a boot target. If the service is enabled but ordering is wrong, inspect the unit’s dependencies and any local drop-in files rather than adding arbitrary delays.

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

A changed unit file or drop-in is ignored

After editing a unit file or a systemd drop-in, reload systemd’s configuration cache:

sudo systemctl daemon-reload

Then enable or restart the service as appropriate:

sudo systemctl enable --now UNIT

Without daemon-reload, systemd may continue using the previously loaded definition even though the file on disk has changed.

Nginx or PHP-FPM fails because of configuration

Use the service status and journal first, then validate the configuration with the tool supplied by the installed package. For Nginx, the relevant configuration commonly begins at /etc/nginx/nginx.conf; on RHEL documentation, PHP-FPM settings include /etc/php-fpm.conf and /etc/php-fpm.d/www.conf. A syntax error, nonexistent socket, incorrect user, or occupied port can cause a boot-time failure even when enablement is correct.

Make sure the three services can work together

Automatic startup only guarantees that systemd attempts to launch each unit. A working web stack also requires the applications to agree on network sockets, permissions and startup order.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Nginx to PHP-FPM: Nginx must point to the socket or TCP address on which the selected PHP-FPM unit listens. A versioned PHP-FPM package can use a different socket path than an older package.
  • Configuration ownership and permissions: The PHP-FPM pool user must be able to access the application files and, when using a Unix socket, the socket’s directory and group permissions.
  • MySQL availability: Applications that connect during boot may need MySQL to be ready before their own startup jobs run. Inspect the service dependencies rather than assuming that enabling all units creates the desired application ordering.
  • Port conflicts: Another web server or database process occupying the configured port can make a service fail immediately. The journal normally records the bind error.

These are runtime and dependency concerns, separate from the enablement relationship. Solve them in the unit status and journal so the correction is specific to the host’s package layout.

Disable automatic startup deliberately

To keep a service from starting on future boots, disable it:

sudo systemctl disable nginx
sudo systemctl disable php-fpm
sudo systemctl disable mysql       # or mysqld

If it should also stop now, combine the operations:

sudo systemctl disable --now UNIT

Ubuntu documents systemctl disable nginx for turning off Nginx’s default boot behavior and systemctl enable nginx for restoring it. Disabling does not erase the package or its configuration; it changes systemd’s boot relationship.

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

A repeatable checklist

  1. Confirm the binaries or packages are installed.
  2. Discover the exact Nginx, PHP-FPM and MySQL/MySQLd unit names.
  3. Check whether any intended unit is masked.
  4. Unmask it only when that administrative block is no longer wanted.
  5. Run sudo systemctl enable --now for Nginx, PHP-FPM and the one MySQL unit that exists.
  6. Check systemctl is-enabled, systemctl status and systemctl --failed.
  7. For failures, read journalctl -u UNIT -b and inspect dependencies.
  8. Run sudo systemctl daemon-reload after changing a unit file or drop-in.
  9. Reboot during a maintenance window and verify that each service is both enabled and active.

The portable answer is therefore not a single universal MySQL command. It is the systemd workflow: identify the units on this machine, use enable --now on those units, and verify both enablement and health after boot.

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.