Ubuntu16.04上使用Nginx部署Laravel应用程序

Laravel 是一个非常流行的PHP框架,以编码风格优雅著称,每行代码都非常简洁,富有表达力,并且拥有强大的组件开发生态,号称为web艺术家创造的PHP框架。我最近的个人项目尝试了下Laravel框架,部署的的时候遇到了一些坑,这里记录下。

我用的服务器是DigitalOcean的Ubuntu 16.04 LTS,其他公司的服务器应该也大同小异,有一些公司甚至简化了安装流程,几乎不用改动配置文件就可以让自己的程序跑起来(比如阿里云

安装依赖

更新apt-get

1
sudo apt-get update

安装 php7.0

1
sudo apt-get install php7.0-mbstring php7.0-fpm php7.0-xml composer unzip

配置MySql

安装

12
sudo apt-get install mysql-server

安装期间会提示你设置新的密码,一定要记住了。

配置

登录MySQL root 账号:

1
mysql -u root -p

然后创建一个名为 laravel 的数据库,数据库可以是别的名字:

1
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;

然后再创建一个允许访问这个数据库的用户,这里使用 laraveluser 作为用户名

1
GRANT ALL ON laravel.* TO 'laraveluser'@'localhost' IDENTIFIED BY 'password';

刷新权限

1
FLUSH PRIVILEGES;

退出

1
EXIT;

安装 pdo_mysql

pdo_mysql 是php需要用到的mysql的驱动

1
sudo apt-get install php7.0-mysql

安装nginx

安装

1
sudo apt install nginx

安装 laravel

这里使用laravel 发布在GitHub 上的演示程序 QuickStart 来作为例子。

先在nginx目录下创建一个叫quickstart的文件夹

1
sudo mkdir -p /var/www/html/quickstart

然后到新目录将项目git clone 下来

12
cd /var/www/html/quickstartgit clone https://github.com/laravel/quickstart-basic .

注意 git clone 最后有个点

然后安装laravel的依赖

1
composer install

配置 .env

1
vim .env

修改数据库字段:

123456789
APP_ENV=localAPP_DEBUG=trueAPP_KEY=b809vCwvtawRbsG0BmP1tWgnlXQfdsawAPP_URL=http://localhost

DB_HOST=127.0.0.1DB_DATABASE=laravelDB_USERNAME=laraveluserDB_PASSWORD=password

保存,退出

迁移数据库

1
php artisan migrate

配置 Nginx

将storage和bootstrap/cache目录的组所有权更改为www-data, 因为服务器需要向这两个文件夹里面写东西

12
sudo chgrp -R www-data storage bootstrap/cachesudo chmod -R ug+rwx storage bootstrap/cache

修改配置文件

1
vim /etc/nginx/sites-enabled/default
123456789101112131415161718192021222324252627282930
server {        listen 80;        listen [::]:80;        root /var/www/html/quickstart/public;

        # Add index.php to the list if you are using PHP        index index.php index.html index.nginx-debian.html;

        server_name _;                location / {

                try_files $uri $uri/ /index.php?$query_string;        }        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000        #        location ~ .php$ {                include snippets/fastcgi-php.conf;        #        #       # With php7.0-cgi alone:        #       fastcgi_pass 127.0.0.1:9000;        #       # With php7.0-fpm:                fastcgi_pass unix:/run/php/php7.0-fpm.sock;        }        # deny access to .htaccess files, if Apache's document root        # concurs with nginx's one        #        location ~ /.ht {                deny all;        }}

然后

1
sudo systemctl reload nginx

现在访问服务器IP地址就可以浏览网页了。


我遇到过的报错

Operation timed out (IPv6 issues)

You may run into errors if IPv6 is not configured correctly. A common error is:
The “https://getcomposer.org/version" file could not be downloaded: failed to
open stream: Operation timed out

1
sudo sh -c "echo 'precedence ::ffff:0:0/96 100' >> /etc/gai.conf"

No application encryption key has been specified.

1
php artisan key:generate

Laravel 5.4: Specified key was too long error

1 PDOException::(“SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes”)
/home/pi/Desktop/kxcrmserver/vendor/laravel/framework/src/Illuminate/Database/Connection.php:458
2 PDOStatement::execute()
/home/pi/Desktop/kxcrmserver/vendor/laravel/framework/src/Illuminate/Database/Connection.php:458

12345
use SupportFacadesSchema; 

public function boot() { 	Schema::defaultStringLength(191); }

nginx 的错误日志在这个位置:/var/log/nginx/error.log,大部分问题都需要查看日志然后单独解决。

原文:大专栏  Ubuntu16.04上使用Nginx部署Laravel应用程序

原文地址:https://www.cnblogs.com/petewell/p/11601689.html

时间: 2024-10-08 19:08:17

Ubuntu16.04上使用Nginx部署Laravel应用程序的相关文章

Docker在Ubuntu16.04上安装和部署Apache Storm

Docker在Ubuntu16.04上安装和部署Apache Storm 1.添加Docker源 sudo apt-get update 2.增加CA证书 sudo apt-get install apt-transport-https ca-certificates 3.添加GPG Key(一种加密手段) sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897

在ubuntu16.04上安装有道词典

参考来源:http://www.cnblogs.com/scplee/archive/2016/05/13/5489024.html 在ubuntu16.04上安装有道词典主要是解决依赖问题,我们在配置文件中把依赖文件删除,就行了 第一步:下载有道词典的.deb包 第二步:创建youdao文件,然后把有道的源文件解压到这个包里 sudo dpkg -X sudo dpkg -X ./youdao-dict_1.1.0-0-ubuntu_amd64.deb youdao 第二步:解压deb包中的c

在ubuntu16.04上安装eclipse

 在ubuntu16.04上安装eclipse 一.下载     首先我们需要安装jdk1.8及其以上,然后从官网:https://www.eclipse.org/downloads/上下载,需要注意的是官网的服务器太差,响应的速度非常慢,需要读者有点耐心,哈哈~~~然后选择第一个,就是我们要安装的eclipse的JDE了.    点击下载按钮,将会下载相应的位数和版本的eclipse:     到了这一步,我们要点击"click here"来下载,下载的时候也不提示,我们需要看一下浏

Ubuntu16.04上使用git

各系统git的使用除了安装方式不同,基本都一样,本文记录的是Ubuntu16.04上使用git 首先要区分git和github的区别: Git是分布式版本控制系统,也指基于命令行的版本管理工具github是个网站,用于远程托管你的项目,相当于云盘 在使用git前先去github注册一个自己的账户,邮箱,用户名,密码在以后都会使用到,不要乱填,也不要忘记. 面对纯英文的网站,可能你会感觉很懵,暂且不用管,我们常用的功能并不多,等你熟悉以后就会觉得so easy 注册完之后根据这个教程学习:http

在Ubuntu16.04上部署LXC容器管理系统的相关步骤

打算安装一个LXC linux容器管理的软件来分配使用资源并配置不同的编程环境,这样就方便大家的使用,步骤如下(宿主机的环境都搭建好了,对应显卡的驱动等): 参考网站: 简单入门和相关指令总结:https://www.ibm.com/developerworks/cn/linux/1312_caojh_linuxlxc/index.html Linux 容器的资源管理方法:https://www.ibm.com/developerworks/cn/linux/1404_caojh_lxc/ 其他

ubuntu下使用nginx部署Laravel

问题描述 Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htaccess文件移除路由里面的public字样,达到Pretty URLs效果,这这两天在完善各个版本的微信墙,准备部署在azure上,结果发现以前装的是nginx,mysql这样的环境,于是乎花了一点时间研究了一下如何部署,便就有了这篇文章,废话少说,上干货: 配置环境 sudo apt-get inst

Ubuntu16.04和Centos7 Yum部署zabbix3.4 结合钉钉智能报警

Ubuntu16.04和Centos7.4两种操作系统部署zabbix3.4及zabbix功能介绍和各种小问题解决办法,分享最新,最潮流,最干的干活,解决最实在的问题,此博客也是本人在对zabbix懵懂时期各种摸索排坑到正式上线,最后到生产中检测200多台生产机,至今为止为出现任何误报警,不报警等情况 首先我们了解下zabbix监控的基础概念,以及工作原理和框架:什么是zabbix:Zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的通知机制以让系统管理员快速定位/解决存在的各

vs2017的 .net core 在Ubuntu16.04上的风雨历程

2017年3月7日,vs2017正式发布,里面的.net core为v1.1.1版本.跨平台,为了实现这个伟大的目标,在漫长的过程中,狼狈的被坑了又坑...终于,哈哈,成功了. 共享一下,那些坑吧. 1. vmware 12.5 开始,用的vmware11,安装的是Ubuntu14.04. 第一个坑:Ubuntu我装的是32位的....同志们啊,.net core只能装在64位上的. 开始不知道,就用http://www.microsoft.com/net/core#linuxubuntu上的教

在Ubuntu16.04上使用Autofs

在Solaris上,autofs是默认安装的,可以通过/net/<NFS server>很方便地访问远程的共享目录.但在Linux上(例如Fedora或者Ubuntu),使用autofs则需要自己安装和配置.本文将以Ubuntu16.04作为NFS client, 简单介绍一下如何使用autofs. NFS server: Fedora 27 (IPv4 10.66.12.119) NFS client: Ubuntu 16.04 (IPv4 10.66.13.219) P.S. NFS se