ปรับใช้ตัวอย่าง dot net core web api กับอินสแตนซ์ EC2 ในโฟลเดอร์ /var/www/hello-app โดยใช้ผู้ใช้ âec2-userâ ใน FileZilla
โฟลเดอร์ประกอบด้วย dll ที่จำเป็นและไฟล์ dotnet อื่นๆ
ติดตั้งเว็บเซิร์ฟเวอร์ apache บนอินสแตนซ์ ec2 และเริ่มเว็บเซิร์ฟเวอร์
เรียกใช้บริการ dotnet จากบรรทัดคำสั่งเพื่อให้แน่ใจว่าใช้งานได้โดยใช้คำสั่งด้านล่าง
cd /usr/lib64/dotnet.cd
ดอทเน็ต /var/www/helloapp/WebApi4.dll
- ฉันสร้างบริการ systemd สำหรับ Dot net web api ดังนี้
sudo vim /etc/systemd/system/kestrel-helloapp.service
[หน่วย]
คำอธิบาย=ตัวอย่าง .NET Web API App
[บริการ]
WorkingDirectory=/var/www/helloapp
ExecStart=/usr/lib64/dotnet /var/www/helloapp/WebApi4.dll
เริ่มใหม่ = เสมอ
# เริ่มบริการใหม่หลังจาก 10 วินาทีหากบริการ dotnet ขัดข้อง:
รีสตาร์ทวินาที=10
KillSignal=SIGINT
SyslogIdentifier = ตัวอย่าง dotnet
ผู้ใช้ = อาปาเช่
สิ่งแวดล้อม=ASPNETCORE_ENVIRONMENT=การผลิต
สภาพแวดล้อม=ASPNETCORE_URLS=http://localhost:5000
[ติดตั้ง]
WantedBy=multi-user.target
เมื่อฉันเรียกใช้คำสั่งต่อไปนี้
sudo systemctl เปิดใช้งาน kestrel-helloapp.service
sudo systemctl เริ่ม kestrel-helloapp.service
sudo systemctl สถานะ kestrel-helloapp.service
ฉันได้รับข้อผิดพลาดต่อไปนี้ (203/EXEC) สำหรับคำสั่งที่สาม
[ec2-user@ip-172-31-81-1 dotnet]$ sudo systemctl สถานะ kestrel-helloapp.service
â kestrel-helloapp.service - ตัวอย่างแอป .NET Web API ที่ทำงานบน CentOS 7
โหลดแล้ว: โหลดแล้ว (/etc/systemd/system/kestrel-helloapp.service; เปิดใช้งาน; การตั้งค่าล่วงหน้าของผู้ขาย: ปิดใช้งาน)
ใช้งานอยู่: กำลังเปิดใช้งาน (รีสตาร์ทอัตโนมัติ) (ผลลัพธ์: exit-code) ตั้งแต่วันอังคารที่ 2022-01-11 15:40:30 UTC; 6 วินาทีที่แล้ว
กระบวนการ: 71626 ExecStart=/usr/lib64/dotnet /var/www/helloapp/WebApi4.dll (รหัส=ออก, สถานะ=203/EXEC)
PID หลัก: 71626 (รหัส=ออก สถานะ=203/EXEC)
11 ม.ค. 15:40:30 ip-172-31-81-1.ec2.internal systemd[1]: kestrel-helloapp.service: ออกจากกระบวนการหลักแล้ว รหัส=ออกแล้ว สถานะ=203/EXEC
11 ม.ค. 15:40:30 ip-172-31-81-1.ec2.internal systemd[1]: kestrel-helloapp.service: ล้มเหลวด้วยผลลัพธ์ 'exit-code'
- เปิดพอร์ต 5,000 โดยใช้
sudo firewall-cmd --add-port=5000/tcp --permanent
- ทำให้เจ้าของ apache ของ /var/www โฟลเดอร์
sudo chown -R apache:apache /var/www
sudo chmod -R 550 /var/www
-
ฉันค้นหาข้อผิดพลาดและสาเหตุที่เป็นไปได้ที่เกี่ยวข้องกับข้อผิดพลาด พบดังต่อไปนี้
ตรวจสอบทุกอย่างที่ฉันสามารถคิดยังคงเหมือนเดิม
ข้อความแสดงข้อผิดพลาด (code=exited, status=203/EXEC) มักพบเมื่อตัวสคริปต์เองหรือตัวแปลไม่สามารถดำเนินการได้
อาจมีเหตุผลเหล่านี้:
พาธไปยังสคริปต์ผิด (เช่น /home/py/ReadPressure2AndPostToMqtt.py)
สคริปต์ไม่สามารถเรียกใช้งานได้
ไม่มี shebang (บรรทัดแรก)
เส้นทางผิดใน shebang (เช่น /bin/python3)
ไฟล์ภายในในสคริปต์ของคุณอาจไม่มีสิทธิ์เข้าถึง
SELinux อาจขัดขวางการดำเนินการของพารามิเตอร์ ExecStart ตรวจสอบ /var/log/audit/audit.log สำหรับข้อความของแบบฟอร์ม: type=AVC msg=audit([...]): avc: ปฏิเสธ { ดำเนินการ } หรือในเอาต์พุตของ ausearch -ts ล่าสุด -m avc - ผม.
คุณมีพารามิเตอร์ WorkingDirectory ไม่ถูกต้อง