dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6534|回复: 94

TP5部署服务器问题总结

  [复制链接]
  • TA的每日心情

    2024-11-19 20:46
  • 签到天数: 244 天

    [LV.8]以坛为家I

    4434

    主题

    1459

    帖子

    1万

    积分

    会|员

    Rank: 9Rank: 9Rank: 9

    积分
    10734
    发表于 2019-1-10 23:21:47 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    及最近部署TP5遇到了很多坑,各种环境下都会出现一些问题,下面是我记录的排坑之路
    先说最简单的lnmp一键安装包,我用的是1.5稳定版
    安装命令:wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp(安装+编译一键搞定)
    如需要安装LNMPA或LAMP,将./install.sh 后面的参数lnmp替换为lnmpa或lamp即可。如需更改网站和数据库目录、自定义Nginx参数、PHP参数模块、开启lua等需在运行./install.sh 命令前修改安装包目录下的 lnmp.conf 文件,详细可以查看lnmp.conf文件参数说明
    第一个提示:提供始终数据库(我用的3),直接输入数字回车即可
    1308467-20180814225701059-1104073085.png

    第二个提示:输入数据库密码
    1308467-20180814225911175-836898996.png

    第三个提示:是否启用Innodb,直接回车或者y回车
    1308467-20180814230016321-815233974.png

    第四个提示:选择PHP版本(默认5.6)我的是默认版本
    1308467-20180814230232026-1998329386.png

    第五个提示:我选的默认不安装(我的是默认)
    1308467-20180814230427444-299107624.png

    第六个提示:选择apache版本(我选的默认)
    1308467-20180814230752378-374690987.png

    第七个提示:如果显示Nginx: OK,MySQL: OK,PHP: OK
    1308467-20180814230846630-304771003.png

    并且Nginx、MySQL、PHP都是running,80和3306端口都存在,并提示安装使用的时间及Install lnmp V1.5 completed! enjoy it.的话,说明已经安装成功。
    某些系统可能会一直卡在Install lnmp V1.5 completed! enjoy it.不自动退出,可以按Ctrl+c退出。
    安装完成接下来开始使用就可以了,按添加虚拟主机教程,添加虚拟主机后可以使用sftpftp服务器上传网站代码,将域名解析到VPS或服务器的IP上,解析生效即可使用。
    第八个提示:安装失败
    1308467-20180814231039686-1877509816.png

    如果出现类似上图的提示,有一个或几个没安装成功表明安装失败!!需要用winscp或其他类似工具,将/root目录下面的lnmp-install.log下载下来,到LNMP支持论坛发帖注明你的系统发行版名称及版本号、32位还是64位等信息,并将lnmp-install.log压缩以附件形式上传到论坛,我们会通过日志查找错误,并给予相应的解决方法。
    默认LNMP是不安装FTP服务器的,如需要FTP服务器:https://lnmp.org/faq/ftpserver.html

    添加虚拟主机:lnmp封装好的很方便
    lnmp vhost add //添加虚拟主机
    1308467-20180814231426860-1231984555.png

    输入你的虚拟域名,我的是www.tp5api.cn
    1308467-20180814231535007-710087299.png

    这里询问是否添加更多域名,直接再输入要绑定的域名,我直接回车跳过了
    1308467-20180814231739798-831839586.png

    网站目录不存在的话会创建目录。也可以输入已经存在的目录或要设置的目录(注意如要输入必须是全路径即以/开头的完整路径!!!)。不输入直接回车的话,采用默认目录:/home/wwwroot/域名
    1308467-20180814231847444-915393369.png

    开启伪静态,利于SEO优化
    1308467-20180814231938852-1268125843.png

    默认已经有了discuz、discuzx、discuzx2(Discuz X二级目录)、wordpress、wp2(WordPress二级目录)、typecho、typecho2(Typecho二级目录)、sablog、emlog、dabr、phpwind、、dedecms、drupal、ecshop、shopex等常用的Nginx伪静态配置文件,可以直接输入名称进行使用,如果是二级目录则需要对应配置文件里的二级目录的名称。
    1308467-20180814232030043-22930353.png

    是否开启错误日志
    1308467-20180814232102286-421259464.png

    如果启用需要再输入要设置的日志的名称,默认日志目录为:/home/wwwlogs/ 默认文件名为:域名.log 回车确认后,会询问是否添加数据库和数据库用户。
    1308467-20180814232135474-421019807.png

    如果要添加,需要先验证MySQL的root密码(注:输入密码将不显示)
    提示Enter database name: 后输入要创建的数据库名称,要创建的数据库用户名会和数据库同名,回车确认。
    提示Please enter password for mysql user 数据库名: 后输入要设置的密码,回车确认。
    如果安装了FTP服务器会询问是否添加FTP账号
    1308467-20180814232257505-1484314302.png

    如果需要添加输入 y ,不添加输入 n 回车。
    1308467-20180814232320305-367067256.png

    提示Enter ftp account name: 后输入要创建的FTP账号名称,回车确认。
    提示Enter password for ftp account FTP账号: 后输入要设置的密码,回车确认。
    接下来是1.4新增的添加SSL功能


    如果需要添加输入 y ,不添加输入 n 回车。
    选择了添加SSL会提示

    有两个选项,1 选项为使用自己准备好的SSL证书和key。

    > > 提示Please enter full path to SSL Certificate file 后输入要SSL证书的完整路径和文件名,回车确认。
    > > 提示Please enter full path to SSL Certificate Key file: 后输入输入要key文件的完整路径和文件名,回车确认。
    2 选项为使用免费SSL证书提供商Letsencrypt的证书,自动生成SSL证书等信息。

    需要输入一个邮箱回车确认。
    提示 Press any key to start create virtul host... 后,回车确认便会开始创建虚拟主机。
    添加成功会提示添加的域名、目录、伪静态、日志、数据库、FTP等相关信息,如下图:


    ##伪静态管理##LNMPA或LAMP可以直接使用网站根目录下放.htaccess 来设置伪静态规则(具体规则可以去程序官网网站找google百度),但是在LNMP下,需要使用Nginx伪静态规则。
    伪静态可以随时添加或删除,如果添加完虚拟主机后忘记或没有添加伪静态,可以通过修改配置文件来添加伪静态。
    虚拟主机配置文件在:/usr/local/nginx/conf/vhost/域名.conf
    伪静态规则文件需要放在/usr/local/nginx/conf/ 下面。
    编辑虚拟主机配置文件,可以使用vinanowinscp,后2个工具对新手来说简单些。
    例如前面我们添加的虚拟主机,打开后前半部分配置会显示如下:

    在root /home/wwwroot/www.vpser.net;这一行下面添加:
    include wordpress.conf;
    上面的wordpress.conf为伪静态文件,如需要其他伪静态文件自己创建个并上传到/usr/local/nginx/conf/ 下面并include 伪静态.conf; 加完保存,执行:/etc/init.d/nginx restart 重启生效,如果报错可能是添加有误或伪静态规则有误。
    1.4及之前版本伪静态文件都在 /usr/local/nginx/conf/ 目录下
    1.5及之后版本伪静态文件都在 /usr/local/nginx/conf/rewrite 目录下
    伪静态文件名称后面带2的是二级目录的伪静态,可以根据自己需求修改里面二级目录的名称或复制为其他名字后include到虚拟主机配置文件中。
    安装FTP服务器可以直接使用ftp客户端通过你的FTP信息登录后上传网站或sftp等软件上传网站,设置好相关权限开始安装即可。
    上传网站后建议执行:chown www:www -R /path/to/dir 对网站目录进行权限设置,/path/to/dir替换为你网站目录。
    为了安全可以将一些不需要PHP运行的上传文件之类的目录去掉执行权限,参考:http://www.vpser.net/security/lnmp-remove-nginx-php-execute.html
    https://lnmp.org/faq/upgrade1-4.html 中的说明,如果有提示不安全或不显示小绿锁上面链接中也有说明。
    open_basedir设置
    LNMP 1.2及更高版本防跨目录功能使用.user.ini,该文件在网站根目录下,可以修改.user.ini 里面的open_basedir的值来设置限制访问的目录或删除来移除防跨目录的设置。
    .user.ini文件无法直接修改,如要修或删除需要先执行:chattr -i /网站目录/.user.ini
    可以使用winscp文件管理vim编辑器nano编辑器进行修改。
    删除的话rm -f /网站目录/.user.ini 就可以。
    修改完成后再执行:chattr +i /网站目录/.user.ini
    .user.ini不需要重启一般5分钟左右生效,也可以重启一下php-fpm立即生效。
    如果要更改网站目录必须要按上述方法修改防跨目录的设置,否则肯定报错!!
    LNMP 1.4上如果不想用防跨目录或者修改.user.ini的防跨目录的目录还需要将 /usr/local/nginx/conf/fastcgi.conf 里面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"; 在该行行前添加 # 或删除改行,需要重启nginx。
    LNMP 1.4上也可以直接使用lnmp1.4/tools/ 目录下的 ./remove_open_basedir_restriction.sh 进行移除。
    在Thinkphp、codeigniter、Laravel等框架下,网站目录一般是在public下,但是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉,有时候这些框架类的程序提示500错误也可能是这个问题引起的。

    LNMPA或LAMP 模式1.2版本以上的防跨目录的设置使用的对应apache虚拟主机配置文件(lnmp管理工具添加的话文件是 /usr/local/apache/conf/vhost/域名.conf )里的php_admin_value open_basedir参数进行设置。如果不需要设置可以在前面加 # 进行注释,或自行修改目录的限制。
    重启apache生效。

    ##pathinfo设置##LNMP上各个版本pathinfo各个版本的设置基本一样:
    lnmp v1.1上,修改对应虚拟主机的配置文件(/usr/local/nginx/conf/vhost/域名.conf)
    去掉#include pathinfo.conf前面的#,把try_files $uri =404; 前面加上# 注释掉。
    1.2,1.3,1.4,1.5及以上版本,修改对应虚拟主机的配置文件(/usr/local/nginx/conf/vhost/域名.conf)
    将include enable-php.conf;替换为include enable-php-pathinfo.conf;
    1.4版本多PHP版本启用pathinfo的话,进入/usr/local/nginx/conf目录,拷贝一份enable-php-pathinfo.conf 命名为 enable-php7.2-pathinfo.conf,将 enable-php7.2.conf 文件里 fastcgi_pass这一行内容完整的复制下来替换 enable-php7.2-pathinfo.conf 文件中的 fastcgi_pass这一行 ,保存,再按前面的方法修改虚拟主机 include enable-php7.2-pathinfo.conf; 就行了,其他版本以此类推。
    1.5版本多PHP版本开启pathinfo的话,可以在lnmp vhost add 是选择启用pathinfo,如果存在多PHP版本就会提示你选择,也可以直接修改虚拟主机配置文件将include enable-php.conf; 替换为 include enable-php7.2-pathinfo.conf; 保存
    修改pathinfo需要重启nginx生效。

    ##数据库管理##1.3以上版本,可以在添加虚拟主机时选择创建数据库,也可以单独使用 lnmp database add 按提示添加数据库,添加的用户名和数据库名是同名的。
    添加数据库命令:lnmp database add
    编辑数据库用户密码命令:lnmp database edit
    删除数据库命令:lnmp database del
    列出所有数据库命令:lnmp database list
    这些资料都是在 https://lnmp.org/faq/lnmp-vhost-add-howto.html(lnmp官网查到的)
    很多东西是直接复制过来的,以我的水准写的不会比官网手册好
    如果有人使用宝塔tp5报错open_base_dir,网站设置里面有一个安全防护,关掉了就可以(坑我好长时间)
    回复

    使用道具 举报

    该用户从未签到

    57

    主题

    3528

    帖子

    630

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    630

    发表于 2019-1-11 10:47:06 | 显示全部楼层
    学习了,谢谢分享、、、
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4

    主题

    3452

    帖子

    10

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    10

    发表于 2019-1-11 15:35:12 | 显示全部楼层
    找到好贴不容易,我顶你了,谢了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    26

    主题

    7984

    帖子

    942

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    942

    发表于 2019-1-11 21:39:59 | 显示全部楼层
    支持一下:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5

    主题

    7567

    帖子

    1137

    积分

    技冠群雄

    Rank: 6Rank: 6

    积分
    1137

    发表于 2019-1-12 20:43:54 | 显示全部楼层
    么有分,谁能送我点积分啊::>_<::
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    3466

    帖子

    -6

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    -6

    发表于 2019-1-13 09:05:23 | 显示全部楼层
    珍惜生命,果断回帖。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    22

    主题

    7846

    帖子

    992

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    992

    发表于 2019-1-13 13:26:19 | 显示全部楼层
    学习了,不错,讲的太有道理了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24

    主题

    7712

    帖子

    941

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    941

    发表于 2019-1-14 17:59:25 | 显示全部楼层
    谢谢楼主,共同发展
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    24

    主题

    7885

    帖子

    962

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    962

    发表于 2019-1-17 16:16:14 | 显示全部楼层
    支持一下:lol
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    39

    主题

    7819

    帖子

    1026

    积分

    终身会员[B]

    积分
    1026

    发表于 2019-1-17 22:37:32 | 显示全部楼层
    谢谢楼主,共同发展
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-23 23:44 , Processed in 2.099756 second(s), 44 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表