树莓派 + lnmp一键安装包 + thinkphp搭建网站

目录

前言:

一.准备树莓派

二.安装lnmp安装包

三.设置虚拟主机

1.添加虚拟主机​

2.上传Thinkphp框架

3.进行一些配置(重要)


前言:

之前零星写了一些环境搭建的问题的解决方法,现在总结一下,把步骤写出来。当然不一定在树莓派上安装lnmp,其他Linux服务器也可以使用。

nginx的配置麻烦点,所以用的就是lnmp练练手,其他的Apache和IIS都相对容易,不再赘述。

一.准备树莓派

树莓派配件和系统安装的问题这里不再多说,详细教程可以看树莓派实验室的入门教程

网址:http://shumeipai.nxez.com/hot-explorer#beginner

注意:关于没有屏幕怎么玩树莓派的方法,现在的树莓派系统如果想启动ssh需要用命令行启动服务,但是没登录ssh怎么启动服务呢?这个树莓派实验室也没说解决方法。个人感觉还是有个屏幕方便些,配置完后以后就可以用远程登录了。

我的网用系统自带的apt-get源的话,很多软件会安装失败。所以我给我的树莓派换了源。

源的配置文件目录:/etc/apt/sources.list(记得备份,备份是个好习惯)

我用的阿里云的源:deb http://mirrors.aliyun.com/raspbian/raspbian/ stretch main contrib non-free rpi 

注意:网上有些源是很久以前的了,很多配置也是对老系统的配置,如果想换新的需要知道自己的系统版本。后面stretch那一块,不同系统不一样的,可以用 lsb_release  -a 查看系统版本信息

看红色部分,有些系统源是新的(可以打开源地址进去看看),但是配置里面写的不是新的,可以把相应的地方改成红框里面的这个关键词。

二.安装lnmp安装包

lnmp一键安装包网址:https://lnmp.org/ 

我用的无人值守安装:https://lnmp.org/auto.h

wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && LNMP_Auto="y" DBSelect="2" DB_Root_Password="123456" InstallInnodb="y" PHPSelect="5" SelectMalloc="1" ./install.sh lnmp

把生成的命令复制到树莓派开始自动安装,根据及其配置情况会很慢,我的树莓派差不多用了一个半小时

出现下面这些就成功了,如果失败可以去lnmp官网的安装板块后面的找失败解决办法。

树莓派 + lnmp一键安装包 + thinkphp搭建网站_第1张图片

三.设置虚拟主机(很多操作都需要重启lnmp)

注意:下面的一些重启操作未说明,如果改了配置文件,大多数需要重启lnmp才能生效

这个搞了我三天才成功,失败地原因主要有自己对虚拟主机不了解,最主要的还是网上很多教程都是说的老版本nginx的配置过程,这里用的是lnmp一键安装包,lnmp网站教程里面的文档都不是最新的。其实直接用lnmp的新建虚拟主机的命令就能完全解决问题。如果不是用的lnmp一键安装包,应该也大同小异,就是不要在默认的nginx.conf里面操作,需要建立虚拟主机之后再操作,比如pathinfo,basedir,rewrite之类的配置。下面是我用lnmp一键安装包配置tp5环境的详细过程。

注意:配置过程中可能会遇到白屏的情况最好打开php的错误警告,在php.ini文件中查找 ‘display_errors’   查找到 display_errors = Off 或者 display_errors = On, Off为关闭错误提示,On为打开错误提示,根据需求修改即可。

lnmp官网的教程,里面配置过程是对老版本:https://lnmp.org/faq/lnmp-vhost-add-howto.html

1.添加虚拟主机树莓派 + lnmp一键安装包 + thinkphp搭建网站_第2张图片

创建的配置文件在:/usr/local/nginx/conf/vhost 下面,可以在这里更改端口号和网站根目录,待会咱们会更改。

注意:目录可以选择这个命令默认的在wwwroot下创建的目录,这就需要更改nginx的配置文件(位置:/usr/local/nginx/conf)

root  /home/wwwroot/default 改为 root  /home/wwwroot

然后用 ip/你的域名文件夹。例如      127.0.0.1/mytp.api.cn    (127.0.0.1/mytp.api.cn/public)

也可以更不同的端口例如8080,修改端口的方法较好。/usr/local/nginx/conf/vhost 下面,可以在这里更改端口号和网站根目录。根目录可以再加入public。

后面我用修改后的端口的方法演示。

2.上传Thinkphp框架

注意给runtime文件夹读写权限:

chmod -R 777 runtime/

如果你成功显示了tp5的欢迎界面,先不要高兴,可能只是当前页面可以访问而已,用pathinfo模式还是没法访问别的api或者网页。所以最好能上传一个位于application文件夹下面可以返回的接口来测试。解决方法看下面。

3.进行一些配置(重要)

我的是一个网页中有tp5自带的验证码,如果正常现实了说明成功了。

这是我的nginx.conf,我用的默认配置:

server
    {
        listen 80 default_server;
        #listen [::]:80 default_server ipv6only=on;
        server_name _;
        index index.html index.htm index.php;
        root  /home/wwwroot/default;       

        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

        location /nginx_status
        {
            stub_status on;
            access_log   off;
        }

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/access.log;
    }
include vhost/*.conf;
}

我的虚拟主机的配置文件:

server
    {
        listen 8080; #修改端口号
        #listen [::]:8080;
        server_name mytp.api.cn ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/mytp.api.cn/public; #加入public

        include rewrite/thinkphp.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php-pathinfo.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /home/wwwlogs/mytp.api.cn.log;
    }
 

配置完成上面这些你应该没法访问页面了

修改php.ini的display_errors = Off 为 display_errors = On

会提示下面的错误:

这就是open_basedir的原因了。下面是解决办法。

网上的办法也是很多,但是对于lnmp来说我们找到和nginx.conf同目录下的文件fastcgi.conf

把fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/";前面加入#注释掉,lnmp虚拟主机目录里面还有一个.user.ini文件也是设置open_basedir的,可以单独为所属的虚拟主机设置open_basedir,对tp5来说是设置在public的上级目录,也就是虚拟主机根目录。

暂时还找到单独为网站设置既能正常访问,也能防止跨域访问的好的解决方法。

看我成功截图

树莓派 + lnmp一键安装包 + thinkphp搭建网站_第3张图片

你可能感兴趣的:(硬件工坊)