Ubuntu 16 下部署 Laravel LNMP 環境

SevDot發表於2018-06-14

環境介紹

  • 阿里雲 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 分享的文章

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章