Home Backend Development PHP Problem Several types of integration between php and apache

Several types of integration between php and apache

Oct 10, 2019 am 11:51 AM
apache php Integrate type

Several types of integration between php and apache

1. CGI

CGI (common gateway interface) is usually translated as common gateway interface, which is the connection between the HTTP server and other programs on the machine. An interface for communication that allows the web server to start additional programs to handle dynamic content when necessary. CGI is a protocol that defines how the Webserver communicates with CGI programs. The Webserver accepts the client's HTTP request, and then creates a process to execute the CGI program. The client's request is passed to the CGI program, and the result is returned to the Webserver after the CGI is executed.

The emergence of CGI has changed the WEB from static to dynamic. As the Web becomes more and more popular, many websites need dynamic pages to interact with viewers. With the development of network technology, the shortcomings of CGI methods have become more and more prominent. Each client request requires the process to be established and destroyed. Because HTTP needs to generate a dynamic page, the system must start a new process to run the CGI program. Continuous forking is a very time- and resource-consuming task.

2. FastCGI

As we all know, repeated loading of the CGI interpreter is the main reason for low CGI performance. If the CGI interpreter remains in memory and accepts FastCGI process management Server scheduling can provide good performance, scalability, Fail-Over features, etc.

FastCGI is a resident CGI that can be executed all the time. As long as it is activated, it will not take time to fork every time, and it also supports distributed computing (so that the PHP program interpretation and execution can be left to a separate php server), that is, it can be executed on a host other than the website server and accept requests from other website servers.

1. Load the FastCGI process manager (IIS ISAPI or Apache Module) when the Web Server starts;

2. The FastCGI process manager initializes itself and starts multiple CGI interpreter processes (in Multiple php-cgi.exe are visible in the task manager and are waiting for connections from the Web Server.

3. When the client request reaches the Web Server, the FastCGI process manager selects and connects to a CGI interpreter. The Web server sends CGI environment variables and standard input to the FastCGI subprocess php-cgi.exe.

4. After the FastCGI sub-process completes processing, it returns standard output and error information to the Web Server from the same connection. When the FastCGI child process closes the connection, the request is processed. The FastCGI child process then waits for and handles the next connection from the FastCGI process manager (running in WebServer). In normal CGI mode, php-cgi.exe exits here.

3. Module

To compile php into an apache module, you must consider the working mode of apache's MPM.

First we need to understand what MPM is:

MPM: Multi Path Modules (multi-path processing modules) are used to define the work of apache when responding to multiple user requests model. There are three MPM modes:

prefork (one request is responded to by one process);

worker (one request is responded to with one thread, multiple processes are started and each process generates multiple threads);

event (one process handles multiple requests);

PHP installed as a module does not have an independent process and is started as an apache module together with apache.

Among the above three MPM modes, the worker mode will occupy less memory than the prefork mode and perform better under high concurrency. Moreover, using the multi-process and multi-thread mixed mode, even if one thread hangs up, it will only affect other threads in the same process as the thread and will not affect other processes. However, if there are a particularly large number of threads using the keep-alive long connection method, the threads will be occupied until timed out, resulting in no available threads in high concurrency scenarios. The event mode uses a dedicated thread to handle these keep-alive threads, which better solves this problem.

Recommended tutorial: PHP video tutorial

The above is the detailed content of Several types of integration between php and apache. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP and Python: Comparing Two Popular Programming Languages PHP and Python: Comparing Two Popular Programming Languages Apr 14, 2025 am 12:13 AM

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.

How to set the cgi directory in apache How to set the cgi directory in apache Apr 13, 2025 pm 01:18 PM

To set up a CGI directory in Apache, you need to perform the following steps: Create a CGI directory such as "cgi-bin", and grant Apache write permissions. Add the "ScriptAlias" directive block in the Apache configuration file to map the CGI directory to the "/cgi-bin" URL. Restart Apache.

The Enduring Relevance of PHP: Is It Still Alive? The Enduring Relevance of PHP: Is It Still Alive? Apr 14, 2025 am 12:12 AM

PHP is still dynamic and still occupies an important position in the field of modern programming. 1) PHP's simplicity and powerful community support make it widely used in web development; 2) Its flexibility and stability make it outstanding in handling web forms, database operations and file processing; 3) PHP is constantly evolving and optimizing, suitable for beginners and experienced developers.

How to start apache How to start apache Apr 13, 2025 pm 01:06 PM

The steps to start Apache are as follows: Install Apache (command: sudo apt-get install apache2 or download it from the official website) Start Apache (Linux: sudo systemctl start apache2; Windows: Right-click the "Apache2.4" service and select "Start") Check whether it has been started (Linux: sudo systemctl status apache2; Windows: Check the status of the "Apache2.4" service in the service manager) Enable boot automatically (optional, Linux: sudo systemctl

PHP's Purpose: Building Dynamic Websites PHP's Purpose: Building Dynamic Websites Apr 15, 2025 am 12:18 AM

PHP is used to build dynamic websites, and its core functions include: 1. Generate dynamic content and generate web pages in real time by connecting with the database; 2. Process user interaction and form submissions, verify inputs and respond to operations; 3. Manage sessions and user authentication to provide a personalized experience; 4. Optimize performance and follow best practices to improve website efficiency and security.

How to delete more than server names of apache How to delete more than server names of apache Apr 13, 2025 pm 01:09 PM

To delete an extra ServerName directive from Apache, you can take the following steps: Identify and delete the extra ServerName directive. Restart Apache to make the changes take effect. Check the configuration file to verify changes. Test the server to make sure the problem is resolved.

PHP in Action: Real-World Examples and Applications PHP in Action: Real-World Examples and Applications Apr 14, 2025 am 12:19 AM

PHP is widely used in e-commerce, content management systems and API development. 1) E-commerce: used for shopping cart function and payment processing. 2) Content management system: used for dynamic content generation and user management. 3) API development: used for RESTful API development and API security. Through performance optimization and best practices, the efficiency and maintainability of PHP applications are improved.

PHP and Python: Code Examples and Comparison PHP and Python: Code Examples and Comparison Apr 15, 2025 am 12:07 AM

PHP and Python have their own advantages and disadvantages, and the choice depends on project needs and personal preferences. 1.PHP is suitable for rapid development and maintenance of large-scale web applications. 2. Python dominates the field of data science and machine learning.

See all articles