Ubuntu 16 下部署 Laravel LNMP 环境
环境介绍#
- 阿里云 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
然后重启 mysql
$ service mysql restart;
不需要密码进入
$ mysql -u root;
修改 root 密码
$ use mysql;
$ update user set authentication_string=password('123456') where user='root';
$ flush privileges;
主要是记录一下自己遇到的问题
感谢 @Summer,@Yvan 分享的文章
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: