Ubuntu 14.04 上使用 Nginx 部署 Laravel
本教程将会涉及以下工具:
- Ubuntu 14.04 LTS
- PHP 5.5
- MySQL
- Laravel 5.0
- Nginx
参考文章:Ubuntu 14.04 上使用 Nginx 部署 Laravel
此文章对原文章基于 Laravel 4 有所修改添加,同样适用于服务器上部署
开发推荐通过 Vagrant 搭建虚拟机环境进行练习。
简介
Laravel 是一个开源的、现代的 PHP 开发框架,他的目标是提供一个简单并且优雅的开发方式,让开发人员可以快速的开发出一个完整的 web 应用程序。
在本指南中,我们将讨论如何在 Ubuntu 14.04 (LTS) 安装 Laravel。我们将使用 Nginx 作为我们的 web 服务器和 Laravel 5.0 版本。
安装服务器组件
首先,我们需要更新软件包,以确保我们有一个新的可用的软件包列表。然后我们可以安装必要的组件:
sudo apt-get update //获得最近的软件包的列表
sudo apt-get install nginx //安装Nginx服务器
sudo apt-get install php5-fpm //安装php5
sudo apt-get install php5-cli //安装php5在命令行运行的接口
sudo apt-get install php5-mcrypt //安装php5加密拓展库
sudo apt-get install php5-mysql //安装php的MySQL驱动
sudo apt-get install git //安装git神器
命令将安装 Nginx 作为我们的 web 服务器和 PHP 语言环境。安装 git
是因为 composer
工具的基础组件是 git,我们将使用 composer 安装 Laravel 及更新相关的包。
修改 PHP 配置文件
打开 PHP 配置文件。
sudo vim /etc/php5/fpm/php.ini
找到 cgi.fix_pathinfo
修改为 0
,如下:
cgi.fix_pathinfo=0
保存并退出,因为这是一个可能的安全漏洞,详情可以看鸟哥的文章!
使用 php5enmod 启用 MCrypt 扩展:
sudo php5enmod mcrypt
现在我们需要重启下 php5-fpm 服务:
sudo service php5-fpm restart
PHP 已经配置完成。
配置 Nginx 和 Web 目录
创建网站目录 :
sudo mkdir -p /var/www/laravel
打开 nginx 默认配置文件:
sudo vim /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;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
修改如下:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
# 设定网站根目录
root /var/www/laravel/public;
# 网站默认首页
index index.php index.html index.htm;
# 服务器名称,server_domain_or_IP 请替换为自己设置的名称或者 IP 地址
server_name server_domain_or_IP;
# 修改为 Laravel 转发规则,否则PHP无法获取$_GET信息,提示404错误
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP 支持
location ~ \.php$ {
try_files $uri /index.php =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
修改完成,我们需要重启下 nginx 服务:
sudo service nginx restart
安装 Composer
在命令行执行:
cd ~
curl -sS https://getcomposer.org/installer | php
在当前目录会发现 composer.phar
这个文件,这个文件就是 Compoesr 的执行文件,我们需要移到 /usr/local/bin
, 这样全局就能调用 Composer 。
sudo mv composer.phar /usr/local/bin/composer
Composer 安装完成。
安装 Laravel
1.我们用composer来安装 Laravel 5.0 到 /var/www/laravel 。
sudo composer create-project laravel/laravel laravel 5.0.22
2.用Git克隆远程仓库中已存在的项目可以参考廖雪峰的文章,这也是一篇适合初学者学习Git的好文章
赋予写的权限
更改网站目录所属组:
sudo chown -R :www-data /var/www/laravel
/var/www/laravel
该目录存储 Laravel 各种服务的临时文件 , 所以需要写的权限:
sudo chmod -R 775 /var/www/laravel
完成
在浏览器打开服务器的 IP 地址或域名,应该看到你的网站在运行。
这时候你就可以根据自己的需要完善自己的代码了,例如数据库迁移之类的操作可以参考岁寒的文章
Ubuntu 14.04 上使用 Nginx 部署 Laravel的更多相关文章
- deepsooncms在Ubuntu 14.04上部署教程
deepsooncms在Ubuntu 14.04上部署教程 一.安装mono1.在命令行运行sudo apt-key adv --keyserver keyserver.ubuntu.com --re ...
- [转] 如何在 Ubuntu 14.04 上通过 apt-get 安装 Apache Tomcat 7
PS:war 部署路径:/var/lib/tomcat7/webapps http://www.linfuyan.com/how-to-install-apache-tomcat7-on-ubuntu ...
- 翻译:在Ubuntu 14.04上安装FTP服务器的方法
说明: 1.原文地址:http://www.krizna.com/ubuntu/setup-ftp-server-on-ubuntu-14-04-vsftpd/ 2.今天要做一个网络日志的迁移程序,搬 ...
- Ubuntu 14.04 上安装 Gurobi
参考: Installing Gurobi 7 on Linux Ubuntu 14.04 上安装 Gurobi 1.在gurobi上创建一个账户,并登陆: 2.从gurobi optimizer上下 ...
- 在Ubuntu 14.04 上安装 FTP 服务
1. sudo apt-get update 2. sudo apt-get install vsftpd 3. adduser sammy Assign a password when prompt ...
- 如何在 Ubuntu 14.04 上安装 Elasticsearch,Logstash 和 Kibana
介绍 在本教程中,我们将去的 Elasticsearch 麋鹿堆栈安装 Ubuntu 14.04 — — 那就是,Elasticsearch 5.2.x,Logstash 2.2.x 和 Kibana ...
- 怎样利用Heartbeat与Floating IP在Ubuntu 14.04上创建高可用性设置
提供 ZStack社区 内容简单介绍 Heartbeat是一款开源程序,负责将集群基础设施容量--包括集群成员与消息收发--交付至客户server. Hearbeat在高可用性server基础设施其中 ...
- 如何在Ubuntu 16.04上安装Nginx
原文链接https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 介绍 Nginx是世 ...
- Ubuntu 14.04上安装caffe
本来实在windows 10上尝试安装caffe,装了一天没装上,放弃; 改在windows上装ubuntu的双系统,装了一个下午,不小心windows的系统盘被锁死了,也不会unlock?只好含泪卸 ...
随机推荐
- 简述Linq中.ToList(), .AsEnumerable(), AsQueryable()的区别和用法
[TOC] 这3个方法的功能完全不同, 应按照具体业务场景使用. AsQueryable() 先说说什么是 IQueryable IQueryable 是当前的 data provider 返回的类型 ...
- org.gradle.process.internal.ExecException:
com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process ...
- 基于jQuery的Jsonp跨域[Get方式]
由于目前的项目需要无刷新的跨域操作数据,整理了下自己使用的基于jQuery的Jsonp跨域[Get方式]. 代码如下: Javascript部分 $(function(){ $.ajax({ asyn ...
- 如何将js与HTML完全脱离
先举出一个例子: var sound='Roar!'; function myOrneryBeast(){ alert(this); this.style.color='green';//this指代 ...
- ELMAH+MVC4+SQLite 错误日志
任何程序我想无论是在调试开发阶段还是上线运营阶段,都能够使人“放心”,不要出什么意外,也不要玩什么心跳:那就需要比较到位和及时的异常与错误日志模块. 本文将简要描述ELMAH.MVC4与SQLite这 ...
- 重置出错?微软Win10平板Surface Pro 4重装系统教程详解
重置出错?微软Win10平板Surface Pro 4重装系统教程详解 2015-12-11 15:27:30来源:IT之家作者:凌空责编:凌空 评论:65 Surface Pro 4系统重置出错该怎 ...
- 常用Vxworks编程API
vxWorks编程API 一.官方的Program Guide 位于安装目录下:\docs\vxworks\guide\index.html 二.常用的库: #i nclude "taskL ...
- HDU 5727 Necklace(二分图匹配)
[题目链接]http://acm.hdu.edu.cn/showproblem.php?pid=5727 [题目大意] 现在有n颗阴珠子和n颗阳珠子,将它们阴阳相间圆排列构成一个环,已知有些阴珠子和阳 ...
- 使用Swift的代理,闭包来封装一个公用协议减少垃圾代码
iOS开发中,如果不进行适当的封装,使用协议或者继承类来进行开发,你就会遇到传说中的ViewController(以后简称VC) Hell的问题…… 比如说,我们先声网App中为了调用接口,做简单的判 ...
- 新辰:4G时代怎样利用手机进行移动APP营销?
未来的时代是4G时代,新辰手机用户的搜索量不在电脑端之下.那么,我们要怎样用手机进行营销呢?手机站点的竞价文章,要怎样去写比較好?手机站点要做专题吗?手机站点的优化思路在哪里?手机的系统不同,在不同的 ...