Skip to content

Latest commit

 

History

History
19 lines (19 loc) · 2.47 KB

lnmp迁移.md

File metadata and controls

19 lines (19 loc) · 2.47 KB

LNMP(Linux Nginx Mysql PHP)

LNMP官网:https://lnmp.org/

这里记录一下LNMP部署的站点从云服务器A迁移到云服务器B的过程,服务器的系统为Ubuntu 16.04 64位,LNMP1.5

  • 首先,使用LNMP搭建的网站根站点一般在/home/wwwroot下,默认站点目录是default(通过/usr/local/nginx/conf/nginx.conf可知),default里面还有一个phpmyadmin目录,由此,大概你能猜到能做什么了(由于安全问题,defaultphpmyadmin可能已被重命名,这样就能禁止通过网页访问phpmyadmin等)。
  • 因为Nginx可以为同一IP绑定多个域名,所以/home/wwwroot下除了default应该还有别的站点目录。在对应站点目录找到数据库账号和密码。
  • 通过浏览器使用IP访问,这时访问的应该是/home/wwwroot/default,页面上有探针phpinfophpMyadmin等功能链接。
  • 通过phpMyadmin导出数据库。
  • 使用探针查看站点Mysql数据库、PHP模块、LNMP的版本。
  • LNMP官网下载对应的版本。
  • 按照官网安装教程进行安装,安装过程中选择对应的MysqlPHP版本。
  • 安装完成后通过IP访问看是否出现LNMP页面。然后通过phpMyadmin创建数据库账号,并且导入数据库,设置数据库拥有者权限。
  • 打包网站代码,并上传至新的服务器对应的站点目录下。
  • 如果Nginx有绑定多域名,则打包原服务器/usr/local/nginx/conf下的vhost,并上传到新的站点服务器相应目录下。
  • sudo /etc/init.d/nginx restart重启服务,然后通过域名访问网站。

踩坑

如果网站是基于thinkphp等一些框架的,这时候通过域名访问可能返回的是500错误。这个问题的原因很可能是由于LNMP的防跨域引起的。 根据这里的说法,在thinkphpcodeigniterlaravel等框架下,网站目录一般是在public下,但 是public下的程序要跨目录调用public上级目录下的文件,因为LNMP默认是不允许跨目录访问的,所以都是必须要将防跨目录访问的设置去掉:LNMP 1.4或以上将 /usr/local/nginx/conf/fastcgi.conf里面的fastcgi_param PHP_ADMIN_VALUE "open_basedir=$document_root/:/tmp/:/proc/"这一行删除或在行首添加 #号注释掉,然后sudo /etc/init.d/nginx restart重启Nginx服务。