نمایش نتایج: از شماره 1 تا 1 , از مجموع 1

موضوع: آموزش: تنظیمات پشتیبانی از زبان پایتون در آپاجی

Threaded View

پست قبلی پست قبلی   پست بعدی پست بعدی
  1. #1
    عضو جدید
    تاریخ عضویت
    Aug 2012
    نوشته ها
    6
    تشکر تشکر کرده 
    3
    تشکر تشکر شده 
    5
    تشکر شده در
    4 پست

    پیش فرض آموزش: تنظیمات پشتیبانی از زبان پایتون در آپاجی

    با سلام
    ابتدا اگر مطلب رو در جای اشتباهی می ذارم ار مدیران محترم در خواست می کنم اونو به جای درست منتقل کنند.
    مدت زیادی به دنبال یه هاست اشتراکی گشتم که از زبان پایتون نسخه 3 پشتبانی کنه ولی از اونجا که آموزش ساده و جمع و جوری توی اینترنت برای این موضوع وجود نداره (من ندیدم) بیشتر مدیران هاست در هاست هاشون از این زبان قدرتمند پشتیبانی نمی کنند. تا اونجا بالاخره مجبور شدم برای کار خودم یه وی پی اس بگیرم

    من بر روی سیستم عامل دبیان 7 این کار رو انجام داده ام احتمالا بر روی بقیه سیستم عامل ها هم شبیه به همین باید باشه.
    استانداردی که برای پشتبانی از زبان پایتون برای برنامه نویسی وب وجود داره wsgi است. در آپاچی اگر بخواهیم پشتیبانی از این زبان رو با این استاندارد داشته باشیم باید mod_wsgi رو نصب و فعال کنیم در دبیان کافیه این دستور رو بزنیم
    کد:
    $ sudo apt-get install libapache2-mod-wsgi-py3
    در مرحله بعد باید بریم به سراغ تنظیمات
    فرض کنید من یه ویرچوال هاست دارم به نام mysite.ir و می خوام این هاست از پایتون پشتبانی کنه
    2 حالت کلی برای اجرای mod-wsgi وجود داره
    1. embeded
    2. daemon

    حالت اجرای embeded
    راه اندازی embeded خیلی راحت تره. این حالت پیشفرض اجرای mod wsgi است ولی عموم برنامه نویس های پایتونی اونو نمی پسندند. برای راه اندازی اون کافیه همچین تنطیاتی توی فایل تنظیمات هاست باشه

    کد:
    <Directory /var/www/mysite.ir/>
            Options Indexes FollowSymLinks MultiViews ExecCGI
    
                    AddHandler cgi-script .cgi
                    AddHandler wsgi-script .wsgi .py
                    DirectoryIndex index.html index.py index.wsgi index.php index.pl
    
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    وجود ExecCGI الزامیه ولی نیازی به AddHandler cgi-script .cgi وجود نداره
    بعد از این کار می تونید برنامه هایی که با wsgi برای پایتون نوشته اید رو در فایل هایی با پسوند .py یا .wsgi بریدید و اونها رو مثل فایل های php اجرا کنید
    یه مثالش این کده که نشون می ده mod wsgi داره در چه حالتی اجرا می شه
    کد:
    def application(environ, start_response):
        status = '200 OK'
    
        if not environ['mod_wsgi.process_group']:
          output = 'EMBEDDED MODE'
        else:
          output = 'DAEMON MODE'
        response_headers = [('Content-Type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
    
        start_response(status, response_headers)
    
        return [output]
    حالت اجرای daemon
    این حالت برای برنامه نویس های پایتونی بسیار محبوب تره چون کنترل بیشتری بر اجرای برنامه خودشون دارند
    برای این که این حالت فعال بشه علاوه بر کارایی که در حالت قبلی انجام می دادید باید ابتدای فایل کانفیک هم به این شکل تغییر کنه
    کد:
    ServerAdmin webmaster@localhost
        
        WSGIDaemonProcess www.mysite.ir user=www-data group=www-data processes=1 threads=2 shutdown-timeout=10 inactivity-timeout=10 deadlock-timeout=10
            WSGIProcessGroup www.mysite.ir
    
        DocumentRoot /var/www/mysite.ir
        ServerName mysite.ir
            ServerAlias www.mysite.ir
    به جای www-data باید نام کاربری و گروه مالک هاست رو بذارید سر فرصت همه رو توضیح خواهم داد
    در نهایت فایل کانفیگ باید چیزی شبیه به این بشه

    کد:
    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        
        WSGIDaemonProcess www.mysite.ir user=www-data group=www-data processes=1 threads=2 shutdown-timeout=10 inactivity-timeout=10 deadlock-timeout=10
        WSGIProcessGroup www.mysite.ir
    
        DocumentRoot /var/www/mysite.ir/public_html
        ServerName mysite.ir
        ServerAlias www.mysite.ir
    
        <Directory /var/www/mysite.ir/public_html/>
            Options Indexes FollowSymLinks MultiViews ExecCGI
    
            AddHandler wsgi-script .wsgi .py
            DirectoryIndex index.html index.py index.wsgi index.php index.pl
    
            AllowOverride None
            Order allow,deny
            allow from all
        </Directory>
    
        ErrorLog ${APACHE_LOG_DIR}/error.log
    
        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn
    
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    دیگه ببخشید اگر کثیف و نا منظم نوشتم فایل کانفیگم رو مستقیم کپی کردم
    بعد سر فرصت منظمش می کنم
    سوالی هست در خدمتم

    - - - Updated - - -

    با سلام
    فرض کنید که یه سری کتابخونه بر روی پایتون سیستم عامل نصب کرده اید که برای استفاده های خودتون به عنوان مدیر هاست بوده
    اگر من مدیر هاست باشم علاقه ای ندارم که افرادی که روی سرور من هاست می گیرند دسترسی به این کتابخونه ها داشته باشند راه حل اینه که آپاچی از مفسری که سیستم عامل برای انجام کاراش استفاده می کنه استفاده نکرده و مفسر مخصوص خودش رو داشته باشه
    برای اینکه یه کپی تمیز از مفسر پایتون سیستم در اختیار داشته باشید ابزاری به نام vitualenv به کمک میاد
    خود ابتدا در یه جایی از سیستم یه مفسر تمیز جدید می سازیم برای اینکار از این دستور استفاده می کنیم
    کد:
    virtualenv --always-copy  py3env
    بعد از این کار در جایی از کانفیگ های آپاچی که به صورت سراسری لود می شه این خط رو می ذاریم
    کد:
    WSGIPythonHome /<PATH TO YOUR VIRTUAL ENV PYTHON>/py3env
    خوب الان کافیه آپاچی رو یه بار ری استارت کنید تا این تنظیمات لود بشه
    بهتره این خط تنظیم در فایل تنظیمات wsgi گذاشته بشه که برای من در این مسیر بود
    کد:
    /etc/apache/mods-enabled
    برای تست می تونید یه فایل پایتونی بسازید و این کد رو در اون قرار بدید
    کد:
    def application(environ, start_response):
        status = '200 OK'
    
        import os
        output = str(os)
        response_headers = [('Content-Type', 'text/plain'),
                            ('Content-Length', str(len(output)))]
    
        start_response(status, response_headers)
    
        return [output]
    با خروجی گرفتن از این فایل در مرورگر باید چیزی شبیه به این ظاهر بشه
    کد:
    <module 'os' from '/<PATH TO YOUR VIRTUAL ENV PYTHON>/py3env/lib/python3.2/os.py'>
    که نشون می ده برنامه های شما داره با پایتونی اجرا می شه که در مسیر
    کد:
    /<PATH TO YOUR VIRTUAL ENV PYTHON>/py3env/
    قرار داره
    ویرایش توسط sahama : September 5th, 2014 در ساعت 16:39

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. هاست اشتراکی با پشتیبانی پایتون
    توسط mha1368 در انجمن درخواست هاست اشتراکی
    پاسخ ها: 2
    آخرين نوشته: June 18th, 2017, 07:59
  2. منبع برای آموزش پایتون؟
    توسط number one در انجمن مباحث دیگر
    پاسخ ها: 3
    آخرين نوشته: January 17th, 2016, 13:42
  3. پاسخ ها: 1
    آخرين نوشته: December 31st, 2014, 22:52
  4. پاسخ ها: 1
    آخرين نوشته: February 7th, 2014, 12:27
  5. هاست با پشتیبانی پایتون
    توسط sahama در انجمن درخواست هاست اشتراکی
    پاسخ ها: 5
    آخرين نوشته: May 26th, 2013, 17:13

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •