نصب و راه اندازی فریمورک Yii2:
از آنجا که سیستم فریمورک کلا نسبت به نسخه قبلی تغییر پیدا کرده است، نصب یا بایستی از طریق کامپوزر انجام شود و یا دانلود فایل فشرده و اکسترکت کردن آن در یک پوشه قابل دسترس از طریق وب.
نکته قابل ذکر اینکه چون سیستم خودم لینوکس هست، نصب همه چیز و مسیرها را بر اساس لینوکس به شما میگویم و دوستان عزیز ویندوزی با یک جستجوی کوچک در اینترنت معادل آن را برای خودشان پیدا کنند. ;-)
برای نصب کامپوزر دستور اول را بزنید و با دستور دوم فایل را منتقل کنید به پوشه bin تا از این طریق دستور کامپوزر همیشه در دسترس مان باشد:
curl -s http://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
از اونجا که هنوز نسخه نهایی (stable) انتشار پیدا نکرده است ما نسخه dev رو برای ایجاد پروژه استفاده می کنیم. برای نصب کافی است که با دستور کامپوزر، فرمان ایجاد پروژه Yii2 را بدهیم:
composer create-project --prefer-dist --stability=dev yiisoft/yii2-app-basic proje
به جز حالت basic برای نصب حالت advance هم داریم که فعلا موضوع بحث ما نیست. توجه داشته باشید که من اسم پروژه رو گذاشتم proje شما هر چیزی که دوست دارید بگذارید. قسمت yii2-app-basic هم به سورس پروژه در packagist اشاره می کند. (packagist جایی است که توسعه دهندگان پروژه های خود را برای کامپوزر اونجا قرار می دهند، بواقع می شود گفت که repo کامپوزر است.)
خب حالا باید صبر پیشه کنید تا کمی حلوا درست کنیم(البته کامپوزر قراره درست کنه!) :-D
نکته: زمانیکه فرمان بالا را برای ایجاد پروژه می زنید باید در پوشه دسترس پذیر وب مانند www و یا htdocs و … باشید.
پس از نصب بسته های مورد نیاز برای تست پروژه برید به مسیر زیر:
http://localhost/proje/web/index.php
بخش قرمز رو هم اگر در دستور ایجاد پروژه با کامپوزر تغییر ایجاد کردید باید آن نام را وارد کنید. همون طور که در دستور من می بینید من نوشته ام proje به همین خاطر در لینک بالا به مسیر proje رفته ام.
یجوری توضیح دادم که دیگه روتون نشه از این بخش سوال بپرسین. ;-)
خب من پروژه رو که اجرا کردم صفحه زیر رو دیدم (امیدوارم شما هم بدون مشکل ببینید):
start-app-installed.png
کلی تبریک گفته بهتون که خوش اومدین و قدم رنجه فرمودین و به کلبه درویشی و این چیزا. اونایی که با bootstrap کار کرده باشن تو نگاه اول متوجه میشن که ساختار کی با boostrap3 اومده بالا، از اون جایی که ما خیلی حرفه ای هستیم اینو متوجه شدیم (شوخی میکنم حالا کامنت نزارین فلان و فلون که تو خودتو میگیریا!)
جناب ژیانگ ژو یه زحمت دیگه هم کشیدن و برای شما یه فایل درست کردن به اسم requirements تا ببینید yii2 چه چیزایی نیاز داره و شما کدام ها رو نصب کردین برای اینکه نیازمندی ها رو بررسی کنید به لینک زیر بروید:
حواستون هست که لینک نسبت به قبل بخش web رو نداره؟ این یعنی اینکه requirements در ریشه پروژه قرار دارد.
من ی بخشی از اون رو عکس گرفتم براتون گذاشتم، شما هم باید یه تصویری مثه تصویر زیر ببینید:
Screenshot from 2014-09-28 20:16:51.png
این رکوردهای سبز پایین یعنی اینکه من خیلی سیستم اوکی دارم و اکثر چیزا روش نصبه از جمله intl برای زبان سایت و mcrypt و امثال آن. شما چطور؟
فکر کنم قبل تر هم گفتم:حتما PHP 5.4 و یا بالاتر رو سیستمتون نصب باشه.
قضیه من با فریمورک ها مثه وضوی قبل از نماز می مونه! اصن راحت نمیشم تا اینکه URL ها رو برای مثال از شکل زیر:
تبدیل کنم به شکل زیر:
برای تنظیمات آپاچی من کد زیر رو می گذارم تو تنظیمات .htaccess:
# Set document root to be "basic/web"
DocumentRoot "/var/www/proje/basic/web"
<Directory "/var/www/proje/basic/web">
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
# ...other settings...
</Directory>
من چون کدهام تو پوشه www هست مسیر اونجا رو تو لینوکس دادم اما شما باید تنظیمات خودتون رو بهش بدید.
میدونم که دقت می کنید که وقتی من DocumentRoot رو در اول خط تنظیم کردم خودش یه حرکت امنیتی به حساب می آید و از دسترسی غارتگران(هکران ارجمند) به پوشه های دیگر جلوگیری می کند. در بخش RewriteRule هم که میگم همه درخواست ها رو بفرست به index.php
از اونجا که من خودم یکی از طرفداران پر و پا قرص nginX هستم کانفیگ این سرور شاخ رو هم براتون می زارم:
server {
charset utf-8;
client_max_body_size 128M;
listen 80; ## listen for ipv4
#listen [::]:80 default_server ipv6only=on; ## listen for ipv6
server_name mysite.local;
root /var/www/proje/basic/web;
index index.php;
access_log /var/log/access.log main;
error_log /var/log/error.log;
location / {
# Redirect everything that isn't a real file to index.php
try_files $uri $uri/ /index.php?$args;
}
# uncomment to avoid processing of calls to non-existing static files by Yii
#location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar) $ {
# try_files $uri =404;
#}
#error_page 404 /404.html;
location ~ \.php$ {
include fastcgi.conf;
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php5-fpm.sock;
try_files $uri =404;
}
location ~ /\.(ht|svn|git) {
deny all;
}
}
حواستون باشه که تو این فایل هم root رو تغییر بدید به مسیر خودتون برای من روی مسیر سفارشی خودم تنظیم شده. لاگها رو هم دارم میریزم تو access.log و error.log. بگذریم اینجا آموزش nginX نیست!
تا اینجا که مشکل ندارید؟
اگر دارید سریع بپرسید بچه ها کمکتون کنن و جا نمونید من حیفم میاد دوستان وسط ها آموزش رو ول کنن و تو فروم آواره بشن!
yii2-section2.pdf.rar