您的位置:首页 > 运维架构 > Nginx

【nginx,apache】thinkphp ,laravel,yii2开发运行环境搭建

2017-02-19 21:40 761 查看

缘由

经常会有人问xx框架怎么配置运行环境,这里我就给贴出吉祥三宝(Yii2,Laravel5,Thinkphp5 )的Nginx和Apache的配置,供大家参考

Nginx

Yii2

server {
charset utf-8;
client_max_body_size 128M;
listen 80;
server_name yii.local.test;
root  /home/www/yii2/web;
index  index.php;

location ~* \.(eot|otf|ttf|woff)$ {
add_header Access-Control-Allow-Origin *;
}

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
include   fastcgi_params;
fastcgi_index    index.php;
fastcgi_param    SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_pass   127.0.0.1:9000;
try_files $uri =404;
}
}


Laravel5

server {
charset utf-8;
client_max_body_size 128M;
listen 80;
server_name laravel.local.test;
root  /home/www/laravel/public;
index  index.php;

location ~* \.(eot|otf|ttf|woff)$ {
add_header Access-Control-Allow-Origin *;
}

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
include   fastcgi_params;
fastcgi_index    index.php;
fastcgi_param    SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_pass   127.0.0.1:9000;
try_files $uri =404;
}
}

ThinkPHP5

server {
charset utf-8;
client_max_body_size 128M;
listen 80;
server_name tp5.local.test;
root  /home/www/tp5/public;
index  index.php;

location ~* \.(eot|otf|ttf|woff)$ {
add_header Access-Control-Allow-Origin *;
}

location / {
index    index.html index.php;
if ( -f $request_filename) {
break;
}

if ( !-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
break;
}
}

location ~ \.php {
set $script $uri;
set $path_info "";
if ($uri ~ "^(.+\.php)(/.+)") {
set $script $1;
set $path_info $2;
}
include   fastcgi_params;
fastcgi_index    index.php?IF_REWRITE=1;
fastcgi_pass   127.0.0.1:9000;
fastcgi_param    PATH_INFO    $path_info;
fastcgi_param    SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param    SCRIPT_NAME    $script;
try_files $uri =404;
}
}
PS:tp5在nginx支持这块做的不够好,因为tp框架需要依赖一个服务变量 path_info ,这个变量nginx已经不再使用了,所以需要自己定义

Apache

Yii2

<VirtualHost *:8888>
ServerName yii.local.test
DocumentRoot /home/www/yii2/web
#<Directory "/home/www/yii2/web">
#RewriteEngine on
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . index.php
#</Directory>
</VirtualHost>


PS: .htaccess 代码如下

RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . index.php

Laravel5

<VirtualHost *:8888>
ServerName laravel.local.test
DocumentRoot /home/www/laravel/public
#<Directory "/home/www/laravel/public">
#RewriteEngine on
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . index.php
#</Directory>
</VirtualHost>


PS: .htaccess 代码如下

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>

ThinkPHP5

<VirtualHost *:8888>
ServerName tp5.local.test
DocumentRoot /home/www/tp5/public/
</VirtualHost>


PS: .htaccess 代码如下

<IfModule mod_rewrite.c>
Options +FollowSymlinks -Multiviews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]
</IfModule>

最后

希望对大家有帮助

原文地址:【nginx,apache】thinkphp ,laravel,yii2开发运行环境搭建
标签:nginx mvc thinkphp tp yii yii2 laravel 艺术家 apache 运行环境 开发环境
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐