ฉันกำลังพยายามปรับใช้เว็บแอปพลิเคชัน Symfony บนเซิร์ฟเวอร์ที่ให้การเข้าถึง ftp เท่านั้น โดยไม่มีความเป็นไปได้ ssh และฉันสามารถวางไฟล์ในโฟลเดอร์รูทได้สองโฟลเดอร์เท่านั้น: โฟลเดอร์ /data และ /html ฉันพยายามวางไฟล์ Symfony ไว้ในโฟลเดอร์ de html แต่ htaccess ที่ apache webpack สร้างขึ้นใช้งานไม่ได้ ใช้งานได้เฉพาะในเครื่องเท่านั้น และฉันได้รับข้อผิดพลาด 500 บนหน้าจอ บันทึกไม่ได้ช่วยอะไร มีเพียงข้อความ 404 ทั่วไปเท่านั้น
ความคิดใด ๆ ฉันพยายามทำตามคำแนะนำจากโพสต์อื่นเช่นนี้จาก @runawaycoin แต่ไม่สำเร็จ: https://medium.com/@runawaycoin/deploying-symfony-4-application-to-shared-hosting-with-just-ftp-access-e65d2c5e0e3d
ฉันใส่ .htaccess ที่ Symfony apache pack สร้างขึ้นในเครื่องที่โฟลเดอร์ /html ควรจะเป็นเพียงการกำหนดค่าเท่านั้น
นี่คือรหัสจาก .htaccess:
# ใช้ตัวควบคุมด้านหน้าเป็นไฟล์ดัชนี ทำหน้าที่เป็นโซลูชันสำรองเมื่อ
# การเขียนซ้ำ/เปลี่ยนเส้นทางอื่นๆ ล้มเหลว (เช่น ในสภาพแวดล้อมที่ใช้นามแฝงโดยไม่มี
#mod_rewrite). นอกจากนี้ยังช่วยลดขั้นตอนการจับคู่สำหรับ
# หน้าเริ่มต้น (เส้นทาง "/") เพราะมิฉะนั้น Apache จะใช้กฎการเขียนใหม่
# ไปยังแต่ละไฟล์ DirectoryIndex ที่กำหนดค่าไว้ (เช่น index.php, index.html, index.pl)
DirectoryIndex index.php
`
# ตามค่าเริ่มต้น Apache จะไม่ประเมินลิงก์สัญลักษณ์หากคุณไม่ได้เปิดใช้งานสิ่งนี้
# คุณสมบัติในการกำหนดค่าเซิร์ฟเวอร์ของคุณ ยกเลิกการแสดงความคิดเห็นในบรรทัดต่อไปนี้หากคุณ
# ติดตั้งเนื้อหาเป็น symlink หรือหากคุณประสบปัญหาเกี่ยวกับ symlink
# เมื่อรวบรวมเนื้อหา LESS/Sass/CoffeScript
# ตัวเลือก +FollowSymlinks
# การปิดใช้งาน MultiViews ป้องกันการเจรจาที่ไม่ต้องการ เช่น "/ ดัชนี" ไม่ควรแก้ไข
# ไปยังตัวควบคุมด้านหน้า "/index.php" แต่ถูกเขียนใหม่เป็น "/index.php/index"
<IfModule mod_negotiation.c>
ตัวเลือก -MultiViews
</หากโมดูล>
<IfModule mod_rewrite.c>
RewriteEngine เปิดอยู่
# กำหนด RewriteBase โดยอัตโนมัติและตั้งเป็นตัวแปรสภาพแวดล้อม
# หากคุณใช้นามแฝง Apache เพื่อทำโฮสติ้งเสมือนจำนวนมากหรือติดตั้ง
# โปรเจ็กต์ในไดเร็กทอรีย่อย เส้นทางพื้นฐานจะถูกเพิ่มเข้ามาเพื่อให้เหมาะสม
# ความละเอียดของไฟล์ index.php และเปลี่ยนเส้นทางไปยัง URI ที่ถูกต้อง มันจะ
# ทำงานในสภาพแวดล้อมที่ไม่มีคำนำหน้าเส้นทางเช่นกันโดยให้ความปลอดภัยขนาดเดียว
#ตอบโจทย์ทุกปัญหา แต่เนื่องจากคุณไม่จำเป็นต้องใช้ในกรณีนี้ คุณสามารถแสดงความคิดเห็นได้
# 2 บรรทัดต่อไปนี้เพื่อลดค่าใช้จ่าย
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]
# ตั้งค่าส่วนหัว HTTP_AUTHORIZATION ลบโดย Apache
RewriteCond %{HTTP:การอนุญาต} .+
กฎการเขียนซ้ำ ^ - [E=HTTP_AUTHORIZATION:%0]
# เปลี่ยนเส้นทางไปยัง URI โดยไม่มีตัวควบคุมด้านหน้าเพื่อป้องกันเนื้อหาที่ซ้ำกัน
# (มีและไม่มี `/index.php`) ทำการเปลี่ยนเส้นทางนี้ในตอนเริ่มต้นเท่านั้น
# เขียนใหม่โดย Apache ไม่ใช่ในรอบถัดไป มิฉะนั้นเราจะได้รับ
# วนซ้ำการเปลี่ยนเส้นทางที่ไม่มีที่สิ้นสุด (คำขอ -> เขียนใหม่ไปยังตัวควบคุมด้านหน้า ->
# เปลี่ยนเส้นทาง -> คำขอ -> ...)
# ดังนั้นในกรณีที่คุณได้รับข้อผิดพลาด "เปลี่ยนเส้นทางมากเกินไป" หรือคุณได้รับการเปลี่ยนเส้นทางอยู่เสมอ
# ไปที่หน้าเริ่มต้นเนื่องจาก Apache ของคุณไม่เปิดเผย REDIRECT_STATUS
# ตัวแปรสภาพแวดล้อม คุณมี 2 ทางเลือก:
# - ปิดคุณสมบัตินี้โดยแสดงความคิดเห็นใน 2 บรรทัดต่อไปนี้ หรือ
# - ใช้ Apache >= 2.3.9 และแทนที่ค่าสถานะ L ทั้งหมดด้วยค่าสถานะ END และลบ
# กำลังติดตาม RewriteCond (ทางออกที่ดีที่สุด)
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
# หากชื่อไฟล์ที่ขอนั้นมีอยู่ ให้แสดงชื่อนั้น
# เราต้องการให้ Apache ให้บริการไฟล์เท่านั้นไม่ใช่ไดเรกทอรี
# เขียนแบบสอบถามอื่น ๆ ทั้งหมดไปยังตัวควบคุมด้านหน้า
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
</หากโมดูล>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
# เมื่อ mod_rewrite ไม่พร้อมใช้งาน เราจะสั่งให้เปลี่ยนเส้นทางชั่วคราวของ
# หน้าเริ่มต้นไปยังตัวควบคุมด้านหน้าอย่างชัดเจนเพื่อให้เว็บไซต์
# และลิงก์ที่สร้างขึ้นยังคงสามารถใช้ได้
RedirectMatch 307 ^/$ /index.php/
# ไม่สามารถใช้ RedirectTemp แทนได้
</หากโมดูล>
</หากโมดูล>
ตอนนี้ฉันกำลังพยายามใส่ index.php อย่างง่ายด้วย "สวัสดี" ที่ไม่ทำงาน :(
คนจากฝ่ายสนับสนุนบอกฉันว่าเรามีเพียงโฟลเดอร์ /html และโฟลเดอร์ /data เท่านั้นที่ใช้งานได้
ขอบคุณ!