خادم سبارتان ثابت مع العديد من الميزات:
الخوادم المعروفة التي تعمل spsrv:
الأسئلة / الدعم
جدول المحتويات
go installلديك ثلاثة خيارات:
يتم توفير الثنائيات المسبقة للبنية Darwin و Linux ARM/AMD-64 منذ V0.5.4. توجه إلى صفحة العلامات على git.sr.ht ، انقر فوق علامة مطلوبة وقم بتنزيل الثنائي للهندسة المعمارية.
go install أولاً ، تحتاج إلى تثبيت GO وتشير إلى مجلد ~/go مع $GOPATH يشير إليه.
go install git.sr.ht/~hedy/spsrv@latest
سيكون هناك ثنائي في ~/go/bin/ مع رمز المصدر على ~/go/src/
لا تتردد في تحريك الثنائي في مكان آخر مثل /usr/sbin/
لاحظ أنه يوصى بتثبيت أي إصدار آخر @v0.0.0 بدلاً من الالتزام الأخير لأنه قد لا يكون مستقرًا.
تشغيل git clone https://git.sr.ht/~hedy/spsrv من أي دليل و cd spsrv
تأكد من أنك قد تم تثبيتها والعمل.
git checkout v0.0.0 # recommended to pin a specific tag
make build
عندما ينتهي ، سيكون الثنائي في ./bin .
إذا لم يكن لديك صنع ، فيمكنك فقط go build (فقط هذا الإصدار وبناء المعلومات لن يكون متاحًا باستخدام spsrv --version ).
إذا كنت لا ترغب في تثبيت GO أو استنساخ الريبو ، ولم يتم دعم بنيةك في الثنائيات المسبقة ، فقم بإسقاط بريد إلكتروني إلى صندوق الوارد الخاص بي (أو اتصل بي على انفراد) حتى أتمكن من تجميع ثنائي للهندسة المعمارية.
موقع ملف التكوين الافتراضي هو /etc/spsrv.conf يمكنك تحديد المسار الخاص بك عن طريق تشغيل SPSRV مثل
spsrv -c /path/to/file.conf
لا تحتاج إلى تشغيل ملف التكوين لتشغيل SPSRV ، فسيستخدم فقط القيم الافتراضية.
لاحظ أن الخيارات غير حساسة للحالة.
فيما يلي خيارات التكوين وقيمها الافتراضية
عام
port=300 : منفذ للاستماع إلىhostname="localhost" : إذا تم تعيين هذا ، فسيتم رفض أي طلب لأسماء المضيف بخلاف هذه القيمةrootdir="/var/spartan" : مجلد لجلب الملفاتقائمة الدليل
dirlistEnable=true : تمكين قائمة الدليل للمجلدات التي لا تحتوي على index.gmidirlistReverse=false : عكس ترتيب الملفات المدرجةdirlistSort="name" : كيف يتم فرز الملفات ، فقط "الاسم" ، "الحجم" ، و "الوقت". الإعدادات الافتراضية إلى "الاسم" إذا تمت مواجهة خيار غير معروفdirlistTitles=true : إذا كان ذلك صحيحًا ، فستستخدم قائمة الدليل رأس المستوى الأول في ملفات *.gmi بدلاً من اسم الملف~ المستخدم/ الدلائل
userdirEnable=true : تمكين الخدمة /~user/* طلباتuserdir="public_spartan" : دليل الجذر للمستخدمين. لا ينبغي أن يكون لهذا مائلات زائدة ، وأنه يتعلق بـ /home/user/userSubdomains=false : VHosts المستخدم. ما إذا كان للسماح user.host.name/foo.txt بأنه هو نفسه مثل host.name/~user/foo.txt (عندما يكون hostname="host.name" ). ملاحظة : يعمل هذا فقط عند تعيين خيار hostname .CGI
CGIPaths=["cgi/"] : قائمة المسارات حيث سيتم تشغيل الملفات القابلة للتنفيذ العالمي كعمليات CGI. سيتم فحص هذه المسارات إذا بادئة المسار المطلوب. بالنسبة للقيمة الافتراضية ، سيتم تشغيل طلب /cgi/hi.sh ( ./public/cgi/hi.sh hi.shusercgiEnable=false : تمكين تشغيل البرامج النصية CGI للمستخدم أيضًا. هذا أمر خطير لأن SPSRV لا يغير (بعد) UID لعملية CGI ، وبالتالي سيتم تشغيل العملية من قبل المستخدم نفسه الذي يقوم بتشغيل الخادم ، مما قد يعني أن الكتابة إلى false userdirEnable ، وما إلى false . مما يعني أنه إذا لم يتم تمكين أدلة المستخدم ، فلن يكون هناك كل من CGI.تحقق من بعض الأمثلة على التكوين في الأمثلة/ الدليل.
يمكنك تجاوز القيم في ملف التكوين إذا قمت بتزويدها من سطر الأوامر:
Usage: spsrv [ [ -c <path> -h <hostname> -p <port> -d <path> ] | --help | --version ]
-c, --config string Path to config file
-d, --dir string Root content directory
-h, --hostname string Hostname
-p, --port int Port to listen to
لاحظ أنه لا يمكنك تعيين اسم المضيف أو مسار DIR , لأن SPSRV يستخدم ذلك للتحقق مما إذا كنت قد قدمت خيارًا. لا يمكنك ضبط المنفذ على 0 أيضًا ، آسف ، يأتي هذا القيد مع ميزة القدرة على تجاوز قيم التكوين من سطر الأوامر.
لا توجد حجج مطلوبة عند تشغيل SPSRV ، فقط الخيارات المذكورة أعلاه :)
تم تعيين قيم البيئة التالية لنصوص CGI:
GATEWAY_INTERFACE # CGI/1.1
REMOTE_ADDR # Remote address
SCRIPT_PATH # (Relative) path of the CGI script
SERVER_SOFTWARE # SPSRV
SERVER_PROTOCOL # SPARTAN
REQUEST_METHOD # Set to nothing
SERVER_PORT # Port
SERVER_NAME # Hostname
DATA_LENGTH # Input data length
سيتم وضع مجموعة البيانات ، إن وجدت ، كـ stdin لعملية CGI.
ضع في اعتبارك أن البرامج النصية CGI (حتى الآن) يتم تشغيلها من قبل المستخدم نفسه مثل عملية الخادم ، وبالتالي من الخطورة عمومًا السماح للمستخدمين بامتلاك البرامج النصية الخاصة بهم CGI. انظر قسم التكوين لمزيد من التفاصيل.
تحقق من بعض مثال البرامج النصية CGI في الأمثلة/ الدليل.
مثال على ذلك تكوينات خدمة SystemD مدرجة أيضًا هناك. لا تتردد في المساهمة في أنظمة أخرى :)
يرجى إما استخدام قناة #Spartan على Tilde.Chat IRC أو صندوق الوارد الخاص بي.
كلاهما مدرج في الجزء العلوي من هذا المستند.
بقع -> صندوق الوارد العام
/مجلد إلى /مجلد /إعادة التوجيه
قائمة الدليل
تسجيل إلى الملفات
~ أدلة المستخدم
refactor يعمل DIR جزء
تكوين
CGI
SCGI
خوادم متعددة مع كل من confs الخاصة بهم
ReadMe: