配置 Nginx + PHP, 并开始第一个PHP程序

| 选择喜欢的代码风格  

在PHP编译安装那一节里,我们简单说了下安装PHP之后,Nginx的一些配置,这里给出一份较为详细的配置说明:

Nginx Http 段的配置实例


注意思考浏览器同源策略 SAMEORIGINserver_tokens 的用途。提示: iframe

user  nginx;
worker_processes  8;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

worker_rlimit_nofile 204800;
events {
    worker_connections  204800;
    use epoll;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;
    server_tokens   off; #隐藏Nginx版本号,避免敏感信息
    keepalive_timeout  65;

    gzip             on; #开启GZIP
    gzip_min_length  1k;
    gzip_comp_level  2;

    #这里类型自己加,具体略过 ..
    gzip_types       text/plain application/x-javasc .. application/json; 

    tcp_nodelay on;

    #默认配置,略过 ..	
    log_format main '$remote_addr{|}$remote_user{|}$time_local{|} ..';
	
    #思考这个浏览器同源策略 SAMEORIGIN 的用途
    add_header X-Frame-Options SAMEORIGIN; 

    #conf.d目录将包含所有的server段的配置,比如 conf.d/yourhost.com.conf ..
    include conf.d/*.conf; 

}

Nginx Server 段的配置实例


注意思考,这里为什么这么奇怪的配置 server_name _,为什么要返回403?提示:你可以试试其他域名指过来主机头的效果就明白了。

server{
        listen 80 default_server;
        server_name _;
        return 403;

}

server {
    listen       80;
    server_name yourhost.com #你的域名
    root   /Data/webapps/xxx;
    location ~ /.svn/ { #禁止 svn 信息
      deny all;
    }
    location ~ /.git/ { //禁止 git 信息
        deny all;
    }     

    location / {
        index   index.php index.html index.htm;

    }

    if (!-e $request_filename){ #urlrewrite 示例
        #rewrite ^/(.*)\.html$ /$1.php;
    }

    fastcgi_intercept_errors on; #注意这样配置,PHP的错误才会走50X页面
    error_page 500 502 503 504 = /50x.html; #50X错误
    error_page  404              /404.html; #404页面

    location ~ \.php$ {
	#你选择的PHP处理方式
        fastcgi_pass        unix:/Data/apps/php-7.2.8/php-fpm.sock; 
        fastcgi_index       index.php;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        include fastcgi_params;
        include fastcgi.conf;
    }
	
    #这些做本地缓存
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 
    {
      expires      30d; #30d是30天
    }

    location ~ .*\.(js|css)?$
    {
      expires      10d;
    }

    access_log  off; //可以不记录访问日志
    error_log /Data/logs/youhost.error.log error; //错误日志
}

PHP Hello World!


至此,我们的PHP环境已经搞定,按照惯例,第一个程序,让我们一起用 PHP 来 Say Hello World!

文件名假定是 hello.php

<?php
echo "Hello World!"; //输出在PHP里用echo
?>

//上面将输出 Hello World!

在浏览器里,比如 http://localhost/hello.php 来浏览查看输出,或者通过在命令行里,CLI 方式执行 PHP 查看运行结果(后面章节会介绍如何用 CLI 方式运行 PHP)。

这里给大家介绍一个代码在线运行工具,可以线上运行一些简单的PHP作为学习使用,地址如下(除了可以运行PHP,也可以运行C/C++、Python、Go、Java、NodeJS、Lua、Groovy、Bash..):


亲自试一下,运行你的 PHP 代码



发表评论