200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 树莓派 + lnmp一键安装包 + thinkphp搭建网站

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

时间:2021-03-25 22:04:02

相关推荐

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

目录

前言:

一.准备树莓派

二.安装lnmp安装包

三.设置虚拟主机

1.添加虚拟主机​

2.上传Thinkphp框架

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

前言:

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

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

一.准备树莓派

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

网址:/hot-explorer#beginner

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

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

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

我用的阿里云的源:deb /raspbian/raspbian/ stretch main contrib non-free rpi

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

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

二.安装lnmp安装包

lnmp一键安装包网址:/

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

wget /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)

注意:下面的一些重启操作未说明,如果改了配置文件,大多数需要重启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官网的教程,里面配置过程是对老版本:/faq/lnmp-vhost-add-howto.html

1.添加虚拟主机

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

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

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

然后用 ip/你的域名文件夹。例如 127.0.0.1/ (127.0.0.1//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 ;

index index.html index.htm index.php default.html default.htm default.php;

root /home/wwwroot//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/.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的上级目录,也就是虚拟主机根目录。

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

看我成功截图

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。