59
تشکر

Laravel: مقدمات و الزامات اولیه

Laravel 4

Laravel 4

در مطلب قبلی Laravel را از طریق Composer نصب کردیم. در این مطلب میخواهیم کارهایی را که باید قبل از هر عملی انجام دهیم بررسی میکنیم.

در ادامه مطلب همراه ما باشید

تغییر پوشه public به root سایت

برای مثال ما Laravel را در سایت example.com قرار داده ایم. اما آدرسی که باید به کاربران بدهیم example.com/public است. زیرا صفحات خروجی ما در پوشه public تولید میشوند. به همین دلیل ابتدا باید پوشه public را به root سایت تغییر دهیم. برای اینکار سه روش وجود دارد، که هر یک را بررسی میکنیم.

روش اول: ایجاد symlink

symlink مانند shortcut عمل میکند. در این روش ما Laravel را در بیرون DocumentRoot یعنی در بیرون public_html قرار میدهیم و یک symlink از پوشه public موجود در Laravel به پوشه public_html ایجاد میکنیم. این روش بهترین روش است و دارای بالاترین امنیت است، زیرا اطلاعات و فایل‌های ما بیرون DocumentRoot قرار دارند.

اما برای ایجاد symlink میتوانید از سه روش استفاده کنید.

یک فایل PHP باز کرده و با استفاده از تابع symlink، عملیات خود را انجام دهیم، و یکبار آن را اجرا کرده و سپس آن را حذف کنیم. برای مثال در کد زیر ما یک symlink از پوشه public که درون پوشه laravel است به پوشه public_html ایجاد میکنیم. کد زیر باید درون public_html اجرا شود.

symlink('../laravel/public', './');

اما در هاست های اشتراکی معمولاً تابع symlink را غیرفعال میکنند. میتوانید با استفاده از SSH به سرور خود وصل شوید و توسط کد زیر symlink را ایجاد کنید.

ln -s /home/path/to/laravel/public    /home/public_html

اما روش آخر در ایجاد symlink، ایجاد درخواست به مدیر سرور است.

روش دوم: تغییر محل پوشه public

اگر به هر دلیلی نتوانستید روش اول را انجام دهید، این روش میتواند جایگزین آن باشد. این روش در Laravel نسخه 4 تست شده است. کافیست مانند روش بالا فریم ورک Laravel را در بیرون DocumentRoot قرار دهید. سپس فایل index.php که در پوشه public است را به DocumentRoot انتقال دهید و تغییرات زیر را انجام دهید.

# These two lines should be changed... 
require __DIR__.'/../bootstrap/autoload.php'; 
$app = require_once __DIR__.'/../bootstrap/start.php'; 

# ... into these two lines. 
require __DIR__.'/../laravel/bootstrap/autoload.php'; 
$app = require_once __DIR__.'/../laravel/bootstrap/start.php';

و همچنین در فایل paths.php که در پوشه bootstrap قرار دارد نیز تغییرات زیر را انجام دهید.

# Change this... 
'public' => __DIR__.'/../public', 

# ... into this. 
'public' => __DIR__.'/../../www',

روش سوم: htaccess. و mod_rewrite

این روش توصیه نمیشود. در این روش شما باید فایل‌های Laravel را درون DocumentRoot قرار دهید سپس در DocumentRoot یک فایل htaccess. باز کرده و کدهای زیر را قرار دهید.

<IfModule mod_rewrite.c> 
  RewriteEngine on 
  RewriteCond %{REQUEST_URI} !^public 
  RewriteRule ^(.*)$ public/$1 [L] 
</IfModule>

از یکی از سه روش بالا برای تغییر پوشه public به root سایت استفاده کنید. اما اگر فعلاً میخواهید در localhost کار کنید میتوانید این روش‌ها را نادیده بگیرید و از همان آدرس اصلی برای مثال localhost/laravel/public استفاده کنید، اما روش بهتر در localhost استفاده از VirtualHost در apache است.

تعیین رشته برای کلید

در قدم بعدی باید یک رشته 32 کاراکتری را به عنوان کلید به Laravel بدهید. Laravel از این کلید برای کد گذاری اطلاعات مانند cookieها استفاده میکند. این رشته 32 کاراکتری را باید در فایل app.php در مسیر app/config در Laravel 4 تعیین کنید.

'key' => 'R2nee1J25fNKkcl5mTOJeqaCJRZEpi9w',

Laravel دارای یک رابط ترمینال هم است که artisan نام دارد. از طریق artisan هم میتوانید کلید را به صورت خودکار تولید کنید. فقط کافیست به ریشه Laravel بروید و کد زیر را اجرا کنید.

php artisan key:generate

نتیجه‌ گیری

اکنون Laravel آماده استفاده میباشد. لذت ببرید.

این مطلب از سری مطالب، آموزش فریم ورک Laravel است
  • hosein می‌گه:

    برای اینکار شما باید از Virtual Host در Apache استفاده کنید.
    میشه یه کم بیشتر در این مورد توضیح بدید؟

  • نیما می‌گه:

    سلام
    من از روش دوم استفاده کردم ولی فقط یه صفحه سفید بدون هیچ محتوی و اروری برام ظاهر میشه .
    به تنظیمات سرور مربوط میشه یا من دارم اشتباه میکنم ؟

  • danialMd5 می‌گه:

    با سلام
    من فعلا برای یادگیری این فریم ورک از localhost استفاده می کنم.می خواستم بپرسم راهی هست که پوشه ی Public سراسری بشه؟(یعنی در پوشه ی مادر نشون داده بشه مثلا : http://localhost/laravel/)
    نمی تونم Apache رو تغییر بدم چون فولدر های دیگر رو از دست می دم.اگه امکانش هست یکم سریع جواب بدین.
    اموزش فوق العادس!

  • check می‌گه:

    با سلام
    وبسایتتون توی مرورگر کروم ورژن 31 که من دارم مشکل داره الان فوتر اومده بالا سر جاش نیست و ظاهر سایت رو به هم ریخته بررسی کنید

  • رضا طاهری می‌گه:

    اسم پلاگینش رو می شه بگی

  • Ali Amini می‌گه:

    4 تا مطلب آخری عالی بود

  • رضا طاهری می‌گه:

    سلام محسن جان می شه بگی این امتیاز دهی که بالای هر مطلبت گزاشتی چطور به دیتابیس متصلش کردی
    ممنون

  • اصغر همت می‌گه:

    بی نظیره!!..لطفا ادامه بدید…


  • نظرات این مطلب بسته است.