環境介紹
- 阿里雲 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 協議》,轉載必須註明作者和本文連結