LNMP 環境部署 Laravel 專案的一些總結

EDISONYANG發表於2018-10-16

首先我們需要搭建LNMP環境
這裡我使用的是lnmp.org的一鍵安裝包
安裝教程

環境搭建完畢後,接著部署laravel,期間遇到了很多坑,費了很大勁。最終不負所望,成功搭建。
首先把程式碼放在/home/wwwroot/目錄中,接著我們就是要新增虛擬主機。
按照lnmp.org給出的教程
配置好之後,配置檔案是在/usr/local/nginx/conf/vhost
配置完成後 轉到網站目錄
cd /home/wwwroot/
我們需要對網站目錄進行許可權設定chown www:www -R www.yangxuli.com
還需要給予storage目錄 以及storage裡的檔案許可權
cd www.yangxuli.com
執行 chown -R 777 storage
chown -R 777 storage/*
因為LNMP預設是不允許跨目錄訪問的,所以需要將防跨目錄訪問的設定去掉
刪除的話rm -f /網站目錄/.user.ini就可以。
修改完成後再執行:chattr +i /網站目錄/.user.ini
.user.ini不需要重啟一般5分鐘左右生效,也可以重啟一下php-fpm立即生效。
如果要更改網站目錄必須要按上述方法修改防跨目錄的設定,否則肯定報錯!!
LNMP 1.4上如果不想用防跨目錄或者修改.user.ini的防跨目錄的目錄還需要將/usr/local/nginx/conf/fastcgi.conf裡面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";在該行行前新增 # 或刪除改行,需要重啟nginx。
如果還有錯誤的話,那我們需要檢視PHP程式碼日誌來排查問題
我們在 /usr/local/php/etc/php-fpm.conf 加上

php_admin_value[error_log] = /usr/local/php/var/log/php_errors.log
php_admin_flag[log_errors] = on

有時可能錯誤日誌檔案不自動建立,可以執行:
touch /usr/local/php/var/log/php_errors.log && chown www:www /usr/local/php/var/log/php_errors.log

如果mysql忘記密碼,我們可以通過以下方式來解決
編輯mysql的配置檔案
vim /etc/my.cnf
在[mysqld]下加上
skip-grant-tables
重啟mysql
service mysqld restart
登入mysql
mysql -u root
執行
update mysql.user set authentication_string=PASSWORD('你的密碼') where User='root';
flush privileges;
然後把 /etc/my.cnf 裡的 skip-grant-tables去掉
重啟mysql service mysqld restart

推薦使用
使用lnmp的重置root密碼工具
在lnmp安裝包目錄下有一個tools目錄進去目錄執行
./reset_mysql_root_password.sh

為了安全LNMP預設是禁止遠端連線的,開啟遠端連結方法
登入mysql
use mysql;
update user set host = '%' where user = 'root';
接著退出mysql
檢視已有的iptables規則,以序號顯示
iptables -L -n --line-numbers
刪除DROP 3306埠的規則
iptables -D INPUT x (x代表3306的序號)

至此,專案基本部署完畢,如有更多問題,歡迎回復討論。

你可以不平凡

相關文章