من از آپاچی به عنوان وب سرور استفاده میکردم و الان برای این اپ ، انجینکس خیلی بهینهتر هست و دقیقا عین سرور مبدا ( که با لمپ ساخته و کانفیگ کرده بودم و برنامه به خوبی اجرا میشد ) یک سرور دیگری نصب کردم با همون کانفیگ ولی به جای آپاچی از انجینکس استفاده کردم.
الان nginx نمیتونه url هارو هندل کنه و لود بشه . من برای اینکار چه کانفیگی روی nginx پیاده کنم ؟
/etc/nginx/sites-available/default
خط های زیر را از کامنت در بیارید
listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default_server ipv6only=on; ## listen for ipv6
سورو نیم رو به عبارت زیر تغییر دهید
# Make site accessible (...)
server_name localhost;
ببینید ایندکس ها رو درست تعریف کردید
root /usr/share/nginx/www;
index index.php index.html index.htm;
مورد زیر از کامنت خارج کنید
# pass the PHP scripts to FastCGI server listening on (...)
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
/etc/.../fpm/php.ini رو ویرایش کنید و مقدار cgi.fix_pathinfo رو به صفر تغییر بدهید ==> ورزن php مثلا بجای 3 نقطه php5
nginx service و php5-fpm رو ری استارت کنید
در آخر اگر دیدید مشکلتون حل نشد ارور لاگ ها رو ببینید همینطوری نمیشه راهنمایی کرد
+
آموزش در سایت مرجع نیز مشاهده گردد ببینید جایی رو از قلم ننداختید یا اشتباهی نکردید
Pitfalls and Common Mistakes | NGINX (http://jee.ir/jBgxV)
succes
July 28th, 2017, 19:41
به بخش زیر برید و ویرایش کنید
/etc/nginx/sites-available/default
خط های زیر را از کامنت در بیارید
listen 80; ## listen for ipv4; this line is default and implied
listen [::]:80 default_server ipv6only=on; ## listen for ipv6
سورو نیم رو به عبارت زیر تغییر دهید
# Make site accessible (...)
server_name localhost;
ببینید ایندکس ها رو درست تعریف کردید
root /usr/share/nginx/www;
index index.php index.html index.htm;
مورد زیر از کامنت خارج کنید
# pass the PHP scripts to FastCGI server listening on (...)
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
#fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
/etc/.../fpm/php.ini رو ویرایش کنید و مقدار cgi.fix_pathinfo رو به صفر تغییر بدهید ==> ورزن php مثلا بجای 3 نقطه php5
nginx service و php5-fpm رو ری استارت کنید
در آخر اگر دیدید مشکلتون حل نشد ارور لاگ ها رو ببینید همینطوری نمیشه راهنمایی کرد
+
آموزش در سایت مرجع نیز مشاهده گردد ببینید جایی رو از قلم ننداختید یا اشتباهی نکردید
Pitfalls and Common Mistakes | NGINX (http://jee.ir/jBgxV)
ممنون از راهنماییتون
من این خط رو در جای خودش به فایل default انجینکس اضافه کردم :
rewrite /webservice/(.*) /$1 break;
و خطای not found حل شد و صفحه سفید داد.
الان خطاهای php رو روشن کردم و با خطای زیر روبرو هستم :
آیا مشکل nginx حل شده و این خطا به nginx ربطی ندارد ؟ و یا این هم دلیلش nginx هست ؟
تشکر
- - - Updated - - -
خطای ایجاد شده :
36419
bigcowboy
July 28th, 2017, 21:28
این خطا نیست یک نوتایس هست که مربوط به اسکریپت هستش و مهم نیست ، توی تنظیمات php یا همین انجین اکس نمایش وارنینگ ها رو غیر فعال کنید
من با تست هایی که زدم متوجه شدم همه کد ها به خوبی اجرا میشن فقط مشکلم اینه که nginx آدرس url هارو نمیتونه ترجمه کنه ، یعنی گیرمون در یک مرحله مونده به خوندن کدهاست. به مرحله کد نمیرسه که بخونه ، not found میده چون url رو نمیتونه لود کنه.
چه راهکاری برای حل این مورد دارید ؟
starting
July 29th, 2017, 02:56
من با تست هایی که زدم متوجه شدم همه کد ها به خوبی اجرا میشن فقط مشکلم اینه که nginx آدرس url هارو نمیتونه ترجمه کنه ، یعنی گیرمون در یک مرحله مونده به خوندن کدهاست. به مرحله کد نمیرسه که بخونه ، not found میده چون url رو نمیتونه لود کنه.
چه راهکاری برای حل این مورد دارید ؟
سلام
دوست من بعنوان تجربه یک موردی رو خدمتتون عرض کنم
انجین خیلی نچسبه و تخصص خودش رو میخواد باور کنید ساده ترین مرحله آن راه اندازیشه و وقتهایی پیش میاد عیبهایی میخورید که اگر روش مسلط نباشید شاید چندین روز معطلتون کنه
اگر واقعا برای خودتون و یادگیری میخواید خیلی خوبه اما برای ران کردن آن و تحویل مشتری دادن بدون شک در طول خدمات به مشکلات بزرگی میخورید
اگر هدف یادگیری محض نیست فعلا از nginx reverse p-r-ox-y apache centos بهره ببرید خیلی هم خوبه
اگر برای یادگیریه دقیقا لاگ رو بزارید ببینم عیب از چیه
کانفیگ لاگ
/path/to/access.log
به مسیر لاگ دقت کنید ببینید کجاست
بعد
service nginx reload
تست کنید محتویات لاگ رو بزارید
succes
July 29th, 2017, 03:22
سلام
دوست من بعنوان تجربه یک موردی رو خدمتتون عرض کنم
انجین خیلی نچسبه و تخصص خودش رو میخواد باور کنید ساده ترین مرحله آن راه اندازیشه و وقتهایی پیش میاد عیبهایی میخورید که اگر روش مسلط نباشید شاید چندین روز معطلتون کنه
اگر واقعا برای خودتون و یادگیری میخواید خیلی خوبه اما برای ران کردن آن و تحویل مشتری دادن بدون شک در طول خدمات به مشکلات بزرگی میخورید
اگر هدف یادگیری محض نیست فعلا از nginx reverse p-r-ox-y apache centos بهره ببرید خیلی هم خوبه
اگر برای یادگیریه دقیقا لاگ رو بزارید ببینم عیب از چیه
کانفیگ لاگ
/path/to/access.log
به مسیر لاگ دقت کنید ببینید کجاست
بعد
service nginx reload
تست کنید محتویات لاگ رو بزارید
ممنون از راهنمایی خوبتون ، ممکنه بفرمایید
نصب nginx reverse p-r-ox-y apache centos چگونه هست ؟
آیا این هم یک نوع وب سرور هست ؟
کارش و سرعتش و امنیتش چگونه هست
با تشکر
bigcowboy
July 29th, 2017, 14:56
شما الان توی ریرایت کردن مشکل دارید ؟
این یک کانفیگی هست که قبلا روی انجین اکس با php-fpm انجام دادم و تا مدت ها باهاش کار میکردم
این کانفیگ برای ویرچوال هاست server.ir
در مسیر
/var/htdocs/server.ir/www
برای ریرایت کردن
^/mypages/(.*)/(.*)$ /mypage.php?v=$1&d=$2
هستش
یک نگاهی بهش بندازیید شاید کمک کنه
در ضمن اون هدر های متد option هم اختیاریه و خودم واسه کار خودم تعریف کردم ..
server {
listen 80;
server_name server.ir
client_max_body_size 120M;
خب الان مشکل من با این آدرس هست ، تمامی آدرس ها به خوبی کار میکنه ( در خوندن کد ها مشکلی ندارم ، در url های این مدلی مشکل دارم که حتی به مرحله خوندن کد هم نمیرسه :