Operation and Maintenance
Linux Operation and Maintenance
How to install a LAMP stack (Apache, MySQL, PHP) on Linux
How to install a LAMP stack (Apache, MySQL, PHP) on Linux
Install Apache: run sudo apt install apache2 and start the service; 2. Install MySQL: execute sudo apt install mysql-server and run the security script; 3. Install PHP: use sudo apt install php libapache2-mod-php php-mysql; 4. Test integration: Create a test file for PHP to connect to MySQL. If the access page shows success, the LAMP stack works normally.

To install a LAMP stack (Linux, Apache, MySQL, PHP) on a Linux system—typically distributions like Ubuntu or Debian—you need to set up each component step by step. This guide walks you through installing Apache, MySQL, and PHP on an Ubuntu system. The process is straightforward and widely used for hosting dynamic websites and web applications.
Install Apache Web Server
Apache is one of the most popular web servers and serves as the foundation of the LAMP stack.
To install Apache, open a terminal and run:
sudo apt updatesudo apt install apache2
Once installed, start and enable Apache to launch at boot:
sudo systemctl start apache2sudo systemctl enable apache2
Verify it's working by opening a browser and navigating to http://localhost or your server's IP address. You should see the default Apache welcome page.
Install MySQL Database Server
MySQL stores and manages data for your web applications.
Install MySQL with:
sudo apt install mysql-serverAfter installation, secure the database server by running the security script:
sudo mysql_secure_installationThis prompts you to set a root password, remove anonymous users, disable remote root login, and remove test databases. Follow the prompts to enhance security.
Start and enable MySQL:
sudo systemctl start mysqlsudo systemctl enable mysql
Install PHP
PHP processes dynamic content and works with MySQL to serve data-driven websites.
Install PHP along with common extensions needed for web development:
sudo apt install php libapache2-mod-php php-mysqlTo verify PHP is working, create a test file in the web directory:
echo " " | sudo tee /var/www/html/info.phpRestart Apache to apply changes:
sudo systemctl restart apache2Visit http://localhost/info.php in your browser. You should see a page displaying PHP configuration details.
Test the LAMP Stack Integration
Create a simple PHP script that connects to MySQL to ensure all components work together.
First, log into MySQL and create a test database:
sudo mysql -u root -pCREATE DATABASE testdb;
CREATE USER 'testuser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Create a PHP file to test the connection:
sudo nano /var/www/html/testdb.phpPaste the following code (adjust credentials if needed):
\$servername = "localhost";\$username = "testuser";
\$password = "password";
\$dbname = "testdb";
//Create connection
\$conn = new mysqli(\$servername, \$username, \$password, \$dbname);
// Check connection
if (\$conn->connect_error) {
die("Connection failed: " . \$conn->connect_error);
}
echo "Connected successfully to MySQL using PHP.";\
\$conn->close();
?>
Save and visit http://localhost/testdb.php . If you see the success message, your LAMP stack is fully functional.
Basically, just install each component, configure basic security, and test connectivity. Once done, you're ready to deploy PHP-based applications like WordPress or custom web projects.
The above is the detailed content of How to install a LAMP stack (Apache, MySQL, PHP) on Linux. For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undress AI Tool
Undress images for free
AI Clothes Remover
Online AI tool for removing clothes from photos.
Undresser.AI Undress
AI-powered app for creating realistic nude photos
ArtGPT
AI image generator for creative art from text prompts.
Stock Market GPT
AI powered investment research for smarter decisions
Hot Article
Popular tool
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
Hot Topics
20518
7
13631
4
How to manage software packages using Dnf and Rpm in Linux?
Mar 07, 2026 am 01:50 AM
dnfinstall prompts packagenotfound because it queries the enabled warehouse rather than the local installation status; rpm-q queries the local RPM database, and the scopes of the two are different.
How to monitor system performance and resources in Linux? (Top & Htop)
Mar 06, 2026 am 01:04 AM
The total top CPU usage is not 100% because it is calculated based on a single core, and the maximum is 800% for an 8-core system; the htop terminal size error needs to be fixed with eval$(resize); the real memory pressure is available rather than used; top command line truncation can be solved with the -c parameter.
How to setup file sharing using Samba on Linux? (SMB Protocol)
Mar 13, 2026 am 12:33 AM
The main reason why Windows cannot see the Samba share is that the firewall blocks UDP137–139/TCP445 or NetBIOS name resolution fails; it is necessary to confirm that the workgroup is consistent, the interfaces are configured correctly, the file permissions match forceuser/forcegroup, and set doscharset=UTF-8 to solve Chinese garbled characters.
How to extend a Logical Volume (LVM) in Linux without downtime?
Mar 13, 2026 am 12:53 AM
Logical volumes and file systems can be expanded online. You need to expand the LV first and then the file system. It is recommended to use lvextend-r for automatic synchronization adjustment, but you must ensure that the LVM and file system tool versions are compatible.
How to check open ports and listening services in Linux? (Netstat & SS)
Mar 10, 2026 am 01:08 AM
Netstat displays fewer LISTEN ports than ss because it does not display process information by default that non-root users do not have access to; ss can read all listening sockets by default without process names, and sudonetstat-tulpn is required to display them completely.
How to set up SSH key authentication on Linux? (Passwordless Login)
Mar 11, 2026 am 12:46 AM
It is recommended to use ssh-keygen-ted25519 to generate a key pair, because it is faster, more secure, and has a shorter key than the default RSA; it is necessary to strictly set the ~/.ssh directory permissions to 700 and authorized_keys to 600, and use ssh-v to confirm whether the client is Offering public key and whether the server rejects it.
How to format disk partitions using the command line in Linux?
Mar 15, 2026 am 12:01 AM
When fdisk is stuck at the Command prompt, it is normally waiting for input. Enter q to exit safely; you must umount before mkfs, otherwise it may fail silently; partedmkpart does not support the specified file system type, and mkfs needs to be executed separately.
How to configure a static IP address on Linux? (Netplan & NetworkManager)
Mar 14, 2026 am 12:02 AM
Netplan reports "InvalidYAML" when configuring a static IP due to indentation errors, missing spaces after colons, or mixed tabs; gateway4 has been deprecated and routes to:default must be used instead; NetworkManager needs to be modified before down/up takes effect; the renderer field is used to determine the backend during coexistence; incorrect DNS configuration will cause ping to succeed but curl to fail.





