Nginx is a high-performance, high-concurrency web server software, and PHP is a common development language that can be used by Nginx. However, when using Nginx, you may encounter the problem of PHP files not executing. This is usually caused by PHP execution timeout. Well, this article will introduce how to solve this problem by setting the PHP execution time in Nginx.
Step one: Check the current PHP execution time settings
Before you start adjusting the PHP execution time of Nginx, you need to understand the current settings. You can check the current PHP execution time setting by executing the following command:
php -i | grep "max_execution_time"
This will output the current PHP execution time limit. By default, it is set to 30 seconds.
Step 2: Modify the PHP execution time settings in Nginx
To change the PHP execution time settings in Nginx, you need to edit the Nginx website configuration file. In this example, we assume that your Nginx website configuration file is located in the /etc/nginx/sites-available/ directory and named it example.com.
Open the example.com file and find the following code:
location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
In this code block, you need to add the fastcgi_read_timeout directive. This directive is used to set the execution time of the PHP script in seconds.
location ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; fastcgi_read_timeout 300; # 5 minutes }
In this example, we extend the PHP execution time to 5 minutes.
Step 3: Reload Nginx configuration and test
You have changed the PHP execution time settings in Nginx. Now, you need to reload the Nginx configuration file for the changes to take effect.
sudo systemctl reload nginx
Next, you can test whether the PHP execution time has been changed successfully. You can test this by creating a simple PHP script.
<?php sleep(300); # sleep for 5 minutes echo "Hello World!"; ?>
Save the above code as test.php and upload it to the web directory in your Nginx server. Now you can access the file in your web browser and wait 5 minutes to see if the output is correct.
Summary
Now, you have learned how to solve the problem of PHP script not executing by setting the PHP execution time in Nginx. By following the steps in this article to set it up, you can ensure that your PHP script executes completely without worrying about PHP execution timeouts.
The above is the detailed content of What should I do if the nginx php file does not take execution time?. For more information, please follow other related articles on the PHP Chinese website!