在现有的Apache Web服务器上运行苗条框架

用户名

我是苗条的框架新手。目前,在我现有的网络服务器上(在centos 7上),我正在运行其他基于php的应用程序。所以目前我的目录结构是这样的。

var/www/html
    phpapp1
    phpapp2
    apislim

我创建的apislim文件夹用于苗条框架。以下是我执行的确切步骤:1.作曲者create-project slim / slim-skeleton
2.我将slim-skeleton文件夹重命名为apislim 3.我确定所有者是apache chown -R apache:apache apislim 4.在httpd.conf,我确保将此AllowOverride启用为All

<Directory "/var/www">
    AllowOverride All
    # Allow open access:
    Require all granted
    Options -Indexes
</Directory>

同样在下面我启用了全部

<Directory "/var/www/html">   
    Options -Indexes -FollowSymLinks
    AllowOverride All
</Directory>
  1. 在apislim / public文件夹中,我有以下.htaccess文件。

    RewriteEngine开

    RewriteCond%{REQUEST_URI} :: $ 1 ^(/.+)/(。):: \ 2 $ RewriteRule ^(。)-[E = BASE:%1]

    RewriteCond%{REQUEST_FILENAME}!-f RewriteRule ^(。*)$%{ENV:BASE} index.php [QSA,L]

  2. 我在公用文件夹中也有index.php文件,该文件也链接到路由的src和主文件夹apislim,我创建了另一个.htaccess文件并添加了它。

    RewriteRule上的RewriteEngine ^ $ public / [L] RewriteRule(。*)public / $ 1 [L]

现在的问题是,我希望现有的应用程序可以与基于苗条框架的rest api一起使用。所以当我去这个链接

http://*.*.*.*/apislim/
http://*.*.*.*/apislim/public/
http://*.*.*.*/apislim/public/index.php

它们都不起作用都禁止我使用403。然后我检查错误日志,它显示有关FollowSymLinks的错误,因此我将Options -Indexes + FollowSymLinks添加到

因此,我现在得到的下一个错误是500间隔服务器错误。

忠诚

要使Slim 3应用程序在子目录中工作,必须执行以下步骤。

目录结构:

  • public/Web服务器文件(DocumentRoot
    • .htaccess 用于前端控制器的Apache重定向规则
    • index.php 前置控制器
  • .htaccess 内部重定向到public /目录

文件内容.htaccess

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

文件内容public/.htaccess

# Redirect to front controller
RewriteEngine On
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L] 

将此容器条目添加到文件中dependencies.php

// Activating routes in a subfolder
$container['environment'] = function () {
    $scriptName = $_SERVER['SCRIPT_NAME'];
    $_SERVER['SCRIPT_NAME'] = dirname(dirname($scriptName)) . '/' . basename($scriptName);
    return new Slim\Http\Environment($_SERVER);
};

编辑:在Slim 4中,您应该使用该$app->setBasePath($basePath);方法。更多细节

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

部署到现有的Apache Tomcat实例时,无法使JetBrains许可证服务器运行

如何在现有的Apache Spark独立群集上安装Apache Zeppelin

列出现有的服务器场

您可以在现有的Apache Geode区域上增加复制吗?

现有的iOS表单框架

如何在现有的COM服务器上注册.NET程序集?

如何注册其他服务器上现有的 Clearcase 视图

如何在服务器上现有的图像阵列中添加图像?Xcode

分离现有的Web项目

如何停止现有的微调器

使用现有的厨师服务器配置厨师零服务器

将现有的节点服务器与Angular Universal服务器代码合并

如何启动新的 http 服务器或将现有的服务器用于 pprof?

Connect Api Connect 与现有的 Web 服务

使用带有无服务器架构在AWS现有的API密钥

使用 Vue 增强现有的多页面/服务器渲染/经典 Web 应用程序

如何在现有的石墨服务器上使用石棉写入时间序列数据?

无法在同一服务器上安装GitLab和现有的Git存储库

将FTP服务器上现有的文件附加到C#.NET中的邮件

如何在 Apache Web 服务器上运行 Grails 应用程序 WAR 文件?

如何使用现有的tcp连接从bash脚本访问http服务器?

错误:Apollo服务器需要现有的架构,模块或typeDefs

我需要使用go lang连接到现有的websocket服务器

如何在现有的Rails服务器之上添加API层

Git将现有的仓库推送到新的和不同的远程仓库服务器?

为现有的NodeJS服务器生成Swagger文档

如何使用现有的 jenkins 服务器配置 Docker?

安装xampp并将其与现有的MySQL服务器集成

如何将现有的SSRS设置迁移到新服务器?