我想在 apache & php 的共享主機上安裝 api-platform。出于開發目的,我通過 docker 模擬此托管(因此我不想依賴 apiplatform 的“docker”安裝,因為這不是目標環境)。
我只是用 symfony 創建了我的專案:
composer create-project symfony/skeleton:"6.1.*" my_project_directory
然后我安裝了 apache-pack:
composer require symfony/apache-pack
最后是 api 平臺:
composer require api
當我運行時docker-compose up,Symfony 已經準備好并且可以在 http://localhost/public 使用,但 api-platform 不是。(我試過 http://localhost/api 和 http://localhost/public/api)
我創建了一個 repo 讓你看看:https ://github.com/Niolak/api-platform-apache/tree/main/php
你能幫我讓它作業嗎?
uj5u.com熱心網友回復:
經過一個小的研究,我發現了這個解決方案:
在a2enmod您的Dockerfile,
// Dockerfile
FROM php:8.1-apache
RUN apt update
RUN apt install -y git
RUN a2enmod rewrite && service apache2 restart
將.htaccessfrom移動public/到src/. 然后用以下代碼重寫它:
// ./src/.htaccess
RewriteEngine on
RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!public/).*)$ public/$1 [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /public/index.php?path=$1 [NC,L,QSA]
PS:正如我提到的,這是在進行小型研究后發現的。我不知道這是否是一個好習慣。
資源:
- .htaccess 從站點根目錄重定向到公共檔案夾,在 URL 中隱藏“公共”?
- 使用 htaccess 將所有重定向到 index.php
- 如何為 Apache 2.2 啟用 mod_rewrite
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/498325.html
標籤:php 阿帕奇 交响乐 api-platform.com
上一篇:使按鈕與另一個按鈕動態保持距離
