Home > Backend Development > PHP Tutorial > Use Nginx to build a PHP server

Use Nginx to build a PHP server

WBOY
Release: 2016-08-08 09:28:41
Original
1359 people have browsed it

Generally, we use Apache as the PHP parsing server. This time, we use Nginx, a powerful reverse proxy server, to build the PHP server. Let's take the Linux distribution Ubuntu as an example to build an Nginx PHP server.

First download and install Nginx
<code>sudo apt-get install nginx
</code>
Copy after login
After the installation is completed, start Nginx
<code>sudo /etc/init.d/nginx start
</code>
Copy after login
At this time, open the browser and enter http://localhost/ to see the Welcome to nginx! page, indicating that our Nginx server is installed successfully Next, install PHP5
<code>sudo apt-get install php5-fpm
</code>
Copy after login
After successful installation, we need to modify the virtual machine configuration of Nginx so that the php files requested by the browser can be parsed by php cgi. Edit the Nginx virtual machine configuration file /etc/nginx/sites-available/default
<code>sudo vim /etc/nginx/sites-available/default
</code>
Copy after login
and then modify the configuration inside to the following configuration content:
<code># You may add here your
# server {
#   ...
# }
# statements for each of your virtual hosts to this file

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

server {
    listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on; ## listen for ipv6

    root /usr/share/nginx/www;
    index index.html index.htm index.php;

    # Make site accessible from http://localhost/
    server_name localhost;

    location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to index.html
        try_files $uri $uri/ /index.html;
        # Uncomment to enable naxsi on this location
        # include /etc/nginx/naxsi.rules
    }

    location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1;
        deny all;
    }

    # Only for nginx-naxsi : process denied requests
    #location /RequestDenied {
        # For example, return an error code
        #return 418;
    #}

    error_page 404 /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/www;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini

        # With php5-cgi alone:
        fastcgi_pass 127.0.0.1:9000;
        # With php5-fpm:
        #fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny all;
    }
}

# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#   listen 8000;
#   listen somename:8080;
#   server_name somename alias another.alias;
#   root html;
#   index index.html index.htm;
#
#   location / {
#       try_files $uri $uri/ /index.html;
#   }
#}

# HTTPS server
#
#server {
#   listen 443;
#   server_name localhost;
#
#   root html;
#   index index.html index.htm;
#
#   ssl on;
#   ssl_certificate cert.pem;
#   ssl_certificate_key cert.key;
#
#   ssl_session_timeout 5m;
#
#   ssl_protocols SSLv3 TLSv1;
#   ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv3:+EXP;
#   ssl_prefer_server_ciphers on;
#
#   location / {
#       try_files $uri $uri/ /index.html;
#   }
#}
</code>
Copy after login
Reload the Nginx configuration we just changed
<code>sudo /etc/init.d/nginx reload
</code>
Copy after login
Then we go to /usr/ Create a new phpinfo.php file in the share/nginx/www/ directory, you can view the configuration and environment information of PHP
<code>sudo vim /usr/share/nginx/www/phpinfo.php
</code>
Copy after login
Enter the following content in phpinfo.php:
<code><?php
  phpinfo();
?>
</code>
Copy after login
We enter http://localhost/ in the browser phpinfo.php You can see the PHP information page, including version and other information. PHP5 also has many supported modules. You can choose to install them if necessary. Generally, these modules start with php5-, such as php5-mysql. To install them in Ubuntu, just
<code>sudo apt-get install php5-mysql
</code>
Copy after login
Don’t forget to restart PHP5 after installing the PHP module. Oh, execute the following command to restart
<code>sudo /etc/init.d/php5-fpm restart
</code>
Copy after login

The above introduces the use of Nginx to build a PHP server, including aspects of the content. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template