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

Use Nginx to build a PHP server

WBOY
WBOYOriginal
2016-08-08 09:28:411351browse

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>
After the installation is completed, start Nginx
<code>sudo /etc/init.d/nginx start
</code>
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>
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>
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>
Reload the Nginx configuration we just changed
<code>sudo /etc/init.d/nginx reload
</code>
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>
Enter the following content in phpinfo.php:
<code><?php
  phpinfo();
?>
</code>
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>
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>

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.

Statement:
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