Linux

Ubuntu-16.04 使用LNMP一键安装包 V1.4 搭建

2017-08-31  本文已影响1856人  Red_zhang

网站项目:Ubuntu 16.04 + LNMP 1.4 + Laravel 5.3
默认服务器系统已经安装好了,在接下来先安装LNMP一键安装包1.4版本。

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:

image.png

先把这一行注释掉,在前面加一个#号:

#fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";

保存退出,重启lamp.
4、再次刷新页面访问,又出现了空白页和500错误,简直崩溃,没有任何提示。

image.png

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错误消失了。
但是又有一个新问题出现:
前端登陆的时候,出现登陆失败:

image.png

这个错误是因为storage目录中的oauth-private.key 和 oauth-public.key的权限问题,
我们需要把这两个文件的所有者改为www,然后权限改为777

chown www:www oauth-*.key
chmod 777 oauth-*.key

执行完这些后,就大功告成了!可以正常登录访问了。

上一篇下一篇

猜你喜欢

热点阅读