אחסון אתרים (nodejs)
-
@מנצפך אני איש של ממשקים גרפיים וממש לא אוהב שורת פקודה (אפילו ששורת הפקודה של לינוקס היא ממש ממש טובה).
אבל שרת צריך לממש בידיים, אחרת אתה חובבן לנצח, פאנלי הניהול האלה מרחיקים אותך מלהבין מה קורה.
בקשר לעריכת קבצים תערוך במחשב שלך כמו מלך. אם אתה רוצה לעלות לשרת יש לך את הקליינטים של ssh כמו הmoba שהוזכר, אם אתה רוצה תיקיה שכל שינוי בה משתקף בשרת אתה יכול להתקין winscp שמעלה על כל שינוי, ואז אתה יכול לערוך באיזה תכונת עריכה שתרצה.עריכה של תו או שתיים בשרת, תוכל לעשות עם עורכי שורת פקודה.
-
אם אתה רוצה יש IDE בדפדפן.
אתה יכול לחבר אותו לשרת שלך ב SSH.
https://aws.amazon.com/cloud9/
לפי מה שבדקתי זה בחינם. אם אתה לא לוקח שרת מאמזון. -
@magicode אמר
אם אתה רוצה יש IDE בדפדפן.
אתה יכול לחבר אותו לשרת שלך ב SSH.
https://aws.amazon.com/cloud9/
לפי מה שבדקתי זה בחינם. אם אתה לא לוקח שרת מאמזון.
ה-ide הזה משקף את כל הפרוייקט או רק את הדף שאתה מתעסק איתו (כמו לדוגמא אם אתה עורך את הקבצים שאתה רואה ב-winscp) בלי להציג מידע מהקבצים המקושרים?
-
@magicode כאשר עסקתי בVBA אז עורך הקוד היה מציג את כל הclassים שבפרוייקט. כיום כשאני ניגש לשרת עם winscp ועורך את הקבצים אז העורך מציג לי רק את הקובץ הספציפי ולא מכיר בשאר הקבצים המקושרים בפרוייקט.
שאלתי אם בגישת SSH הזו הוא מכיר את כל הפרוייקט או רק את הקובץ הספציפי שאותו עורכים. -
@chagold אמר באחסון אתרים (nodejs):
כאשר עסקתי בVBA אז עורך הקוד היה מציג את כל הclassים שבפרוייקט. כיום כשאני ניגש לשרת עם winscp ועורך את הקבצים אז העורך מציג לי רק את הקובץ הספציפי ולא מכיר בשאר הקבצים המקושרים בפרוייקט.
שאלתי אם בגישת SSH הזו הוא מכיר את כל הפרוייקט או רק את הקובץ הספציפי שאותו עורכים.זה תלוי ב IDE.
ב JS בשונה משפות אחרות היא לא בעלת טיפוסיות חזקה ולכן העורך IDE מתקשה להבין את הקשר. אלא אם כן בונים את זה בצורה מסודרת. -
כפי ש @dovid כתב כאן למעלה, ישנה בעיה בהרצת יישומי node.js אחרי שהטרנימל (או חיבור ה SSH) נסגר.
מה עושים?
יש כאן פתרון בתשובה הראשונה https://stackoverflow.com/questions/5818202/how-to-run-node-js-app-forever-when-console-is-closed
נראה לי שבשם @magicode נאמר כך למעלה.
אבל לא הצלחתי לעשות זאת. שמתי את הקובץ במקום שמוזכר בתשובה. אני מנסה להריץ דרך ה SSHsudo start myapp
ומקבל תשובה:
start: Unable to connect to Upstart: Failed to connect to socket /com/ubuntu/upstart: Connection refused
מה עושים?
-
מצאתי פתרון דומה אך שונה:
https://gist.github.com/learncodeacademy/3a96aa1226c769adba39
(איך מיישרים לשמאל?)in ubuntu dist > 15.04 they uses systemd instead of upstart so my solution was
log to root
sunano /lib/systemd/system/<service name>.service
and write this
[Unit]
Description=Start <appname> node.js app[Service]
ExecStart=/usr/local/bin/node /home/deploy/<app name>/bin/www
Restart=always
to start and stop service useservice <service name> start
service <service name> stop
to make it start with bootcd /lib/systemd/system/
sudo systemctl enable <service name>
systemctl add-wants multi-user.target <servicename>.service -
פתרון נוסף והרבה יותר מוצלח לטעמי,
- nodemon. מאפשר הרצה קבועה וריסטארט כשמתבצעים שינויים.
- PM2. כלי ממש מוצלח! מיועד לא רק לnodejs. גם לפייתון, ועוד כמה שפות. מאפשר לבחור אינטרפטר, מאפשר גם הרצה ב upstart.
מוניטר שמציג את אחוזי השימוש של כל אפליקציה.
ניתן גם להגדיר שיפעיל אוטמטית כשיש שינויים בקבצים.
קיצר, כלי מושלם!
-
@aaron אמר באחסון אתרים (nodejs):
@dovid
זה אולי עובד, אבל מכוער. ומקשה בגישה חזרה לתהליך.
ולא מאפשר שום פונקציה ממה שהזכרתיהפתרונות שהצעת הם פתרונות ארוכי טווח, ואולי הם מצויינים (סתם ככה ככלל, כל פיתרון שמחייב כלי צד שלישי הוא פתרון "רגיש" שלא תמיד מתאים ויכול להיות מסרבל).
אני עניתי על שאלה פשוטה איך להריץ תהליך שלא נופל עם סגירת הSSH.