Linux使用nginx部署Laravel
问题描述
Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htaccess文件移除路由里面的public字样,达到Pretty URLs效果,这这两天在完善各个版本的微信墙,准备部署在azure上,结果发现以前装的是nginx,mysql这样的环境,于是乎花了一点时间研究了一下如何部署,便就有了这篇文章,废话少说,上干货:
配置环境
sudo apt-get install nginx php5-fpm php5-cli php5-mcrypt git
这里会安装 nginx 作为web server,同时会安装一些PHP工具,安装git是为了后期部署的时候拉取代码
更改PHP配置
安装完上诉组件之后,我们需要进行一些配置,首先需要打开fpm/php.ini,去更改fix_pathinfo为0
sudo vim /etc/php5/fpm/php.inicgi.fix_pathinfo=0
这里的设置是让PHP在请求的文件不在的时候别去尝试执行相似名字的脚本,防止攻击者欺骗PHP去执行一些不应该执行的代码,最后我们需要显式地启用MCrypt扩展并重启php5-fpm 服务以便重新载入让刚才的更改
sudo php5enmod mcryptsudo service php5-fpm restart
配置Nginx
下面我们要配置一下nginx,里面存在一些路径,这里我是使用apt-get安装的nginx,如果是手动编译安装的话请自寻路径,首先我们要创建一个目录以便放置我们的laravel代码,这里我直接放到/usr/share/nginx/laravel
sudo mkdir -p /usr/share/nginx/laravel
下面需要配置我们的nginx
sudo nano /etc/nginx/sites-available/default
这里你看到的大概是这样的
server {listen 80 default_server;listen [::]:80 default_server ipv6only=on;root /usr/share/nginx/html;index index.html index.htm;# Make site accessible from http://localhost/server_name localhost;location / {# First attempt to serve request as file, then# as directory, then fall back to displaying a 404.try_files $uri $uri/ =404;# Uncomment to enable naxsi on this location# include /etc/nginx/naxsi.rules}#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/html;#}#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;#}#}
需要把它替换成下面的配置文件,其中server_name要替换成你自己的域名或者ip,其中root里面的内容就是刚才我们创建laravel的目录并且多了一个public目录,这里public目录的作用就是去掉我们每次请求laravel路由里面的public,让路由语义更强
server {listen 80 default_server;listen [::]:80 default_server ipv6only=on;root /usr/share/nginx/laravel/public;index index.php index.html index.htm;server_name server_domain_or_IP;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {try_files $uri /index.php =404;fastcgi_split_path_info ^(.+\.php)(/.+)$;#With php5-fpm:fastcgi_pass unix:/var/run/php5-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}
做完这些我们的工作基本就完成了,在目录中部署写好的laravel程序,打开绑定的域名就可以看到效果了如下图

后记
今天有人在QQ上问我部署的问题,一般来讲可以使用ftp,在高级一点可以使用sftp,或者搭建svn,不过自从有了git以后,我一般是先在git上创建一个项目,本地开发好push上去,在测试服务器上pull下来,测试通过后,在生产服务器上pull下来,这个足够应对大部分场景了,不过在搭建分布式项目的时候我一般是写一个自动化的脚本去替我完成那些重复的劳动,令最近这阶段心情足够好的时候我会用docker。
注;github上面公开项目是免费的,但是私有项目要花钱,而且这两天回家我家的网也连不上github了,所以国内我推荐做‘不可告人’的项目的时候使用oschina的git,速度相当赞,而且每个账号可以免费创建1000个项目,公开或者私有均可。这半年的新项目如下图都放到了oschina上了,.NET项目也放弃了TFS(因为速度原因,有时会disconnect),除了偶尔的一些冲突vs没法解决需要上git的命令行,体验还是相当不错的

Linux使用nginx部署Laravel的更多相关文章
- Ubuntu 14.04 上使用 Nginx 部署 Laravel
本教程将会涉及以下工具: Ubuntu 14.04 LTS PHP 5.5 MySQL Laravel 5.0 Nginx 参考文章:Ubuntu 14.04 上使用 Nginx 部署 Laravel ...
- Linux nginx部署laravel
Composer Composer 是 php 的一个依赖管理工具.它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们.运行 Composer 需要 PHP 5.3.2+ 以上版本.一些敏感 ...
- ubuntu下使用nginx部署Laravel
问题描述 Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htacce ...
- s11 day Linux 和nginx 部署
https://www.cnblogs.com/pyyu/p/9481344.html ,开机初始化的配置 iptables -F 清空防火墙 /etc/init.d/iptables stop ...
- Linux +Docker +Nginx 部署代理转发初探
很多开发人员仅仅只会码代码,如果让开发人员部署一些深入点的东西,或者做负载均衡等,很多开发人员估计就懵逼了,作为一个专业的开发还需要懂一些基本的运维知识:虽然说在互联网行业中,中小企业都有一个牛逼的运 ...
- linux下nginx部署以及配置详解
1.下载源码包解压编译 启动多个,请看:在linux系统下安装两个nginx以及启动 查看nginx包路径:http://nginx.org/download/,两种下载方式: 1.在官网下载使用Xf ...
- Linux上Nginx部署配置--二级域名配置
http://www.cnblogs.com/yaunion/archive/2013/03/16/2962385.html http://blog.csdn.net/LBinin/article/d ...
- Linux上Nginx部署配置
一.下载软件 openssl-fips-2.0.10.tar.gz pcre-8.40.tar.gz zlib-1.2.11.tar.gz nginx-1.10.2.tar.gz gcc-c++ 下载 ...
- Django Linux环境下部署CentOS7+Python3+Django+uWSGI+Nginx(含Nginx返回400问题处理、防火墙管理)
本文将介绍如何在Linux系统上部署Django web项目,本次部署基于下面的架构: CentOS7+ Python3.5 + Django1.11 + uWSGI + Nginx 亲测可行!!按照 ...
随机推荐
- 【BestCoder #48】
与之前一样,秒刷A和B,然后就永远卡在了C B也因为少看一句话被Hunt掉了 说说C的做法吧(分块大法好 给定一个序列,每次询问区间l-r,求∑(ai^bi),其中bi是指ai在区间中的出现次数,ai ...
- [bzoj4372] 烁烁的游戏 [动态点分治+线段树+容斥原理]
题面 传送门 思路 观察一下题目,要求的是修改"距离点$u$的距离一定的点权值",那这个就不能用传统的dfs序类算法+线段树维护,因为涉及到向父亲回溯的问题 看到和树上距离相关的东 ...
- [poj] 3180 the cow prom
原题 这是一道强连通分量板子题. 我们只用输出点数大于1的强连通分量的个数! #include<cstdio> #include<algorithm> #include< ...
- 让JS帮你决定午餐吃什么吧
最愁就是每天中午吃什么了,有空就做了个 JavaScript 轮播随机选择.会轮播预先自定义的菜单中,然后点选定的时候确定一款.代码可以查看本页源代码获得,你可以自定义修改菜单数组. 效果演示 准备选 ...
- 《c程序设计语言》读书笔记-5.4-指针实现strend
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <string.h> ...
- 让Vs2010支持 Css3+HTML5
第一步. 先到微软官方下载一个 Microsoft Visual Studio 2010 sp1 . 给传送门:.microsoft.com/downloads/zh-cn/details.aspx? ...
- HDU2669 Romantic
Description The Sky is Sprite. The Birds is Fly in the Sky. The Wind is Wonderful. Blew Throw the Tr ...
- matlab 命令行快捷键
- iOS_自定义毛玻璃效果
http://www.2cto.com/kf/201408/329969.html 最终效果图: 关键代码: UIImage分类代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...
- UVA 753 A Plug for UNIX
最大流解决 . 设置源点 0,连接所有设备(device) .设备-插头 -汇点 #include <map> #include <set> #include <list ...