美文网首页Linux
Ubuntu-16.04 使用LNMP一键安装包 V1.4 搭建

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

作者: Red_zhang | 来源:发表于2017-08-31 18:31 被阅读1856次

    网站项目: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:

    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
    

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

    相关文章

      网友评论

        本文标题:Ubuntu-16.04 使用LNMP一键安装包 V1.4 搭建

        本文链接:https://www.haomeiwen.com/subject/iwpqjxtx.html