网站项目:Ubuntu 16.04 + LNMP 1.4 + Laravel 5.3
默认服务器系统已经安装好了,在接下来先安装LNMP一键安装包1.4版本。
- 安装LNMP稳定版
在本地安装的话,直接运行一下代码就行:
wget -c http://soft.vpser.net/lnmp/lnmp1.4.tar.gz && tar zxf lnmp1.4.tar.gz && cd lnmp1.4 && ./install.sh lnmp
选择好mysql版本和php版本安装好,创建好虚拟主机。
- 添加虚拟主机
lnmp vhost add
以上过程按提示就很容易完成。
- 导入数据库
登入数据库:
mysql -u root -p //执行后,输入密码访问
创建一个新的数据库:
create database demo_sfabric;
进入刚刚创建的数据库:
use demo_sfabric;
取消外键约束:
SET FOREIGN_KEY_CHECKS=0;
导入sql数据库文件:
source /home/zhangshu/0830.sql;
接下来主要记录下在部署laravel的过程中遇到的问题:
1、首先进入nginx下的vhost目录,修改配置文件
找到下面这行
root /home/wwwroot/sfabric.nginx;
修改为:
root /home/wwwroot/sfabric.nginx/public; //整个项目代码放在sfabric.nginx目录下
2、配置好虚拟主机文件后,输入域名访问,出现空白页面和500错误
image.png这时,我们进入PHP目录/usr/local/php/etc,找到php.ini文件,先把错误提示打开
display_errors = On;
保存退出后,重启下lnmp
lnmp restart
3、再次访问的时候,没有500错误了,显示了另外一个错误提示:
Warning: require(): open_basedir restriction in effect. File(/home/wwwroot/sfabric.nginx/bootstrap/autoload.php) is not within the allowed path(s): (/home/wwwroot/sfabric.nginx/public/:/tmp/:/proc/) in /home/wwwroot/sfabric.nginx/public/index.php on line 21
Warning: require(/home/wwwroot/sfabric.nginx/bootstrap/autoload.php): failed to open stream: Operation not permitted in /home/wwwroot/sfabric.nginx/public/index.php on line 21
Fatal error: require(): Failed opening required '/home/wwwroot/sfabric.nginx/public/../bootstrap/autoload.php' (include_path='.:/usr/local/php/lib/php') in /home/wwwroot/sfabric.nginx/public/index.php on line 21
这个错误提示是php执行权限的问题:
我们先找到在哪个文件设置了open_basedir
进入到/usr/local/nginx/conf目录下,打开fastcgi.conf文件,在这个文件里面最后一行设置了open_basedir:
先把这一行注释掉,在前面加一个#号:
#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";
保存退出,重启lamp.
4、再次刷新页面访问,又出现了空白页和500错误,简直崩溃,没有任何提示。
5、在项目根目录,找到storage目录,把这个目录和里面的文件全部改为777。
chmod -R 777 storage
再次访问,又是一个新的错误:
ErrorException
in Filesystem.php line 111:
file_put_contents(/home/wwwroot/sfabric.nginx/bootstrap/cache/services.php): failed to open stream: Permission denied
然后继续清除缓存配置,重新生产key:
php artisan config:clear
php artisan key:generate
这个时候,可以正常访问页面了。
But……one more thing……
在前端登陆的时候,出现了405 Not Allowed:
image.png
出现这个问题后,我们需要修改一下配置文件/usr/local/nginx/conf/vhost,打开conf文件,在文件中加入如下代码:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
保存退出后,重启下lnmp,这时候405错误消失了。
但是又有一个新问题出现:
前端登陆的时候,出现登陆失败:
这个错误是因为storage目录中的oauth-private.key 和 oauth-public.key的权限问题,
我们需要把这两个文件的所有者改为www,然后权限改为777
chown www:www oauth-*.key
chmod 777 oauth-*.key
执行完这些后,就大功告成了!可以正常登录访问了。
网友评论