欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

如何在阿里云虚拟主机部署 Laravel 有大用 有大大用 有大大大用

下面是阿里云工单给我提供的帮助 (好像不行)    下面红色的字关于 .htaccess 是可以的

售后工程师 :    您好,虚拟主机产品是统一固定配置的,目前还不支持域名与网站子目录的直接绑定。 可以考虑通过301重定向实现跳转。 如果是ASP程序,需要在webconfig里添加跳转代码; <%if request.ServerVariables("HTTP_HOST")="写你的二级域名" thenResponse.Status="301 Moved Permanently"Response.AddHeader "Location","写你的目录"Response.End end if%> 如果是PHP的程序,需要在.htaccess里添加跳转代码; RewriteEngine On RewriteCond %{HTTP_HOST} ^(aaa.)?zpbooks.cn$ RewriteCond %{REQUEST_URI} !^/test/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /test/$1 RewriteCond %{HTTP_HOST} ^(aaa.)?zpbooks.cn$ RewriteRule ^(/)?$ test/ [L]


               

阿里云虚拟主机不能配置public路径,也不能修改环境参数,通过这篇文章,可以给你一个部署实现的方法。

下面这个有大用

工具/原料    

  • 阿里云虚拟主机Linux版
  • Laravel5.7+

方法/步骤    

  1. 1

    修改key生成方式,解决阿里云万网不支持AES-256-CBC:

    /config/app.php

    找到 'cipher' => 'AES-256-CBC',改为

    'cipher' => 'AES-128-CBC',

    运行 php artisan key:generate 

    为.env 重新生成key后,通过FTP上传服务器

  2. 2

    修改env读取方式,解决阿里云万网不支持getenv:

    vendor\laravel\framework\src\Illuminate\Support\helpers.php

    找到 function env($key, $default = null)

    修改 

            $value = getenv($key);

           

            if ($value === false) {

                return value($default);

            }

    为:

    //        $value = getenv($key);

    //       

    //        if ($value === false) {

    //            return value($default);

    //        }

            if(array_key_exists($key,$_ENV)){

                $value = $_ENV[$key];           

            }else{

                return value($default);

            } 

  3. 3

    配置.htaccess文件,解决访问目录问题:

    把如下内容放入.htaccess,然后上传万网htdocs根目录

  4. 1)在 .htaccess最顶部加上如下红色的代码

  5. AddDefaultCharset UTF-8

  6. DirectoryIndex   index.php  index.html  index.htm  default.php


  7. 2)加上如下红色的代码, .htaccess 其它代码不变

    <IfModule mod_rewrite.c>

        RewriteEngine on

        RewriteCond %{REQUEST_URI} !^/public

        RewriteRule ^(.*)$ public/$1 [L]

    </IfModule>


                       

    其中 “laravel57/public ”,根据实际情况修改。

    END                

注意事项    

  • 这个做法并没有改变laravel 直接传到htdocs的方式,所以安全上有一定隐患。laravel还是推荐VPS/ECS。
经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。
举报作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。


来自   https://jingyan.baidu.com/article/22a299b595425d9e19376aed.html


下面可以不用看了



在阿里云虚拟主机上部署Laravel

拿laravel5.1来说:

  1. 在根目录下创建一个local文件夹,把网站根目录下除了public文件夹以外所有文件及文件夹剪切到local文件夹中

  2. 然后把public文件夹下的所有文件剪切到网站根目录,接着删除public文件夹,这样入口就变成根目录而不是public了,接下来

  3. 打开根目录下的index.php(之前/public/index.php)

    require __DIR__.'/../bootstrap/autoload.php';

    修改为

    require __DIR__.'/local/bootstrap/autoload.php';

    $app = require_once __DIR__.'/../bootstrap/app.php';

    修改为

    $app = require_once __DIR__.'/local/bootstrap/app.php';

  4. 打开/local/config/app.php(之前的/config/app.php)

    'key' => env('APP_KEY', 'SomeRandomString'),

    'cipher' => 'AES-256-CBC',

    改为

    'key' => env('APP_KEY', '1234567890qwerty'),

    'cipher' => 'AES-128-CBC',

    其中key使用长度为16的随机字符串,由于万网不支持'AES-256-CBC'所以用128位加密就可以了,128用16个随机字符串做key,256用32个。

  5. 上传到万网虚拟主机,然后在后台把PHP版本改成5.5就可以了,就妥妥的成功运行laravel了。

 

第一步        

       

解压到htdocs文件夹下并改名为larvael

       

 

第二步        

访问ip地址/laravel/public 之后你会发现Larvael的主界面

       

但是细心的同学发现这里总是有一个/public无论再加什么/url他都会存在 很是烦人不能以后项目上线

就给人家一个这样的URL吧 

这里作者告诉你如何删去PUBLIC

第三步        

只需要laravel/server.PHP        


       

改名为index.php        

并且将public目录下的.htaccess拷贝到Larvael根目下        

再去访问localhost/Larvael/就会发现不需要加上public这个烦人的东西了        


       

最后请小心如果你的CSS js FONT的文件有用的话 请把他们也拷贝到Larvael的根目录下        

否则你会发现你的css js都404啦 千万要记住.        

这里作者补充一句 只可在测试环境下这样使用,否则真实环境会有安全问题!        

好的今天的blog就写到这里边,一样希望对想删除URL里面public的朋友们有帮助 

多谢

下次见~

来自 https://www.cnblogs.com/zhoudawei/p/7155875.html


laravel 项目部署到阿里云虚拟主机

2019年02月13日 01:26:17 sugargx 阅读数 405更多                    
分类专栏: 专业技能—后端                    
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。                            

1、
把根目录下的 server.php 重命名为 index.php

2、
修改config文件夹下 的 app.php 中的 Encryption Key 下的配置 改为
‘key’ => env(‘APP_KEY’, ‘1234567890qwerty’),(此处的串随意即可)
‘cipher’ => ‘AES-128-CBC’,

因为虚拟机不支持’AES-256-CBC’所以用128位加密,256位加密使用32位字符串,128位使用16位字符串。

3、
去 config 文件夹下的database.php 文件中修改

  • 数据库地址就是虚拟机里面数据库的地址 照着数据库填就ok

  • 编码
    在这里插入图片描述

4、
由于访问的时候入口文件在public目录下面,这时候访问url会变成url/public/,重写规则跳转就行了,在根目录新建.htaccess文件,写入一下内容

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
               

5、
打开public目录下的.htaccess文件删除下面这一段:

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
               

6、
把laravel 项目FTP 上传到虚拟机上(最好使用压缩,速度比较快。在主机管理平台解压缩即可)
在这里插入图片描述                

7、数据库使用DMS(不习惯的话可以使用phpMyAdmin)
将表的结构数据导出到sql文件里,在DMS中导入即可。

!!注意改编码!!

将CHARSET和COLLATE改成如下:

CHARSET=utf8 
COLLATE=utf8_general_ci
               

8、域名直接访问


来自  https://ia.aliyun.com/home?spm=5176.13279267.banner.dLearnMore.2d08378ehJxpYT&aly_as=nH-iQ0gM



aravel项目部署在阿里云虚拟主机(Linux版)之经验总结

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/wjcglh/article/details/79391679
Laravel项目部署在阿里云虚拟主机(Linux版)之经验总结
 Laravel项目在本地开发测试好后,如何上传到阿里云虚拟主机?上传过程中出现的问题及解决方法。
以Laravel5.4+PHP7.1为例:
1.先在本地修改数据库连接配置
阿里云虚拟主机不识别Laravel中的.env配置文件,故在config/database.php文件中配置数据库连接(host:阿里云提供的数据库连接地址,database:阿里云提供的数据库名称;username:阿里云提供的数据库用户名;passwrod:将数据库上传至阿里云DMS中设置的密码)  
2.  修改config/app.php:
将其中的
'key' => env('APP_KEY'),
'cipher' => 'AES-256-CBC',
改为:
'key' => env('APP_KEY','abcdef1234567890'),//任意16位字符
'cipher' => 'AES-128-CBC', 
3.将网站(Laravel项目下的所有文件,文件夹全选,添加到压缩文件,ZIP格式)压缩使用FTP上传工具(FileZilla)上传至阿里云虚拟主机。
4.登录阿里云虚拟主机,将压缩文件解压至htdocs文件夹的根目录下。

5.若遇到$_SESSION 错误,项目中用到session之前的地方加上:session_start();命令


来自  https://blog.csdn.net/wjcglh/article/details/79391679




laravel 项目部署到阿里云虚拟主机

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/gx17864373822/article/details/87132515

1、
把根目录下的 server.php 重命名为 index.php

2、
修改config文件夹下 的 app.php 中的 Encryption Key 下的配置 改为
‘key’ => env(‘APP_KEY’, ‘1234567890qwerty’),(此处的串随意即可)
‘cipher’ => ‘AES-128-CBC’,

因为虚拟机不支持’AES-256-CBC’所以用128位加密,256位加密使用32位字符串,128位使用16位字符串。

3、
去 config 文件夹下的database.php 文件中修改

  • 数据库地址就是虚拟机里面数据库的地址 照着数据库填就ok

  • 编码
    在这里插入图片描述

4、
由于访问的时候入口文件在public目录下面,这时候访问url会变成url/public/,重写规则跳转就行了,在根目录新建.htaccess文件,写入一下内容

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
  • 1

  • 2

  • 3

  • 4

  • 5

5、
打开public目录下的.htaccess文件删除下面这一段:

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
  • 1

  • 2

  • 3

6、
把laravel 项目FTP 上传到虚拟机上(最好使用压缩,速度比较快。在主机管理平台解压缩即可)
在这里插入图片描述

7、数据库使用DMS(不习惯的话可以使用phpMyAdmin)
将表的结构数据导出到sql文件里,在DMS中导入即可。

!!注意改编码!!

将CHARSET和COLLATE改成如下:

CHARSET=utf8 
COLLATE=utf8_general_ci
  • 1

  • 2

8、域名直接访问

来自  https://blog.csdn.net/gx17864373822/article/details/87132515

在阿里云虚拟主机上部署Laravel

拿laravel5.1来说:

  1. 在根目录下创建一个local文件夹,把网站根目录下除了public文件夹以外所有文件及文件夹剪切到local文件夹中

  2. 然后把public文件夹下的所有文件剪切到网站根目录,接着删除public文件夹,这样入口就变成根目录而不是public了,接下来

  3. 打开根目录下的index.php(之前/public/index.php)

    require __DIR__.'/../bootstrap/autoload.php';

    修改为

    require __DIR__.'/local/bootstrap/autoload.php';

    $app = require_once __DIR__.'/../bootstrap/app.php';

    修改为

    $app = require_once __DIR__.'/local/bootstrap/app.php';

  4. 打开/local/config/app.php(之前的/config/app.php)

    'key' => env('APP_KEY', 'SomeRandomString'),

    'cipher' => 'AES-256-CBC',

    改为

    'key' => env('APP_KEY', '1234567890qwerty'),

    'cipher' => 'AES-128-CBC',

    其中key使用长度为16的随机字符串,由于万网不支持'AES-256-CBC'所以用128位加密就可以了,128用16个随机字符串做key,256用32个。

  5. 上传到万网虚拟主机,然后在后台把PHP版本改成5.5就可以了,就妥妥的成功运行laravel了。

 

第一步

解压到htdocs文件夹下并改名为larvael

 

第二步

访问ip地址/laravel/public 之后你会发现Larvael的主界面

但是细心的同学发现这里总是有一个/public无论再加什么/url他都会存在 很是烦人不能以后项目上线

就给人家一个这样的URL吧 

这里作者告诉你如何删去PUBLIC

第三步

只需要laravel/server.PHP


改名为index.php

并且将public目录下的.htaccess拷贝到Larvael根目下

再去访问localhost/Larvael/就会发现不需要加上public这个烦人的东西了


最后请小心如果你的CSS js FONT的文件有用的话 请把他们也拷贝到Larvael的根目录下

否则你会发现你的css js都404啦 千万要记住.

这里作者补充一句 只可在测试环境下这样使用,否则真实环境会有安全问题!

好的今天的blog就写到这里边,一样希望对想删除URL里面public的朋友们有帮助 

多谢

下次见~


来自   https://www.cnblogs.com/zhoudawei/p/7155875.html


laravel 5.5 项目部署到虚拟主机

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/a1005398026/article/details/84762402

laravel 5.5 项目部署到虚拟主机

-------------------序言

心有猛虎 细嗅蔷薇

  • 第一步

  • 首先要把laravel 项目FTP 上传到虚拟机上

  • 第二步

  • 把根目录下的 server.php 重命名为 index.php

  • 第三步

  • 修改.env文件的数据库配置等

  • 第四步

  • 修改config文件夹下 的 app.php 中的 Encryption Key 下的配置 改为

'key' => env('APP_KEY', '1234567890qwerty'),
'cipher' => 'AES-128-CBC',
  • 1

  • 2

  • 因为虚拟机不支持’AES-256-CBC’所以用128位加密,256位加密使用32位字符串,128位使用16位字符串,需要查看错误的话
    就把debug打开

  • 第五步

  • 我在.env文件改了 好像没起作用 索性就去 config 文件夹下的database.php 文件中修改 数据库地址就是

  • 虚拟机里面数据库的地址 照着数据库填就ok,然后修改项目根目录的.env文件名为.env_bak或者删除.env文件

  • 第六步

  • 由于访问的时候入口文件在public目录下面,这时候访问url会变成url/public/,重写规则跳转就行了,在根目录新建.htaccess文件,写入一下内容

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>
  • 1

  • 2

  • 3

  • 4

  • 5

  • 第七步

  • 到这一步基本就没有什么问题了,但是在使用ajax的时候,post方法有可能会被301跳转然后变成get 所以就需要
    打开public目录下的.htaccess文件删除下面这一段:

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
  • 1

  • 2

  • 3

  • 补充一个问题

  • config/database.php 里面 因为DMS 数据库版本是 mysql 5.1.73
    'charset' => 'utf8', 'collation' => 'utf8_unicode_ci',

  • 在DMS数据库 导入的时候 编码 要是 utf-8 哦 不然 前台页面 乱码



 

普通分类: