记一次Echsop部署中的问题

ecshop前端是使用anglerJs写,后端则用lumen编写,前后端分离。前端以api的形式访问后端,按照安装文档,后端配置为8000端 口。自己部署中遇到一些问题,记录下来,以防后用。本地环境LAMP,服务器申请的阿里云的ECS,域名也是阿里云上面申请的。

  1. 域名解析到A记录,前端解析到www,后端解析到api
    在这里插入图片描述
    在这里插入图片描述
    修改apache配置文件vhost下网站对应的配置文件:
    
        DocumentRoot "/www/myshop/web"
      
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
      
    
    
        DocumentRoot "/www/myshop/appserver/public"
      
        AllowOverride All
        Order allow,deny
        Allow from all
        Require all granted
      
    
    
    修改httpd.conf:
    DocumentRoot “/www/myshop”

    以上/www/myshop是自己网站的根目录,至此http://域名 已经可以正常访问网站了。
  2. 配置网站的以https访问,至阿里云中分别对www api两个子域名申请免费证书,并下载APCHE对应的证书。
    按照阿里云文档: https://help.aliyun.com/knowledge_detail/95493.html?spm=a2c4g.11186623.2.10.552b4c07j9Vpq5 开启相应扩展。
    在conf/extra/httpd-ssl.conf里将两个域名对应的证书都需要添加进去,…进行复制,分别修改对应的证书路径、ServerName、DocumentRoot

www开头域名配置:DocumentRoot “/www/myshop/web” ServerName www.域名
api开头域名配置:DocumentRoot “/www/myshop/appserver/public” ServerName api.域名

我这里做完之后,访问网站提示
403:You don’t have permission to access/on this server
然后修改Apache配置文件Directory下 Require all denied 改为 Require all granted。

  1. 屏蔽目录访问前篇已经写过。
  2. chrome下访问api地址有提示

Access to XMLHttpRequest at ‘http://api.myshop.com/v2/ecapi.config.get’ from origin ‘http://www.myshop.com’ has been blocked by CORS policy: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.
这里修改apche 的 httpd.conf ,给Directory下添加:

 AllowOverride ALL
 Header set Access-Control-Allow-Origin *
  1. 如果只允许以https访问网站,打开vhost下网站的配置文件,在下的
 RewriteEngine on
 RewriteCond %{SERVER_PORT} !^443$
 RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]

以上对配置文件的修改都需重启apache后生效。

你可能感兴趣的:(PHP)