首页 > 代码库 > 网站云服务器迁移时遇到的坑

网站云服务器迁移时遇到的坑

本文主要讲网站程序在云服务器迁移时遇到的问题,和各家云服务的比较选择。

之前用laravel 5.1开发了一个社区交流的程序,放在亚马逊的EC2实例上,是一个AIM 亚马逊自家构建的linux服务器,不能不说亚马逊的服务是一流的,基本没有多少坑给你踩,但是自从发现 linode, DigitalOcean, Rackspace之后,比较了一下性价比,就有了迁移的想法,毕竟便宜了一半。 linode.com比较有历史,而且套餐是2G内存,24G SSD硬盘,10美金一个月怎么样都比亚马逊要来得实惠,至于Digital Ocean的最便宜的选择是 5美金一个月,但是只有512内存,走一点程序就爆了,所以还是选择linode,速度和亚马逊比也不算慢。 至于其他试了一下Nitrous.com,都大同小异。

但各家云服务商最流行的是Ubuntu Linux 14.X 和16.X, Ubuntu本身一般自带的PHP版本是7.0,Apache版本是2.4.9

我选择的是Ubuntu Linux 14.X 

要安装以下软件:

PHP5.5 –PHP5.6

Apache2.4.16, 但是这个和ubuntu不配,它家的安装包没有这个package,只能装Apache2.4.9

Composer 1.0-dev (2015-10-13)

Laravel5.1.X

---------------------------------------------------------------------

先说PHP的配置,要使用Laravel的话,就要具备某些模块,这在https://laravel.com/docs/5.3这里说的明白,不要怀疑,没有一定会报错。

  • PHP >= 5.6.4 (我装的Laravel5.1,所以还可以用PHP5.5.9 )
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • Mcrypt PHP Extension  这个是我加的

PDO就是连接数据库的,我用的sqlite,所以还要装

sudo apt-get install php5-sqlite,

用mysql的同学要装

sudo apt-get install php5-mysql,

git clone 程序地址  下来后,改目录名字为你在apache配置的路径名, 例如 huiqiao,

这里要把目录和目录下的文件改成apache2的组,可以这样写:

sudo chown –R www-data:www-data huiqiao

还要给两个二级子目录 775的权限,可以这样写:

sudo chmod –R 775 huiqiao/storage  huiqiao/bootstrap

到了这里刷浏览器,还是有问题,不出现页面,于是:

sudo rm composer.lock

sudo composer update

composer dump-autoload

访问网站出现了首页,但是点击分页面,发现路径不起作用,这里浪费了很多时间, 因为我不知道rewrite的作用, 以为数据库坏了,重新migrate:refresh了数据库,不行又换mysql试了一次,还是不行。最后发现是mod_rewrite模块没有enabled,这个是apache2的问题,不是php的问题,一直没有找到重点。 因为Laravel的public目录里有个.htaccess文件,作用是路径重写。 在不同的linux里面启用的方法可能不一样在debian和ubuntu里是这样:

su a2enmod rewrite (这个命令就是apache2 enable module的意思)

su service apache2 restart

或 /etc/init.d/apache2 restart

这些问题的解决都可以依靠 在 /var/www/html/下面写个

echo “<?php phpinfo();”>index.php 探针,然后可以看到apache,php都有哪些模块active的, 还可以看到apache2的用户组

技术分享

以上是linode的,下面是亚马逊的,太全了。

技术分享

 

有钱就不折腾,呵呵。

网站云服务器迁移时遇到的坑