Score:0

Apache2 - พบเฉพาะ URL หลักเท่านั้น

ธง in

ฉันได้สร้าง ลาราเวล 8 สมัครและติดตั้ง อาปาเช่2.

ไฟล์การกำหนดค่าของฉันมีลักษณะดังนี้:

000-default.conf

<โฮสต์เสมือน *:80>
    # คำสั่ง ServerName ตั้งค่ารูปแบบคำขอ ชื่อโฮสต์ และพอร์ตที่
    # เซิร์ฟเวอร์ใช้เพื่อระบุตัวเอง สิ่งนี้ใช้เมื่อสร้าง
    # URL การเปลี่ยนเส้นทาง ในบริบทของโฮสต์เสมือน ชื่อเซิร์ฟเวอร์
    # ระบุชื่อโฮสต์ที่ต้องปรากฏในส่วนหัวของคำขอ Host:
    # ตรงกับโฮสต์เสมือนนี้ สำหรับโฮสต์เสมือนเริ่มต้น (ไฟล์นี้) สิ่งนี้
    # ค่าไม่ได้ชี้ขาดเนื่องจากใช้เป็นทางเลือกสุดท้ายโฮสต์โดยไม่คำนึงถึง
    # อย่างไรก็ตาม คุณต้องตั้งค่าสำหรับโฮสต์เสมือนเพิ่มเติมอย่างชัดเจน
    #ชื่อเซิร์ฟเวอร์ www.example.com

    ServerAdmin webmaster@localhost
    DocumentRoot /home/admin/เดสก์ท็อป/รหัส/
    # loglevels ที่มีอยู่: trace8, ..., trace1, debug, ข้อมูล, ประกาศ, เตือน,
    # ข้อผิดพลาด วิกฤต การแจ้งเตือน เกิดขึ้น
    # นอกจากนี้ยังสามารถกำหนดค่าล็อกระดับโดยเฉพาะได้
    # โมดูล เช่น
    #ข้อมูล LogLevel ssl:warning

    บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log รวมกัน

    # สำหรับไฟล์การกำหนดค่าส่วนใหญ่จาก conf-available/ ซึ่งได้แก่
    # เปิดใช้งานหรือปิดใช้งานในระดับโลกก็เป็นไปได้
    # รวมบรรทัดสำหรับโฮสต์เสมือนหนึ่งรายการเท่านั้น ตัวอย่างเช่น
    # บรรทัดต่อไปนี้เปิดใช้งานการกำหนดค่า CGI สำหรับโฮสต์นี้เท่านั้น
    # หลังจากถูกปิดใช้งานทั่วโลกด้วย "a2disconf"
    #รวม conf-available/serve-cgi-bin.conf

    <ไดเรกทอรี /home/admin/Desktop/Code/laravel_project/public/>
      AllowOverride ทั้งหมด
      อนุญาตจากทั้งหมด
      ตัวเลือก + ดัชนี
    </ไดเร็กทอรี>

</เวอร์ชวลโฮสต์>

# เป็นกลุ่ม: ไวยากรณ์=apache ts=4 sw=4 sts=4 sr noet

apache2.conf

# นี่คือไฟล์กำหนดค่าเซิร์ฟเวอร์ Apache หลัก ประกอบด้วย
# คำสั่งการกำหนดค่าที่ให้คำแนะนำแก่เซิร์ฟเวอร์
# ดู http://httpd.apache.org/docs/2.4/ สำหรับข้อมูลโดยละเอียดเกี่ยวกับ
# คำสั่งและ /usr/share/doc/apache2/README.Debian เกี่ยวกับ Debian เฉพาะ
#คำแนะนำ
#
#
# สรุปวิธีการกำหนดค่า Apache 2 ใน Debian:
# การกำหนดค่าเว็บเซิร์ฟเวอร์ Apache 2 ใน Debian นั้นค่อนข้างแตกต่าง
# วิธีที่แนะนำของอัปสตรีมในการกำหนดค่าเว็บเซิร์ฟเวอร์ นี่เป็นเพราะ Debian ของ
# เริ่มต้นการติดตั้ง Apache2 พยายามเพิ่มและลบโมดูล
# โฮสต์เสมือน และคำสั่งการกำหนดค่าเพิ่มเติมที่ยืดหยุ่นที่สุดเท่าที่จะเป็นไปได้ใน
# เพื่อดำเนินการเปลี่ยนแปลงอัตโนมัติและจัดการเซิร์ฟเวอร์ให้ง่ายเหมือน
# เป็นไปได้.

# มันแบ่งออกเป็นหลายไฟล์ที่สร้างลำดับชั้นการกำหนดค่าที่ระบุไว้
# ด้านล่าง ทั้งหมดอยู่ในไดเร็กทอรี /etc/apache2/:
#
# /etc/apache2/
# |--apache2.conf
# | `--ports.conf
# |-- เปิดใช้งาน mods
# | |-- *.โหลด
# | `-- *.conf
# |-- เปิดใช้งาน conf
# | `-- *.conf
# `-- เปิดใช้งานไซต์
# `-- *.conf
#
#
# * apache2.conf เป็นไฟล์กำหนดค่าหลัก (ไฟล์นี้) มันทำให้ชิ้นส่วน
# เข้าด้วยกันโดยรวมไฟล์คอนฟิกูเรชันที่เหลือทั้งหมดเมื่อเริ่มต้น
#   เว็บเซิร์ฟเวอร์.
#
# * ports.conf จะรวมอยู่ในไฟล์การกำหนดค่าหลักเสมอ มันคือ
# ควรกำหนดพอร์ตการฟังสำหรับการเชื่อมต่อขาเข้าซึ่งสามารถเป็นได้
#ปรับแต่งได้ตลอดเวลา
#
# * ไฟล์คอนฟิกูเรชันใน mods-enabled/, conf-enabled/ and sites-enabled/
# ไดเร็กทอรีมีข้อมูลโค้ดการกำหนดค่าเฉพาะซึ่งจัดการโมดูล
# ส่วนการกำหนดค่าส่วนกลางหรือการกำหนดค่าโฮสต์เสมือน
#ตามลำดับ.
#
# เปิดใช้งานโดยการเชื่อมโยงไฟล์การกำหนดค่าที่มีอยู่จากพวกเขา
# ที่เกี่ยวข้อง *-ว่าง/คู่ สิ่งเหล่านี้ควรได้รับการจัดการโดยใช้ของเรา
# ตัวช่วย a2enmod/a2dismod, a2ensite/a2dissite และ a2enconf/a2disconf ดู
# หน้าคนที่เกี่ยวข้องสำหรับข้อมูลโดยละเอียด
#
# * ไบนารีเรียกว่า apache2 เนื่องจากการใช้ตัวแปรสภาพแวดล้อมใน
# การกำหนดค่าเริ่มต้น apache2 ต้องเริ่ม/หยุดด้วย
# /etc/init.d/apache2 หรือ apache2ctl การเรียก /usr/bin/apache2 โดยตรงจะไม่เกิดขึ้น
# ทำงานกับการกำหนดค่าเริ่มต้น


#การกำหนดค่าสากล
#

#
# ServerRoot: ด้านบนของไดเร็กทอรีทรีที่เซิร์ฟเวอร์อยู่
# การกำหนดค่า ข้อผิดพลาด และล็อกไฟล์จะถูกเก็บไว้
#
# บันทึก! หากคุณต้องการวางสิ่งนี้บน NFS (หรือเครือข่ายอื่นๆ)
# ระบบไฟล์ที่ติดตั้งแล้วโปรดอ่านเอกสารประกอบ Mutex (มีให้
# ที่ <URL:http://httpd.apache.org/docs/2.4/mod/core.html#mutex>);
#คุณจะช่วยตัวเองให้พ้นจากปัญหาได้มากมาย
#
# อย่าเพิ่มเครื่องหมายทับที่ส่วนท้ายของเส้นทางไดเร็กทอรี
#
#เซิร์ฟเวอร์รูท "/etc/apache2"

#
# ไฟล์ล็อคซีเรียลไลเซชันที่ยอมรับจะต้องถูกจัดเก็บไว้ในดิสก์ภายในเครื่อง
#
#Mutex ไฟล์: ค่าเริ่มต้น ${APACHE_LOCK_DIR}

#
# ไดเรกทอรีที่จะจัดเก็บไฟล์ shm และรันไทม์อื่น ๆ
#

DefaultRuntimeDir ${APACHE_RUN_DIR}

#
# PidFile: ไฟล์ที่เซิร์ฟเวอร์ควรบันทึกกระบวนการ
#เลขประจำตัวเมื่อเริ่ม
# ต้องตั้งค่าใน /etc/apache2/envvars
#
ไฟล์พิด ${APACHE_PID_FILE}

#
# หมดเวลา: จำนวนวินาทีก่อนที่จะรับและส่งหมดเวลา
#
หมดเวลา 300

#
# KeepAlive: อนุญาตการเชื่อมต่อแบบถาวรหรือไม่ (มากกว่า
# หนึ่งคำขอต่อการเชื่อมต่อ) ตั้งค่าเป็น "ปิด" เพื่อปิดใช้งาน
#
เปิด KeepAlive

#
# MaxKeepAliveRequests: จำนวนคำขอสูงสุดที่อนุญาต
# ระหว่างการเชื่อมต่อแบบถาวร ตั้งค่าเป็น 0 เพื่ออนุญาตจำนวนไม่จำกัด
# เราขอแนะนำให้คุณปล่อยให้ตัวเลขนี้สูงเพื่อประสิทธิภาพสูงสุด
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: จำนวนวินาทีในการรอคำขอถัดไปจาก
# ลูกค้าเดียวกันในการเชื่อมต่อเดียวกัน
#
KeepAliveTimeout 5


# ต้องตั้งค่าเหล่านี้ใน /etc/apache2/envvars
ผู้ใช้ ${APACHE_RUN_USER}
กลุ่ม ${APACHE_RUN_GROUP}

#
# HostnameLookups: บันทึกชื่อลูกค้าหรือที่อยู่ IP ของพวกเขา
# เช่น www.apache.org (เปิด) หรือ 204.62.129.132 (ปิด)
# ค่าเริ่มต้นปิดอยู่เพราะจะดีกว่าสำหรับเน็ตโดยรวมหากผู้คน
# ต้องเปิดฟีเจอร์นี้โดยรู้เท่าทัน เนื่องจากการเปิดใช้งานหมายความว่าอย่างนั้น
# คำขอของลูกค้าแต่ละรายการจะส่งผลให้มีคำขอค้นหาอย่างน้อยหนึ่งรายการไปยัง
#เนมเซิร์ฟเวอร์
#
ชื่อโฮสต์ปิดการค้นหา

# ErrorLog: ตำแหน่งของไฟล์บันทึกข้อผิดพลาด
# หากคุณไม่ได้ระบุคำสั่ง ErrorLog ภายใน <VirtualHost>
# คอนเทนเนอร์ ข้อความแสดงข้อผิดพลาดที่เกี่ยวข้องกับโฮสต์เสมือนนั้นจะเป็น
#บันทึกที่นี่. หากคุณ *ทำ* กำหนดไฟล์บันทึกข้อผิดพลาดสำหรับ <VirtualHost>
# คอนเทนเนอร์ ข้อผิดพลาดของโฮสต์นั้นจะถูกบันทึกไว้ที่นั่น ไม่ใช่ที่นี่
#
บันทึกข้อผิดพลาด ${APACHE_LOG_DIR}/error.log

#
# LogLevel: ควบคุมความรุนแรงของข้อความที่บันทึกไปยัง error_log
# ค่าที่มี: trace8, ..., trace1, ดีบัก, ข้อมูล, ประกาศ, เตือน,
# ข้อผิดพลาด วิกฤต การแจ้งเตือน เกิดขึ้น
# นอกจากนี้ยังสามารถกำหนดค่าระดับการบันทึกสำหรับโมดูลเฉพาะ เช่น
# "ข้อมูล LogLevel ssl:warn"
#
LogLevel เตือน

# รวมการกำหนดค่าโมดูล:
รวมตัวเลือก mods-enabled/*.load
รวมตัวเลือก mods-enabled/*.conf

# รวมรายการพอร์ตที่จะฟัง
รวม ports.conf


# ตั้งค่ารูปแบบการรักษาความปลอดภัยเริ่มต้นของเซิร์ฟเวอร์ Apache2 HTTPD มันไม่
# ไม่อนุญาตให้เข้าถึงระบบไฟล์รูทภายนอก /usr/share และ /var/www
# อดีตถูกใช้โดยเว็บแอปพลิเคชันที่บรรจุใน Debian
# หลังอาจใช้สำหรับไดเรกทอรีท้องถิ่นที่ให้บริการโดยเว็บเซิร์ฟเวอร์ ถ้า
# ระบบของคุณกำลังให้บริการเนื้อหาจากไดเร็กทอรีย่อยใน /srv ที่คุณต้องอนุญาต
# เข้าถึงที่นี่หรือในโฮสต์เสมือนที่เกี่ยวข้อง
<ไดเร็กทอรี />
    ดัชนีตัวเลือก FollowSymLinks รวมถึง ExecCGI
    AllowOverride ทั้งหมด
    ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>

<ไดเร็กทอรี /usr/share>
    AllowOverride ไม่มี
    ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>

<ไดเร็กทอรี /var/www/>
    ดัชนีตัวเลือก FollowSymLinks
    AllowOverride ทั้งหมด
    ต้องได้รับอนุญาตทั้งหมด
</ไดเร็กทอรี>

#<ไดเร็กทอรี /srv/>
# ดัชนีตัวเลือก FollowSymLinks
# AllowOverride ไม่มี
#ต้องได้รับทั้งหมด
#</ไดเร็กทอรี>




# AccessFileName: ชื่อของไฟล์ที่จะค้นหาในแต่ละไดเร็กทอรี
# สำหรับคำสั่งการกำหนดค่าเพิ่มเติม ดูเพิ่มเติมที่ AllowOverride
#คำสั่ง
#
AccessFileName .htaccess

#
# บรรทัดต่อไปนี้ป้องกันไฟล์ .htaccess และ .htpasswd
# ดูโดยเว็บไคลเอนต์
#
<FilesMatch "^\.ht">
    ต้องการปฏิเสธทั้งหมด
</FilesMatch>


#
# คำสั่งต่อไปนี้กำหนดชื่อเล่นบางรูปแบบสำหรับใช้กับ
# คำสั่ง CustomLog
#
# สิ่งเหล่านี้เบี่ยงเบนจากข้อกำหนดรูปแบบบันทึกทั่วไปที่ใช้ %O
# (ไบต์จริงที่ส่งรวมถึงส่วนหัว) แทน %b (ขนาดของ
# ไฟล์ที่ร้องขอ) เนื่องจากส่วนหลังทำให้ไม่สามารถตรวจจับบางส่วนได้
# คำขอ
#
# โปรดทราบว่าไม่แนะนำให้ใช้ %{X-Forwarded-For}i แทน %h
# ใช้ mod_remoteip แทน
#
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" รวมกัน
LogFormat "%h %l %u %t \"%r\" %>s %O" ทั่วไป
LogFormat "%{Referer}i -> %U" ผู้อ้างอิง
ตัวแทน LogFormat "%{User-agent}i"

# รวมไดเร็กทอรีละเว้นไฟล์สำรองของบรรณาธิการและ dpkg
# ดูรายละเอียด README.Debian

# รวมตัวอย่างข้อความทั่วไป
รวมทางเลือก conf-enabled/*.conf

# รวมการกำหนดค่าโฮสต์เสมือน:
รวมตัวเลือกไซต์ที่เปิดใช้งาน/*.conf

# เป็นกลุ่ม: ไวยากรณ์=apache ts=4 sw=4 sts=4 sr noet

ของฉัน .htaccess ไฟล์เป็นไฟล์มาตรฐานเมื่อสร้างโครงการ laravel

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

โมดูลต่อไปนี้เปิดใช้งานสำหรับการติดตั้ง apache2 ของฉัน:

> apachectl -M
AH00558: apache2: ไม่สามารถระบุชื่อโดเมนแบบเต็มของเซิร์ฟเวอร์ได้อย่างน่าเชื่อถือ โดยใช้ 127.0.1.1 ตั้งค่าคำสั่ง 'ชื่อเซิร์ฟเวอร์' ทั่วโลกเพื่อระงับข้อความนี้
โหลดโมดูล:
 core_module (คงที่)
 so_module (คงที่)
 watchdog_module (คงที่)
 http_module (คงที่)
 log_config_module (คงที่)
 logio_module (คงที่)
 version_module (คงที่)
 unixd_module (คงที่)
 access_compat_module (แชร์)
 alias_module (แชร์)
 auth_basic_module (แชร์)
 authn_core_module (แชร์)
 authn_file_module (แชร์)
 authz_core_module (แชร์)
 authz_host_module (แชร์)
 authz_user_module (แชร์)
 autoindex_module (แชร์)
 deflate_module (ใช้ร่วมกัน)
 dir_module (แชร์)
 env_module (แชร์)
 filter_module (แชร์)
 mime_module (แชร์)
 mpm_prefork_module (แชร์)
 โมดูลการเจรจาต่อรอง (ใช้ร่วมกัน)
 php7_module (แชร์)
 reqtimeout_module (แชร์)
 rewrite_module (แชร์)
 setenvif_module (แชร์)
 status_module (แชร์)

การกำหนดค่าเซิร์ฟเวอร์ของฉันมีลักษณะดังนี้:

sudo apache2ctl -S
AH00558: apache2: ไม่สามารถระบุชื่อโดเมนแบบเต็มของเซิร์ฟเวอร์ได้อย่างน่าเชื่อถือ โดยใช้ 127.0.1.1 ตั้งค่าคำสั่ง 'ชื่อเซิร์ฟเวอร์' ทั่วโลกเพื่อระงับข้อความนี้
การกำหนดค่า VirtualHost:
*:80 127.0.1.1 (/etc/apache2/sites-enabled/000-default.conf:1)
รูทเซิร์ฟเวอร์: "/etc/apache2"
รูทเอกสารหลัก: "/var/www/html"
ErrorLog หลัก: "/var/log/apache2/error.log"
ค่าเริ่มต้นของ Mutex: dir="/var/run/apache2/" กลไก=ค่าเริ่มต้น 
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
กำหนด: DUMP_VHOSTS
กำหนด: DUMP_RUN_CFG
ผู้ใช้: name="www-data" id=33
กลุ่ม: name="www-data" id=33

เมื่อผมเปิด / url ทุกอย่างทำงานได้ดีอย่างไรก็ตาม เมื่อเปิด deep-url เช่น /บริษัท/appl ฉันได้รับข้อผิดพลาดต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

ข้อเสนอแนะใด ๆ ที่ฉันทำผิด? ฉันใช้ไปแล้ว AllowOverride ทั้งหมด และ อนุญาตจากทั้งหมด สำหรับฉัน DocumentRoot.

ฉันขอขอบคุณสำหรับคำตอบของคุณ!

Craft avatar
us flag
*DOCROOT/laravel_project/index.php* มีอยู่จริงหรือไม่
in flag
@Craft `index.php` ของฉันอยู่ในโฟลเดอร์ต่อไปนี้: `/home/marcus/Desktop/Code/laravel_project/public/index.php`
Craft avatar
us flag
คุณมี _/home/admin/Desktop/Code..._ ในการกำหนดค่าของคุณ ไม่ใช่ _/home/marcus/Desktop/Code..._
Score:1
ธง cz

คุณระบุว่าไซต์กำลังทำงาน แต่ล้มเหลวใน URL ที่ลึก ดังนั้นฉันจะถือว่าการกำหนดค่านั้นใช้ได้ในขณะนี้ และตรวจสอบบันทึก apache ที่ /var/log/apache/error.log (อาจเป็น /var/log/httpd/ บันทึกข้อผิดพลาด)

ในนั้นควรมีข้อผิดพลาดโดยละเอียดซึ่งนำคุณไปสู่สิ่งที่ผิดพลาด

โพสต์คำตอบ

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