Score:0

การปรับใช้แอปพลิเคชัน symfony 5 กับโฮสติ้งที่ใช้ร่วมกันด้วยการเข้าถึง FTP เท่านั้น

ธง ru

ฉันกำลังพยายามปรับใช้เว็บแอปพลิเคชัน 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 เท่านั้นที่ใช้งานได้

ขอบคุณ!

kz flag
"ฉันได้รับข้อผิดพลาด 500 บนหน้าจอ บันทึกไม่ได้ช่วยอะไร มีเพียงข้อความ 404 ทั่วไปเท่านั้น" - คุณต้องดูใน "บันทึกข้อผิดพลาด" สำหรับรายละเอียดของข้อผิดพลาด 500 โดยปกติ "ข้อความ 404" จะถูกบันทึกใน "บันทึกการเข้าถึง" ไม่ใช่ "บันทึกข้อผิดพลาด"
MartynW avatar
de flag
คุณได้รับเพิ่มเติมจากนี้ฉันกำลังพยายามทำให้ไฟล์ .htaccess ทำงานกับ https บนเซิร์ฟเวอร์โฮสต์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา