To make Apache support PHP, you need to install PHP and its Apache module. The steps are as follows: 1. Install PHP: sudo apt install php; 2. Install Apache's PHP module: sudo apt install libapache2-mod-php; 3. If the module is not automatically enabled, manually execute a2enmod php; 4. Restart Apache: sudo systemctl restart apache2. Make sure AllowOverride All is in the site configuration and set DirectoryIndex to include index.php. Create a phpinfo() page during testing to verify that the integration is successful. If it fails, check the MIME type, module loading status, permission restrictions and log file /var/log/apache2/error.log.
The combination of PHP and Apache is one of the most commonly used technology stacks to build dynamic websites. If you have already installed Apache and want it to support PHP, the steps are not complicated, but some key points need to be paid attention to.

Install the PHP module and enable it
Apache itself cannot directly parse PHP files, and needs to be implemented through the mod_php
module. Most Linux distributions have corresponding packages in the repository, for example, you can operate like this on Ubuntu:
- Install PHP:
sudo apt install php
- Install the PHP module of Apache:
sudo apt install libapache2-mod-php
After installation, the module is usually automatically enabled. If it does not take effect, you can manually enable it with the a2enmod php
command. After that, restart Apache: sudo systemctl restart apache2
.

Configure the Apache site to support PHP
By default, Apache's main configuration file or site configuration file (such as /etc/apache2/sites-available/000-default.conf
) does not require too many changes to support PHP. But there are a few places worth checking:
- Ensure that the
.php
file is allowed to be executed in<directory></directory>
configuration - If
.htaccess
is used, make sure thatAllowOverride All
is set - Set the default homepage to include
index.php
, for example:DirectoryIndex index.php index.html
A typical directory configuration fragment is as follows:

<Directory /var/www/html> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory>
Test whether PHP works properly
Writing a simple test page is the most straightforward way. Create an info.php
file and place it in the root directory of your website, with the following content:
<?php phpinfo(); ?>
Then access this file, for example, open a browser and enter http://localhost/info.php
. If you see the PHP details page, the integration is successful.
If you cannot see the page or download the .php
file, it may be a MIME type configuration problem, or Apache does not load the PHP module correctly.
Frequently Asked Questions Tips
When encountering problems, you can start from the following aspects:
- View the Apache error log:
/var/log/apache2/error.log
- Check if PHP is loaded correctly:
php -v
orapache2ctl -M | grep php
- Confirm that Apache has correctly parsed
.php
suffix: Check whether there are other conflicts in processing rules - SELinux or AppArmor may restrict access and temporarily shut down tests whether this is related to this
Basically that's it. As long as the module is installed correctly and the configuration is not omitted, it is natural for Apache to support PHP, but some details are easy to ignore, especially in terms of permissions and module loading order.
The above is the detailed content of Integrating PHP with Apache. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undress AI Tool
Undress images for free

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

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)

To correctly handle JDBC transactions, you must first turn off the automatic commit mode, then perform multiple operations, and finally commit or rollback according to the results; 1. Call conn.setAutoCommit(false) to start the transaction; 2. Execute multiple SQL operations, such as INSERT and UPDATE; 3. Call conn.commit() if all operations are successful, and call conn.rollback() if an exception occurs to ensure data consistency; at the same time, try-with-resources should be used to manage resources, properly handle exceptions and close connections to avoid connection leakage; in addition, it is recommended to use connection pools and set save points to achieve partial rollback, and keep transactions as short as possible to improve performance.

TheJVMenablesJava’s"writeonce,runanywhere"capabilitybyexecutingbytecodethroughfourmaincomponents:1.TheClassLoaderSubsystemloads,links,andinitializes.classfilesusingbootstrap,extension,andapplicationclassloaders,ensuringsecureandlazyclassloa

Use classes in the java.time package to replace the old Date and Calendar classes; 2. Get the current date and time through LocalDate, LocalDateTime and LocalTime; 3. Create a specific date and time using the of() method; 4. Use the plus/minus method to immutably increase and decrease the time; 5. Use ZonedDateTime and ZoneId to process the time zone; 6. Format and parse date strings through DateTimeFormatter; 7. Use Instant to be compatible with the old date types when necessary; date processing in modern Java should give priority to using java.timeAPI, which provides clear, immutable and linear

UseGuzzleforrobustHTTPrequestswithheadersandtimeouts.2.ParseHTMLefficientlywithSymfonyDomCrawlerusingCSSselectors.3.HandleJavaScript-heavysitesbyintegratingPuppeteerviaPHPexec()torenderpages.4.Respectrobots.txt,adddelays,rotateuseragents,anduseproxie

Pre-formanceTartuptimeMoryusage, Quarkusandmicronautleadduetocompile-Timeprocessingandgraalvsupport, Withquarkusoftenperforminglightbetterine ServerLess scenarios.2.Thyvelopecosyste,

Networkportsandfirewallsworktogethertoenablecommunicationwhileensuringsecurity.1.Networkportsarevirtualendpointsnumbered0–65535,withwell-knownportslike80(HTTP),443(HTTPS),22(SSH),and25(SMTP)identifyingspecificservices.2.PortsoperateoverTCP(reliable,c

Java's garbage collection (GC) is a mechanism that automatically manages memory, which reduces the risk of memory leakage by reclaiming unreachable objects. 1.GC judges the accessibility of the object from the root object (such as stack variables, active threads, static fields, etc.), and unreachable objects are marked as garbage. 2. Based on the mark-clearing algorithm, mark all reachable objects and clear unmarked objects. 3. Adopt a generational collection strategy: the new generation (Eden, S0, S1) frequently executes MinorGC; the elderly performs less but takes longer to perform MajorGC; Metaspace stores class metadata. 4. JVM provides a variety of GC devices: SerialGC is suitable for small applications; ParallelGC improves throughput; CMS reduces

Gradleisthebetterchoiceformostnewprojectsduetoitssuperiorflexibility,performance,andmoderntoolingsupport.1.Gradle’sGroovy/KotlinDSLismoreconciseandexpressivethanMaven’sverboseXML.2.GradleoutperformsMaveninbuildspeedwithincrementalcompilation,buildcac
