نصب لاراول روی لوکال هاست لینوکسی

قبل از هر کار به روز کردن مخازن:

1sudo apt update

نصب Apache

1sudo apt install apache2

نصب Database

1sudo apt install mysql-server

مرحله اختیاری (تنظیمات امنیتی روی دیتابیس برای تغییر کاربر و رمز پیش‌فرض)

1sudo mysql_secure_installation

اگر مثل من با این مرحله از تنظیمات دیتابیس مشکل دارید یک راه راحت‌تر هم وجود دارد. راه راحت‌تر این است که یک کاربر جدید برای دیتابیس خودمان بسازیم و از آن استفاده کنیم. بنابراین با دستور زیر وارد mysql می‌شویم:

1sudo mysql -u root -p

سپس کاربر جدید خود را می‌سازیم و دسترسی‌های لازم را به او می‌دهیم و یک بازنشانی از دسترسی‌ها انجام می‌دهیم و تمام..

1CREATE USER 'yourname'@'loclhost' IDENTIFIED BY 'yourpassword';
1GRANT ALL PRIVILEGES ON *.* TO 'yourname'@'localhost' WITH GRANT OPTION;
1FLUSH PRIVILEGES;


نصب PHP

1sudo apt install php php-dev php-zip php-xml php-mbstring php-mysql


همین الان تا یادمان نرفته rewrite mod را هم فعال کنیم بهتر است:

1sudo a2enmod rewrite

و ریستارت کردن آپاچی و تمام:

1systemctl restart apache2

الان شما سرور لوکال خود را روی لینوکس نصب کرده‌اید.

فقط می‌ماند دو کار دیگر. نصب phpMyAdmin و نصب لاراول


نصب phpMyAdmin

برای نصب phpMyAdmin راحت‌ترین کار دانلود فایل آن از سایت خودش و کپی کردن در فولدر زیر است:

1/var/www/html/

و با آدرس زیر در مرورگر باز می‌شود:

1http://localhost/phpMyAdmin/

اگر در باز کردن phpmyadmin خطا گرفتید با دستور زیر php-mysql را نصب کنید:

1php-mysql

و یک بار دیگر apache را ریستارت کنید.


نصب Laravel

برای نصب لاراول راحت‌ترین کار نصب کامپوزر:

1sudo apt install composer

و نصب نصاب لاراول:

1composer global require &quotlaravel/installer&quot

* بعد از نصب نصاب لاراول در ترمینال دستور subl .bashrc را وارد کنید و در فایلی که باز می‌شود در خط آخر یکی از سه خط زیر(هر سه یکی هستند) را وارد کنید و ذخیره کنید و فایل را ببندید و ترمینال را ببندید و مجدد باز کنید.

12345export PATH=&quot$HOME/.config/composer/vendor/bin:$PATH&quot
# or
export PATH=&quot~/.config/composer/vendor/bin:$PATH&quot
# or
export PATH=&quot~/.config/composer/vendor/bin:${PATH}&quot

و بعد ساخت پروژه است:

1laravel new yourProjectName

* البته دستور خط سوم را باید درون فولدری که می‌خواهید پروژه آنجا ساخته شود (فولدر html در مسیر /var/www/ ) اجرا کنید.

چند نکته و ترفند:

تنظیمات hosts

اگر لوکال هاست شما روی آی پی دیفالت تنظیم نیست باید تنظیمات فایل hosts را اصلاح کنید.

برای تنظیمات فایل hosts با دستور زیر آن را در ادیتور مورد علاقه خود باز کنید:

1sudo editorName /etc/hosts

و خط زیر را اضافه کنید یا اگر هست از کامنت خارج کنید. بقیه چیزها را دست نزنید و ذخیره کنید.

1127.0.0.1	localhost

یک نکته: اگر می‌خواهید آدرس دلخواه خود را به دستور php artisan serve اعمال کنید همین جا در فایل hosts این خط را هم اضافه کنید:

1127.0.0.1	yourSite.test

الان علاوه بر این که با تایپ localhost مشکلی نخواهید داشت می‌توانید در کامند لاین فولدر لاراول خود به این روش serve را انجام دهید:

1php artisan serve --host=yourSite.test --port=8000

و به جای

1http://127.0.0.1:8000/

با آدرس

1http://yourSite.test:8000/

به سایت خود در لوکال دسترسی پیدا کنید.

اگر به آخر serve در این دستور & اضافه کنید این دستور در بکگراند اجرا می‌شود و مزاحم بقیه کارهای شما نخواهد بود.

1php artisan serve&

اگر همه چیز قاتی شد و خواستید دستور serve را بی‌اثر کنید از این دستور استفاده کنید:

1sudo kill $(sudo lsof -t -i:8000)

خطای دسترسی به storage

ممکن است در اولین دیدار از پروژه‌ی خود در مرورگر خطای دسترسی به storage را ببینید. برای رفع خطای دسترسی لاراول به فولدر storage با این کد دسترسی این پوشه را اصلاح کنید: (این کد را باید درون فولدر پروژه‌ی لاراول خود اجرا کنید.)

1chmod -R 777 storage

آپلود دیتابیس حجیم در mysql

اگر از قبل مثل من روی پروژه‌ی خود کار کرده‌اید و الان با یک دیتابیس حجیم روبرو هستید باید آن را با phpMyAdmin درون دیتابیس جدید ایمپورت کنید و اگر حجم فایل دیتابیس زیاد باشد خطا می‌گیرید.

اولین خطا مربوط به حجم آپلود است که با این روش برطرف می‌شود. این سه خط را باید درون php.ini اصلاح کنید و مقادیر دلخواه و بزرگ به آن بدهید. فایل php.iniهای زیادی روی کامپیتور خود خواهید یافت. من همیشه تغییرات را روی آخرین نسخه php موجود و درون فولدر apache2 اعمال می‌کنم. در این آدرس:

1/etc/php/7.2/apache2/php.ini
123memory_limit = 100M
upload_max_filesize = 100M
post_max_size = 100M

و با دیتابیس‌های بزرگ که رکوردهای زیادی دارند خطای دیگری هم در انتظار شماست که مربوط به مدت زمان اجرای اسکریپت است و با روش بالا جواب نمی‌دهد. من با روش زیر این مشکل را حل می‌کنم:

اول از خط فرمان وارد mysql می‌شوم:

1mysql -u root -p

پس از تایپ رمز دستور زیر را می‌دهم و دیتابیس خود را انتخاب می‌کنم:

1use databaseName

سپس با دستور زیر

1SET autocommit=0; source yourBackupFile.sql; COMMIT;

دیتابیس خودم را در کمترین زمان و بدون کمترین خطا به دیتابیس مقصد ایمپورت می‌کنم.


این آموزش را بیشتر برای خودم نوشتم. به قول صادق هدایت، برای سایه‌ام، تا دفعه بعد که خواستم این کارها را انجام دهم یادم باشد چکار کرد‌ه‌ام.