انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: عوض کردن مسیر پیشفرص nginx [حل شد]  (دفعات بازدید: 382 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین how3ein.gh

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
عوض کردن مسیر پیشفرص nginx [حل شد]
« : 25 تیر 1396، 03:59 ب‌ظ »
با سلام خدمت دوستان

چگونه میشه مسیر پیشفرض usr/share/nginx/html تغییر داد؟

چون وقتی می خوام فایل ذخیره کنم باید حتما sudo باشه که تو ویرایشگر امکان پذیر نیست.

باتشکر
« آخرین ویرایش: 26 تیر 1396، 01:43 ب‌ظ توسط how3ein.gh »

آفلاین آقای مهران

  • High Sr. Member
  • *
  • ارسال: 538
  • جنسیت : پسر
  • Xubuntu
پاسخ : عوض کردن تنظیمات ابتدایی nginx
« پاسخ #1 : 25 تیر 1396، 07:22 ب‌ظ »
من تا به حال نیاز پیدا نکردم که در پوشه ی usr/share/nginx تغییری ایجاد کنم! و بدون نمیشه مسیر این پوشه رو عوض کرد! (یعنی میشه ولی میزنی کل سیستم رو خراب می کنی و هیچ دلیلی برای این کار نمی بینم) میشه دلیل نیاز به تغییر رو بگی؟

پوشه ای که معمولا باهاش کار می کنیم var/www هست که وقتی آیپی سرور رو بزنی میاد محتویات اون پوشه رو ( دقیقا بخوام بگم پوشه ی html اش رو) میخونه. اگر بخوایی مسیرر این پوشه رو عوض کنی (مثلا بیاری home/user/www) باید فایل زیر رو ویرایش کنی:
sudo nano /etc/nginx/sites-available/default
اگه یه کوچولو با دقت نگاه کنی میبینی که یه خط کدی هست که همون مسیر var رو نوشته ، بجاش مسیر دلخواه ات رو بزار و با ctrl + x و بعد y ذخیره کن ، بعد باید nginx رو ریستارت کنی:
sudo systemctl restart nginx
حالا اینجا مشکل شروع میشه! (چون شما مسایل ساده ولی مهم گنو لینوکس رو کار نکردی) برای اینکه nginx بتونه به پوشه ی /home/user/www دسترسی داشته باشه باید گروه www-data رو کاری کنیم که بتونه دسترسی داشته باشه به اون پوشه:
sudo chgrp -R www-data /home/user/www && chmod 755 -R /home/user/www
بعد اینکارا طبیعتا نباید مشکلی پیش بیاد.

توصیه : سعی نکن دونه دونه ی این کد رو بدون فکر بزنی بلکه برو در موردشون سرچ کن و یاد بگیر که هر کدوم چیکار میکنه.
نکته : در تمام موارد بالا به جای user نام کاربری ات رو جایگزین کن.
* عنوان تاپیک رو عوض کنی بزاری عوض کردن مسیر پیشفرص nginx بهتره
با هم و با کاربران جدیدتر ، مهربان تر باشیم.
دانیال بهزادی: اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن
من ازادی خودم رو ولو در سختی، به بودن توی زندون طلایی ویندزد ترجیح می‌دم.

آفلاین how3ein.gh

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
پاسخ : عوض کردن تنظیمات ابتدایی nginx
« پاسخ #2 : 25 تیر 1396، 09:42 ب‌ظ »
من تا به حال نیاز پیدا نکردم که در پوشه ی usr/share/nginx تغییری ایجاد کنم! و بدون نمیشه مسیر این پوشه رو عوض کرد! (یعنی میشه ولی میزنی کل سیستم رو خراب می کنی و هیچ دلیلی برای این کار نمی بینم) میشه دلیل نیاز به تغییر رو بگی؟

پوشه ای که معمولا باهاش کار می کنیم var/www هست که وقتی آیپی سرور رو بزنی میاد محتویات اون پوشه رو ( دقیقا بخوام بگم پوشه ی html اش رو) میخونه. اگر بخوایی مسیرر این پوشه رو عوض کنی (مثلا بیاری home/user/www) باید فایل زیر رو ویرایش کنی:
sudo nano /etc/nginx/sites-available/default
اگه یه کوچولو با دقت نگاه کنی میبینی که یه خط کدی هست که همون مسیر var رو نوشته ، بجاش مسیر دلخواه ات رو بزار و با ctrl + x و بعد y ذخیره کن ، بعد باید nginx رو ریستارت کنی:
sudo systemctl restart nginx
حالا اینجا مشکل شروع میشه! (چون شما مسایل ساده ولی مهم گنو لینوکس رو کار نکردی) برای اینکه nginx بتونه به پوشه ی /home/user/www دسترسی داشته باشه باید گروه www-data رو کاری کنیم که بتونه دسترسی داشته باشه به اون پوشه:
sudo chgrp -R www-data /home/user/www && chmod 755 -R /home/user/www
بعد اینکارا طبیعتا نباید مشکلی پیش بیاد.

توصیه : سعی نکن دونه دونه ی این کد رو بدون فکر بزنی بلکه برو در موردشون سرچ کن و یاد بگیر که هر کدوم چیکار میکنه.
نکته : در تمام موارد بالا به جای user نام کاربری ات رو جایگزین کن.
* عنوان تاپیک رو عوض کنی بزاری عوض کردن مسیر پیشفرص nginx بهتره

خیلی ممنونم ازت . مشکل اینجاست که من اصلا پوشه var/www ندارم و فقط var رو دارم ... و برای قرار دادن فایل رو localhost باید به پوشه usr/share/nginx/html مراجعه کنم ... برای همینه که می خوام تغییرش بدم ... چون سطح دست رسیش جوری که نمیش فایل رو راحت ذخیره کرد و اگر سطح دست رسیش و جوری بزارم که بشه از دوستان شنیدم امنیت سیستمم به خطر می افته گفتم مسیرش و عوض کنم و سطح دست رسیش و راحت بزارم که به مشکل بر نخورم ...

عنوان تاپیک رو هم عوض کردم :) حالا به نظرتون چ کنم برای این مشکلم؟‌اگ به خوام اصولی اقدام کنم ؟
« آخرین ویرایش: 25 تیر 1396، 09:54 ب‌ظ توسط how3ein.gh »

آفلاین آقای مهران

  • High Sr. Member
  • *
  • ارسال: 538
  • جنسیت : پسر
  • Xubuntu
پاسخ : عوض کردن مسیر پیشفرص nginx
« پاسخ #3 : 25 تیر 1396، 11:25 ب‌ظ »
عزیز باز درک نمی کنی من چی گفتم ، ما اصلا نیازی نیس با اون پوشه کاری داشته باشیم! بلکه کار ما با var/www/html هست ،‌البته به طور پیشفرض.

اول اینکه این دستور رو بزن:
sudo mkdir -p /var/www/html
بعد اینو بزن:
sudo nano /var/www/html/index.html
یه صفحه ای باز میشه ، توش یه متنی بنویس مثلا بنویس
This is new page!
و بعد ctrl + x و بعد y رو بزن تا سیو بشه. با هر ادیتور دیگه هم می تونی این فایل رو بسازی ، بعد آی پی سرور رو بزن باید اون پیج ما بیاد بالا (در لوکال بزن 127.0.0.1 به عنوان آی پی)

اگر حل شد که دیگه هیچ بعد این در این پوشه ی جدید فایل ها تو بزار و با اون روش که گفتم دسترسی ها شو درس کن!

ولی اگر نشد این دستور رو بزن و خروجی شو کامل برام بزار(کامل)
cat /etc/nginx/sites-available/default
با هم و با کاربران جدیدتر ، مهربان تر باشیم.
دانیال بهزادی: اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن
من ازادی خودم رو ولو در سختی، به بودن توی زندون طلایی ویندزد ترجیح می‌دم.

آفلاین Sadegh Alirezaie

  • Full Member
  • *
  • ارسال: 179
  • جنسیت : پسر
  • Pythonista
    • Sadegh
پاسخ : عوض کردن مسیر پیشفرص nginx
« پاسخ #4 : 26 تیر 1396، 01:19 ق‌ظ »
فقط کافی هست root رو در کانفیگ سرور عوض کنید.
توجه داشته باشید که وب سرور باید دسترسی به مسیر جدید داشته باشه
Poor Are Those Who Have Eyes But Can Not See

آفلاین how3ein.gh

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
پاسخ : عوض کردن مسیر پیشفرص nginx
« پاسخ #5 : 26 تیر 1396، 11:21 ق‌ظ »
عزیز باز درک نمی کنی من چی گفتم ، ما اصلا نیازی نیس با اون پوشه کاری داشته باشیم! بلکه کار ما با var/www/html هست ،‌البته به طور پیشفرض.

اول اینکه این دستور رو بزن:
sudo mkdir -p /var/www/html
بعد اینو بزن:
sudo nano /var/www/html/index.html
یه صفحه ای باز میشه ، توش یه متنی بنویس مثلا بنویس
This is new page!
و بعد ctrl + x و بعد y رو بزن تا سیو بشه. با هر ادیتور دیگه هم می تونی این فایل رو بسازی ، بعد آی پی سرور رو بزن باید اون پیج ما بیاد بالا (در لوکال بزن 127.0.0.1 به عنوان آی پی)

اگر حل شد که دیگه هیچ بعد این در این پوشه ی جدید فایل ها تو بزار و با اون روش که گفتم دسترسی ها شو درس کن!

ولی اگر نشد این دستور رو بزن و خروجی شو کامل برام بزار(کامل)
cat /etc/nginx/sites-available/default
متاسفانه فایل بالا نیومد:

# You may add here your
# server {
#   ...
# }
# statements for each of your virtual hosts to this file

##
# You should look at the following URL's in order to grasp a solid understanding
# of Nginx configuration files in order to fully unleash the power of Nginx.
# http://wiki.nginx.org/Pitfalls
# http://wiki.nginx.org/QuickStart
# http://wiki.nginx.org/Configuration
#
# Generally, you will want to move this file somewhere, and start with a clean
# file but keep this around for reference. Or just disable in sites-enabled.
#
# Please see /usr/share/doc/nginx-doc/examples/ for more detailed examples.
##

server {
      listen 80 default_server;
       listen [::]:80 default_server ipv6only=on;

       root /usr/share/nginx/html;
      index index.php index.html index.htm;

   # Make site accessible from http://localhost/
       server_name server_domain_name_or_IP;

   location / {
      # First attempt to serve request as file, then
      # as directory, then fall back to displaying a 404.
      try_files $uri $uri/ =404;
      # Uncomment to enable naxsi on this location
      # include /etc/nginx/naxsi.rules
   }

   # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
   #location /RequestDenied {
   #   proxy_pass http://127.0.0.1:8080;   
   #}

   error_page 404 /404.html;

   # redirect server error pages to the static page /50x.html
   #
   error_page 500 502 503 504 /50x.html;

   location = /50x.html {
      root /usr/share/nginx/html;
   }

   # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
   #
   location ~ \.php$ {
           try_files $uri =404;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_pass unix:/var/run/php5-fpm.sock;
           fastcgi_index index.php;
           fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
           include fastcgi_params;
       }
   # deny access to .htaccess files, if Apache's document root
   # concurs with nginx's one
   #
   #location ~ /\.ht {
   #   deny all;
   #}
   location /phpmyadmin {
   auth_basic "Restricted";
       auth_basic_user_file /etc/nginx/.htpasswd;
   }
}


# another virtual host using mix of IP-, name-, and port-based configuration
#
#server {
#   listen 8000;
#   listen somename:8080;
#   server_name somename alias another.alias;
#   root html;
#   index index.html index.htm;
#
#   location / {
#      try_files $uri $uri/ =404;
#   }
#}


# HTTPS server
#
#server {
#   listen 443;
#   server_name localhost;
#
#   root html;
#   index index.html index.htm;
#
#   ssl on;
#   ssl_certificate cert.pem;
#   ssl_certificate_key cert.key;
#
#   ssl_session_timeout 5m;
#
#   ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
#   ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES";
#   ssl_prefer_server_ciphers on;
#
#   location / {
#      try_files $uri $uri/ =404;
#   }
#}

اینم خروجی بازم ممنون از راهنمایی هات

آفلاین how3ein.gh

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
پاسخ : عوض کردن مسیر پیشفرص nginx
« پاسخ #6 : 26 تیر 1396، 11:23 ق‌ظ »
فقط کافی هست root رو در کانفیگ سرور عوض کنید.
توجه داشته باشید که وب سرور باید دسترسی به مسیر جدید داشته باشه

ممنون از کمکت اما من تازه واردم اینایی که میگی رو بلد نیستم

آفلاین آقای مهران

  • High Sr. Member
  • *
  • ارسال: 538
  • جنسیت : پسر
  • Xubuntu
پاسخ : عوض کردن مسیر پیشفرص nginx
« پاسخ #7 : 26 تیر 1396، 11:36 ق‌ظ »
برای اینکه خودت یاد بگیری راهنمایی می کنم تا خودت تغییرات رو یاد بگیری.

وقتی گفتم این دستور رو بزن:
cat /etc/nginx/sites-available/default
اون cat میاد محتویات فایل مورد نظر رو نشون میده. اون فایل default بخضی از تنظیمات هست یه خطی هست که میگه:
root /usr/share/nginx/html;
یعنی nginx بیاد از کجا بخونه ، به طور پیشفرض این مسیر رو میخونه (احتمالا تغییر داده شده):
/var/www/html
من علاقه دارم این مسیر روت رو به یه پوشه در نام کاربری خودم تغییر بدم. نام کاربری من mehran هست ، طبیعتا باید نام کاربری خودتو جایگزین کنی.

اول میام پوشه ی مد نظرم رو میسازم:
mkdir -p /home/mehran/www/public
بعد میام در فایل default مسیر مورد نظرم رو وارد می کنم ، یعنی این خط رو :
root /usr/share/nginx/html;
این طوری تغییر میدم :
root /home/mehran/www/public
حالا باید nginx رو ریستارت کنیم :
systemctl restart nginx
میمونه مسئله ی دسترسی nginx ، اگه روی لوکال هستی این کد رو بزن :
sudo chmod 777 -R /home/mehran/www/public
ولی اگر سرور باشه این کار زیاد امن نیست (بهتره مالک فایل رو بزاریم www-data و دسترسی های لازم رو به خودمون و www-data بدیم) برای اینکه با بعضی چیزا آشنا نیستی پس باید بری در مورد chmod و chown و chgrp تحقیق کنی و بعد اگه بازم مشکل داشتی بیایی اینجا و بپرسی.
« آخرین ویرایش: 26 تیر 1396، 12:24 ب‌ظ توسط آقای مهران »
با هم و با کاربران جدیدتر ، مهربان تر باشیم.
دانیال بهزادی: اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن
من ازادی خودم رو ولو در سختی، به بودن توی زندون طلایی ویندزد ترجیح می‌دم.

آفلاین how3ein.gh

  • Jr. Member
  • *
  • ارسال: 32
  • جنسیت : پسر
پاسخ : عوض کردن مسیر پیشفرص nginx
« پاسخ #8 : 26 تیر 1396، 01:43 ب‌ظ »
برای اینکه خودت یاد بگیری راهنمایی می کنم تا خودت تغییرات رو یاد بگیری.

وقتی گفتم این دستور رو بزن:
cat /etc/nginx/sites-available/default
اون cat میاد محتویات فایل مورد نظر رو نشون میده. اون فایل default بخضی از تنظیمات هست یه خطی هست که میگه:
root /usr/share/nginx/html;
یعنی nginx بیاد از کجا بخونه ، به طور پیشفرض این مسیر رو میخونه (احتمالا تغییر داده شده):
/var/www/html
من علاقه دارم این مسیر روت رو به یه پوشه در نام کاربری خودم تغییر بدم. نام کاربری من mehran هست ، طبیعتا باید نام کاربری خودتو جایگزین کنی.

اول میام پوشه ی مد نظرم رو میسازم:
mkdir -p /home/mehran/www/public
بعد میام در فایل default مسیر مورد نظرم رو وارد می کنم ، یعنی این خط رو :
root /usr/share/nginx/html;
این طوری تغییر میدم :
root /home/mehran/www/public
حالا باید nginx رو ریستارت کنیم :
systemctl restart nginx
میمونه مسئله ی دسترسی nginx ، اگه روی لوکال هستی این کد رو بزن :
sudo chmod 777 -R /home/mehran/www/public
ولی اگر سرور باشه این کار زیاد امن نیست (بهتره مالک فایل رو بزاریم www-data و دسترسی های لازم رو به خودمون و www-data بدیم) برای اینکه با بعضی چیزا آشنا نیستی پس باید بری در مورد chmod و chown و chgrp تحقیق کنی و بعد اگه بازم مشکل داشتی بیایی اینجا و بپرسی.

خیلی خیلی خیییییییییییییییلی ممنونم ازت ...

کاملا متوجه شدم و واقعا متشکرم

آفلاین آقای مهران

  • High Sr. Member
  • *
  • ارسال: 538
  • جنسیت : پسر
  • Xubuntu
پاسخ : عوض کردن مسیر پیشفرص nginx
« پاسخ #9 : 26 تیر 1396، 03:46 ب‌ظ »
خیلی خیلی خیییییییییییییییلی ممنونم ازت ...

کاملا متوجه شدم و واقعا متشکرم
خیلی هم عالی. خوشحالم که مفید بوده و مثبت.
با هم و با کاربران جدیدتر ، مهربان تر باشیم.
دانیال بهزادی: اگه این ارسال بهت کمک کرد، دنبال دکمهٔ تشکر نگرد. به جاش تو هم به جامعهٔ آزادت کمک کن
من ازادی خودم رو ولو در سختی، به بودن توی زندون طلایی ویندزد ترجیح می‌دم.