下面我将给出“Nginx下ThinkPHP5的配置方法详解”的完整攻略,步骤如下:
第一步,安装Nginx
Nginx是一款高性能的HTTP和反向代理服务器,可用于代理HTTP、HTTPS、SMTP、POP3、IMAP等协议。在官网上下载对应的版本,安装好后可以通过命令行启动nginx服务。
第二步,安装PHP和相关扩展
安装好Nginx之后,需要安装PHP及相关扩展。这里我们以CentOS 7系统为例,安装所需的命令如下:
yum install -y php-fpm php-mysql php-gd php-mcrypt php-mbstring
安装完成后,需要修改php.ini文件,将error_reporting和display_errors等参数设置为On,以方便开发调试。
第三步,安装Composer并创建项目
Composer是PHP的依赖管理工具,可用于快速创建和管理项目。在cmd中切换到Nginx的根目录下,然后安装Composer,命令如下:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
安装完成后,使用下面的命令创建一个名为myapp的项目:
composer create-project topthink/think myapp --prefer-dist
第四步,配置Nginx
配置Nginx需要修改nginx.conf和vhost虚拟主机文件。
1. 修改nginx.conf文件
首先需要在http的server节点里添加如下配置:
server {
listen 80;
server_name yourdomain.com;
root /your/path/to/thinkphp5/public;
index index.php index.html index.htm;
#相当于http://yourdomain.com/inde.php?r= 中r后的所有参数到/index.php/r/xxxxx中解析
location / {
try_files $uri $uri/ /index.php?s=$uri&$args;
}
#将所有的.php文件请求全部转发到php-fpm去处理
location ~ .*\.(php|php7)?$ {
#fastcgi_pass与php-fpm的监听地址保持一致。
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
set $real_script_name $fastcgi_script_name;
if ($fastcgi_script_name ~ "^(.+?\.php)(/.+)$") {
set $real_script_name $1;
set $path_info $2;
}
fastcgi_param SCRIPT_FILENAME $document_root$real_script_name;
fastcgi_param SCRIPT_NAME $real_script_name;
fastcgi_param PATH_INFO $path_info;
#可选的,根据实际环境进行设置开启或者关闭。
fastcgi_read_timeout 3600s;
fastcgi_connect_timeout 3600s;
fastcgi_send_timeout 3600s;
client_max_body_size 100m;
}
#禁止访问的文件或者扩展
location ~ .*(.bak|~)$ {
access_log off;
log_not_found off;
deny all;
}
#一些静态文件,按照自己需要进行添加
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|css|js|ico)$ {
expires 30d;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
}
2. 修改vhost虚拟主机文件
需要把yourdomain.com改成自己的域名,然后将以上配置保存为一个文件,比如test.thinkphp5.conf,放在Nginx的conf.d目录下。
## 第五步,测试和Debug
完成以上步骤后,可以使用Nginx加上PHP FPM部署ThinkPHP5了,启动Nginx和PHP FPM服务后,访问localhost/myapp/,便可以看到ThinkPHP5的欢迎页面了。
这里再展示一下修改nginx.conf文件中的location节点配置示例:
location / {
try_files $uri $uri/ /index.php?s=$uri&$args;
}
解释如下:
- $uri 和 $uri/:Nginx会检查路径中的文件是否存在,如果存在就直接访问,如果不存在就访问下一个参数; $uri/ 可以访问到文件夹下的index文件。
- /index.php?s=$uri&$args:也就是框架的路由地址/pathinfo接口的入口文件。
还有设置变量的参数示例:
set $real_script_name $fastcgi_script_name;
这个参数的作用是相当于进行全局变量的操作。
以上就是Nginx下ThinkPHP5的配置方法详解,希望对大家有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Nginx下ThinkPHP5的配置方法详解 - Python技术站