Thinkphp6部署到linux系统需要关注的问题
首先,需要在服务器上安装LNMP环境,这里推荐使用
https://oneinstack.com/auto/
配置安装,安装过程就是把命令复制到linux命令行下即可!
可以自行网上搜索教程!
1. Thinkphp6从Window过度到Linux部署问题
window系统不区分大小写,但是linux区分大小写,如果你的数据库、应用名称、配置文件的大小写出现混乱,在window环境下不会出现问题,但是在linux下会出现控制器不存在的问题,往往难以解决。
2.tp6目录下runtime文件夹权限问题
thinkphp框架对runtime的权限要求较高,在Linux环境下,就会出现权限不足问题,解决方法很简单,就是给这个文件777权限,最好给一些动态增加的文件夹777权限。
chmod -R 777 runtime
3 Nginx配置项参考
server {
listen 80;
server_name _;
access_log /data/wwwlogs/access_nginx.log combined;
root /data/wwwroot/works/public;
index index.html index.php index.pdf;
location /nginx_status {
stub_status on;
access_log off;
allow 127.0.0.1;
deny all;
}
location ~ [^/]\.php(/|$) {
#fastcgi_pass remote_php_ip:9000;
fastcgi_pass unix:/dev/shm/php-cgi.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|flv|mp4|ico)$ {
expires 30d;
access_log off;
}
location ~ .*\.(js|css)?$ {
expires 7d;
access_log off;
}
location ~ ^/(\.user.ini|\.ht|\.git|\.svn|\.project|LICENSE|README.md) {
deny all;
}
location /.well-known {
allow all;
}
location / { //配置index.php入口隐藏
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php?s=/$1 last;
break;
}
}
4.MySQL配置
- MySQL远程访问配置(使用navicat远程访问)
mysql -u用户名 -p密码
use mysql;
select Host,User from user;
update user set host = '%' where user ='root';
flush privileges;
但是此时如果是真实的服务器,不能创建数据库,是因为权限不够
开启root的全部权限
然后执行重启服务器或刷新mysql命令!
flush privileges;
刷新mysql
systemctl restart mysql
重启服务器
到这里,LNMP服务器基本搭建完毕
Navicat远程连接MySQL、Xftp远程连接文件系统、xshell远程连接命令行,这样就很方便在window下使用真实服务器!
部署tp6项目遇到问题记录,如果有问题欢迎私信回复我。
Thinkphp,以及勤劳的自己!