آموزش ارتقا به PHP 7 در WAMP Server

تبلیغات
کانال تلگرام فتولیا

بروزرسانی WAMP Server به PHP 7.0 ساده تر از چیزی هست که به نظر می رسه.در این مقاله طی چند قدم این کار را انجام می دهیم.

 

در همین رابطه :   آموزش ارتقا نسخه PHP 5.6 به PHP 7.1 در XAMPP ویندوز

 

پیش نیازها

نصب بودن WAMP:

اگر هنوز آن را نصب نکرده اید می توانید از اینجا دانلود کنید:

http://www.wampserver.com/en

 

نصب بودن Visual C++ 2015 (VC14) redistributables:

از آنجا که php 7 با Visual C++ 2015 (اختصارا VC14) کامپایل شده است، موقع ارتقا php هم باید نصب باشد .می توانید از آدرس زیر دانلود کنید:

https://www.microsoft.com/en-us/download/details.aspx?id=48145

 

PHP 7

از آدرس زیر فایل های زبان php 7 را دانلود کنید.هم نسخه ۳۲ بیتی و هم ۶۷ بیتی Thread Safe:

http://windows.php.net/download

 


 

بعد از اینکه همه این پیش نیازها آماده و ۲ مورد اول نصب شدند آماده ایم تا کار ارتقا را شروع کنیم.

۱.یک پوشه در مسیر wamp ایجاد کنید به این صورت:

/wamp/bin/php/php7.0.2/

نکته : عبارت “php7.0.2” را باید با نسخه ای که خودتان دانلود کرده اید تغییر دهید.مثلا اگر نسخه php7.1.1 را دانلود کرده اید ، اسم پوشه هم باید همین باشد.

۲.فایل فشرده مربوط به php را که دانلود کرده اید ،داخل پوشه بالا unzip کنید.

۳.وارد پوشه فوق (/wamp/bin/php/php7.0.2/) شوید و یک فایل با نام “wampserver.conf” با محتویات زیر ایجاد کنید:

// wampserver.conf
<?php  
    $phpConf['phpIniDir'] = '.';
    $phpConf['phpExeDir'] = '.';
    $phpConf['phpConfFile'] = 'php.ini';

    //PHP 7 needs Apache 2.4.x and doesn't work with Apache 2.2.x

    $phpConf['apache']['2.4']['LoadModuleName'] = 'php7_module';
    $phpConf['apache']['2.4']['LoadModuleFile'] = 'php7apache2_4.dll';
    $phpConf['apache']['2.4']['AddModule'] =  '';
?>

۴.فایل config.inc.php را از مسیر /wamp/scripts/config.inc.php باز کنید

۵.در آرایه $phpDllToCopy ،مقادیر زیر را اضافه کنید:

'icudt56.dll',  
'icuin56.dll',  
'icuio56.dll',  
'icule56.dll',  
'icuuc56.dll',

نکته : اسامی این فایل ها می تواند برای نسخه های مختلف php متفاوت باشد.برای اطلاع از نام درست فایل ها برای شما،به مسیر /wamp/bin/php/php7.0.2/ رفته و هر فایلی هم نامش با icu آغاز می شود ،داخل آرایه $phpDllToCopy اضافه کنید.

فایل نهایی شبیه این خواهد بود:

// config.inc.php
// Above code was omitted for brevity

$phpDllToCopy = array (
    'icudt56.dll',
    'icuin56.dll',
    'icuio56.dll',
    'icule56.dll',
    'icuuc56.dll',
    'icudt52.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.6.a2
    'icuin52.dll',
    'icuio52.dll',
    'icule52.dll',
    'iculx52.dll',
    'icutest52.dll',
    'icutu52.dll',
    'icuuc52.dll',
    'icudt51.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.5.6
    'icuin51.dll',
    'icuio51.dll',
    'icule51.dll',
    'iculx51.dll',
    'icutest51.dll',
    'icutu51.dll',
    'icuuc51.dll',
    'icudt50.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.5
    'icuin50.dll',
    'icuio50.dll',
    'icule50.dll',
    'iculx50.dll',
    'icutest50.dll',
    'icutu50.dll',
    'icuuc50.dll',
    'icudt49.dll', //[modif oto] - Ajouts pour éviter unknown error PHP 5.3/5.4
    'icuin49.dll',
    'icuio49.dll',
    'icule49.dll',
    'iculx49.dll',
    'icutest49.dll',
    'icutu49.dll',
    'icuuc49.dll',
    'libeay32.dll',
    'libsasl.dll', //[modif oto] - Ajout pour éviter unknown error
    'libintl.dll',
    'php5isapi.dll',
    'php5nsapi.dll',
    'ssleay32.dll',
    'php5ts.dll',
    'fribidi.dll', //[modif oto] - Ci-contre et dessous pour PHP 5.2.x
    'fdftk.dll',   // Peuvent être supprimés pour PHP 5.3.0 ou plus
    'libmcrypt.dll',
    'libmhash.dll',
    'libmysql.dll',
    'libmysqli.dll',
    'msql.dll',
    'ntwdblib.dll',
    'php5activescript.dll',
);

۶.حالا باید بریم سراغ فایل php.ini.دو راه برای این کار داریم . راه اول :

  • به مسیر /wamp/bin/php/php5.5.12/ برید (دفت کنید که php5.5.12 نسخه فعلی php شماست که شاید کمی متفاوت از این باشد)
  • فایل php.ini را پیدا کنید
  • این فایل را به مسیر /wamp/bin/php/php7.0.2/ کپی کنید
  • فایل کپی شده را از /wamp/bin/php/php7.0.2/php.ini را باز کنید
  • در فایل php.ini (مربوط به php 7.0.2) هر جایی که نسخه php قدیمی (۵.۵.۱۲) را پیدا کردید به نسخه جدید (۷.۰.۲) تغییر بدید.مثلا:
    از : extension_dir = "c:/wamp/bin.php/php5.5.12/ext/"
    به:  extension_dir = "c:/wamp/bin.php/php7.0.2/ext/"
  • موقع نگارش این مقاله هنوز نسخه پایداری برای ماژول xdebug در php 7 ارائه نشده است.بنابراین تا زمان ارائه، این ماژول را به اضافه کردن ; در اول خط ،غیر فعال می کنیم
    از : zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
    به: ;zend_extension = "c:/wamp/bin/php/php5.5.12/zend_ext/php_xdebug-2.2.5-5.5-vc11-x86_64.dll"
  • بخش Windows Extensions را پیدا کرده و آن را با کد زیر جایگزین کنید . دقت کنید که ماژول هایی که قبلا فعال بودند ،حالا نیز فعال باشند .
    ; Windows Extensions
    ; Note that ODBC support is built in, so no dll is needed for it.
    ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
    ; extension folders as well as the separate PECL DLL download (PHP 5).
    ; Be sure to appropriately set the extension_dir directive.
    ;
    extension=php_bz2.dll  
    extension=php_curl.dll  
    ;extension=php_com_dotnet.dll
    ;extension=php_enchant.dll
    extension=php_fileinfo.dll  
    ;extension=php_ftp.dll
    extension=php_gd2.dll  
    extension=php_gettext.dll  
    extension=php_gmp.dll  
    extension=php_intl.dll  
    extension=php_imap.dll  
    ;extension=php_interbase.dll
    extension=php_ldap.dll  
    extension=php_mbstring.dll  
    extension=php_exif.dll      ; Must be after mbstring as it depends on it  
    extension=php_mysqli.dll  
    ;extension=php_odbc.dll
    extension=php_openssl.dll  
    ;extension=php_pdo_firebird.dll
    extension=php_pdo_mysql.dll  
    ;extension=php_pdo_oci.dll
    ;extension=php_pdo_odbc.dll
    ;extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll  
    ;extension=php_pgsql.dll
    ;extension=php_phpdbg_webhelper.dll
    ;extension=php_shmop.dll
    
    ; The MIBS data available in the PHP distribution must be installed.
    ; See [www.php.net]
    ;extension=php_snmp.dll
    
    extension=php_soap.dll  
    extension=php_sockets.dll  
    extension=php_sqlite3.dll  
    ;extension=php_sysvshm.dll
    ;extension=php_tidy.dll
    extension=php_xmlrpc.dll  
    extension=php_xsl.dll

و راهکار دوم به این شکل است:

  • به /wamp/bin/php/php7.0.2/ بروید
  • فایل php.ini را باز کنید
  • جایگزینی های زیر را انجام دهید یعنی خط اول را با گذاشتن علامت ; در ابتدای آن غیر فعال کنید و خط دوم را اضافه کنید.(دقت کنید اگر ومپ را در مسیری غیر از C:/wamp نصب کرده اید،مسیر دقیق را در پایین جایگزین کنید)
    ;error_log = php_errors.log
    error_log = C:/wamp/logs/php_error.log
    
    ;extension_dir = "./"
    extension_dir = "C:/Wamp/bin/php/php7.0.2/ext/"  
    
    ;upload_tmp_dir =
    upload_tmp_dir = "C:/wamp/tmp"  
    
    ;date.timezone =
    date.timezone = UTC  
    ;(or your own timezone)
    
    ;sendmail_from = me@example.com
    sendmail_from = ایمیل شما  
    
    mysql.default_port =  
    mysql.default_port = 3306  
    
    ;session.save_path = "/tmp"
    session.save_path = "C:/wamp/tmp"   
    
    soap.wsdl_cache_dir="/tmp"  
    soap.wsdl_cache_dir="C:/wamp/tmp"  
    

     

  • بخش Windows Extensions را پیدا کرده و آن را با کد زیر جایگزین کنید . دقت کنید که ماژول هایی که قبلا فعال بودند ،حالا نیز فعال باشند .
    ; Windows Extensions
    ; Note that ODBC support is built in, so no dll is needed for it.
    ; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
    ; extension folders as well as the separate PECL DLL download (PHP 5).
    ; Be sure to appropriately set the extension_dir directive.
    ;
    extension=php_bz2.dll  
    extension=php_curl.dll  
    ;extension=php_com_dotnet.dll
    ;extension=php_enchant.dll
    extension=php_fileinfo.dll  
    ;extension=php_ftp.dll
    extension=php_gd2.dll  
    extension=php_gettext.dll  
    extension=php_gmp.dll  
    extension=php_intl.dll  
    extension=php_imap.dll  
    ;extension=php_interbase.dll
    extension=php_ldap.dll  
    extension=php_mbstring.dll  
    extension=php_exif.dll      ; Must be after mbstring as it depends on it  
    extension=php_mysqli.dll  
    ;extension=php_odbc.dll
    extension=php_openssl.dll  
    ;extension=php_pdo_firebird.dll
    extension=php_pdo_mysql.dll  
    ;extension=php_pdo_oci.dll
    ;extension=php_pdo_odbc.dll
    ;extension=php_pdo_pgsql.dll
    extension=php_pdo_sqlite.dll  
    ;extension=php_pgsql.dll
    ;extension=php_phpdbg_webhelper.dll
    ;extension=php_shmop.dll
    
    ; The MIBS data available in the PHP distribution must be installed.
    ; See [www.php.net]
    ;extension=php_snmp.dll
    
    extension=php_soap.dll  
    extension=php_sockets.dll  
    extension=php_sqlite3.dll  
    ;extension=php_sysvshm.dll
    ;extension=php_tidy.dll
    extension=php_xmlrpc.dll  
    extension=php_xsl.dll

     

  • حالا در مسیر /wamp/bin/php/php7.0.2/ یکی کپی از فایل php.ini ایجاد کرده و اسمش را به phpForApache.ini تغییر دهید.
  • از WAMP Server خارج شوید
  • مطمئن شوید که مسیر php 7 را به عنوان path environment variable به ویندوز اضافه کرده اید.(مثال)
  • استارت ومپ سرور رو بزنید
    روی آیکن سبز آن کنار ساعت ویندوز کلیک کنید
    از PHP -> Version -> 7.0.2 نسخه جدید php رو انتخاب کنید

حالا اگر همه چیز طبق روال و درست پیش رفته باشد ،ومپ ری استارت شده و php جدید آماده استفاده است.

برای اطمینان به مسیر http://localhost/?phpinfo=1 رفته و نسخه php را چک کنید. تبریک نسخه جدید php برای شما آماده استفاده است.

 

مشکلات متداول

مشکل : نسخه جدید php در منوی PHP ومپ موجود نیست!

راه حل : مطمئن شوید که نسخه ای از /wamp/bin/php/php7.0.2/php.ini را کپی کرده و نامش را به phpForApache.ini تغییر داده اید

مشکل : آیکن ومپ من بعد از استارت قرمز یا نارنجی مانده و سبز نمی شود!

راه حل : این مشکل می تواند علت های مختلفی داشته باشد.برای یافتن علت کارهای زیر را انجام دهید:

  • خط فرمان ویندوز (cmd.exe) را باز کنید و مسیر آن را به این پوشه تغییر دهید : C:/wamp/bin/apache/apache2.4.9/bin
  • حالا دستور .\httpd -t را وارد کنید
  • اگر خطایی مخصوصا در نحو کدها موجود باشد خواهید دید.فراموش نکنید به لاگ های خطا هم نگاه کنید

منبع

 

4 Comments

  1. سلام
    تشکر از آموزشتون.
    من طبق روال و روش اول رفتم.
    و کامل مراحل رو انجام دادم و یه بار هم چک کردم(البته اون فایل هایی که دانلود کردم رو فقط نسخه ۶۴ش رو کپی کردم چون دستگاهم ۶۴ بیتی هست و وقتی اون یکی فایل رو کپی کردم تمام فایل هارو replace میکرد بخاطر همین فقط ۶۴ رو نصب کردم)
    اما نسخه جدید توی لیست نسخه ها نیست، اون فایل phpForApache هم ایجاد شده ولی بازم مشکل هست…
    لطفا راهنمایی کنید باتشکر

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

More in PHP
فرم ثبت نام حرفه ای با PHP/jQuery به صورت AJAX

سلام :) در این مبحث اگر موافق باشید می خواهیم روی یک فرم با شمایل فیبر کربن ! کار کنیم...

Close