Ubuntu 16 下部署 Laravel LNMP 环境
8

环境介绍

  • 阿里云 ECS 服务器
  • Ubuntu 16.04
  • Nginx
  • PHP 7.1
  • MYSQL 5.7
  • Laravel 5.6

在 Ubuntu 16 上部署 LNMP 环境
使用了 Laravel china 社区中 Summer 的教程 Ubuntu 14/16 下的 Laravel LNMP 线上环境自动部署脚本

此脚本用于在一台全新的 Ubuntu 14.04 LTS( Ubuntu 16 请使用这个脚本) 上部署适合 Laravel 使用的 LNMP 生产环境。
此脚本参照了 Homestead 环境设置脚本 ,并做了更加适用于生产环境的效率和安全调优。

也可参考另一篇不错的文章 阿里云 ECS 服务器 Ubuntu14.04 部署 Laravel 5.5 项目上线

FAQ

按照上面的步骤执行下来发现很多软件没有安装成功?

Ubuntu 16.04下,按照 summer 的教程操作之前,需依次执行:

apt-get update
apt-get -y upgrade
apt-get install -y software-properties-common curl 

Nginx 无法正常启动

原因是 80 端口被 apache2 占用,删除 apache2,依次执行

sudo apt-get --purge remove apache-common
sudo apt-get --purge remove apache
sudo find /etc -name "apache" |xargs rm -rf
sudo rm -rf /var/www
$ sudo rm -rf /etc/apache2

缺少一些 PHP 扩展

sudo apt-get -y install php7.1-mysql
sudo apt-get install php7.1-mbstring
sudo apt-get install php7.1-xml 
sudo apt-get install php7.1-gd

远程链接 MYSQL 数据库报 2003(“2013 - lost connection to mysql server at ")错误

解决方法:打开文件 /etc/mysql/mysql.conf.d/mysqld.cnf,找到 bing-address 将其注释掉

bind-address            = 127.0.0.1 

注释后

#bind-address

远程链接 MYSQL 数据库报 1130(1130-host ... is not allowed to connect to this MySql server")错误

解决方法:

$ mysql -u root -p

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 51
Server version: 5.7.22-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
mysql>use mysql;  
mysql>update user set host = '%' where user ='root';  
mysql>select host, user from user;  
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION //赋予任何主机访问数据的权限  
mysql>FLUSH PRIVILEGES //修改生效  
mysql>EXIT //退出MySQL  
service mysql restart 重启mysql  

MYSQL 数据库报1698错误 “1698 Access denied for user @”, root 用户不需要任何密码也可以登入

解决方法:

$ sudo mysql  
mysql> USE mysql;  
mysql> UPDATE user SET plugin='' WHERE User='root';  
mysql> FLUSH PRIVILEGES;  
mysql> exit;  
$ service mysql restart  

也有可能遇到忘记 MYSQL 数据库 root 用户登录密码

解决办法是打开文件 /etc/mysql/mysql.conf.d/mysqld.cnf 在最后加入一句 skip-grant-tables

图片.png | left | 696x81

然后重启 mysql

$ service mysql restart;

不需要密码进入

$ mysql -u root;

修改 root 密码

 $ use mysql;
 $ update user set authentication_string=password('123456') where user='root';
 $ flush privileges;

主要是记录一下自己遇到的问题
感谢 @Summer@Yvan 分享的文章

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!