یک آموزگار...
نصب لاراول روی لوکال هاست لینوکسی
قبل از هر کار به روز کردن مخازن:
sudo apt update
نصب Apache
sudo apt install apache2
نصب Database
sudo apt install mysql-server
مرحله اختیاری (تنظیمات امنیتی روی دیتابیس برای تغییر کاربر و رمز پیشفرض)
sudo mysql_secure_installation
اگر مثل من با این مرحله از تنظیمات دیتابیس مشکل دارید یک راه راحتتر هم وجود دارد. راه راحتتر این است که یک کاربر جدید برای دیتابیس خودمان بسازیم و از آن استفاده کنیم. بنابراین با دستور زیر وارد mysql میشویم:
sudo mysql -u root -p
سپس کاربر جدید خود را میسازیم و دسترسیهای لازم را به او میدهیم و یک بازنشانی از دسترسیها انجام میدهیم و تمام..
CREATE USER 'yourname'@'loclhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON *.* TO 'yourname'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
نصب PHP
sudo apt install php php-dev php-zip php-xml php-mbstring php-mysql
همین الان تا یادمان نرفته rewrite mod را هم فعال کنیم بهتر است:
sudo a2enmod rewrite
و ریستارت کردن آپاچی و تمام:
systemctl restart apache2
الان شما سرور لوکال خود را روی لینوکس نصب کردهاید.
فقط میماند دو کار دیگر. نصب phpMyAdmin و نصب لاراول
نصب phpMyAdmin
برای نصب phpMyAdmin راحتترین کار دانلود فایل آن از سایت خودش و کپی کردن در فولدر زیر است:
/var/www/html/
و با آدرس زیر در مرورگر باز میشود:
http://localhost/phpMyAdmin/
اگر در باز کردن phpmyadmin خطا گرفتید با دستور زیر php-mysql را نصب کنید:
php-mysql
و یک بار دیگر apache را ریستارت کنید.
نصب Laravel
برای نصب لاراول راحتترین کار نصب کامپوزر:
sudo apt install composer
و نصب نصاب لاراول:
composer global require "laravel/installer"
* بعد از نصب نصاب لاراول در ترمینال دستور subl .bashrc را وارد کنید و در فایلی که باز میشود در خط آخر یکی از سه خط زیر(هر سه یکی هستند) را وارد کنید و ذخیره کنید و فایل را ببندید و ترمینال را ببندید و مجدد باز کنید.
export PATH="$HOME/.config/composer/vendor/bin:$PATH"
# or
export PATH="~/.config/composer/vendor/bin:$PATH"
# or
export PATH="~/.config/composer/vendor/bin:${PATH}"
و بعد ساخت پروژه است:
laravel new yourProjectName
* البته دستور خط سوم را باید درون فولدری که میخواهید پروژه آنجا ساخته شود (فولدر html در مسیر /var/www/ ) اجرا کنید.
چند نکته و ترفند:
تنظیمات hosts
اگر لوکال هاست شما روی آی پی دیفالت تنظیم نیست باید تنظیمات فایل hosts را اصلاح کنید.
برای تنظیمات فایل hosts با دستور زیر آن را در ادیتور مورد علاقه خود باز کنید:
sudo editorName /etc/hosts
و خط زیر را اضافه کنید یا اگر هست از کامنت خارج کنید. بقیه چیزها را دست نزنید و ذخیره کنید.
127.0.0.1 localhost
یک نکته: اگر میخواهید آدرس دلخواه خود را به دستور php artisan serve اعمال کنید همین جا در فایل hosts این خط را هم اضافه کنید:
127.0.0.1 yourSite.test
الان علاوه بر این که با تایپ localhost مشکلی نخواهید داشت میتوانید در کامند لاین فولدر لاراول خود به این روش serve را انجام دهید:
php artisan serve --host=yourSite.test --port=8000
و به جای
http://127.0.0.1:8000/
با آدرس
http://yourSite.test:8000/
به سایت خود در لوکال دسترسی پیدا کنید.
اگر به آخر serve در این دستور & اضافه کنید این دستور در بکگراند اجرا میشود و مزاحم بقیه کارهای شما نخواهد بود.
php artisan serve&
اگر همه چیز قاتی شد و خواستید دستور serve را بیاثر کنید از این دستور استفاده کنید:
sudo kill $(sudo lsof -t -i:8000)
خطای دسترسی به storage
ممکن است در اولین دیدار از پروژهی خود در مرورگر خطای دسترسی به storage را ببینید. برای رفع خطای دسترسی لاراول به فولدر storage با این کد دسترسی این پوشه را اصلاح کنید: (این کد را باید درون فولدر پروژهی لاراول خود اجرا کنید.)
chmod -R 777 storage
آپلود دیتابیس حجیم در mysql
اگر از قبل مثل من روی پروژهی خود کار کردهاید و الان با یک دیتابیس حجیم روبرو هستید باید آن را با phpMyAdmin درون دیتابیس جدید ایمپورت کنید و اگر حجم فایل دیتابیس زیاد باشد خطا میگیرید.
اولین خطا مربوط به حجم آپلود است که با این روش برطرف میشود. این سه خط را باید درون php.ini اصلاح کنید و مقادیر دلخواه و بزرگ به آن بدهید. فایل php.iniهای زیادی روی کامپیتور خود خواهید یافت. من همیشه تغییرات را روی آخرین نسخه php موجود و درون فولدر apache2 اعمال میکنم. در این آدرس:
/etc/php/7.2/apache2/php.ini
memory_limit = 100M
upload_max_filesize = 100M
post_max_size = 100M
و با دیتابیسهای بزرگ که رکوردهای زیادی دارند خطای دیگری هم در انتظار شماست که مربوط به مدت زمان اجرای اسکریپت است و با روش بالا جواب نمیدهد. من با روش زیر این مشکل را حل میکنم:
اول از خط فرمان وارد mysql میشوم:
mysql -u root -p
پس از تایپ رمز دستور زیر را میدهم و دیتابیس خود را انتخاب میکنم:
use databaseName
سپس با دستور زیر
SET autocommit=0; source yourBackupFile.sql; COMMIT;
دیتابیس خودم را در کمترین زمان و بدون کمترین خطا به دیتابیس مقصد ایمپورت میکنم.
این آموزش را بیشتر برای خودم نوشتم. به قول صادق هدایت، برای سایهام، تا دفعه بعد که خواستم این کارها را انجام دهم یادم باشد چکار کردهام.
مطلبی دیگر از این انتشارات
ثبت نام اولین بوت کمپ رایگان لاراول
مطلبی دیگر از این انتشارات
laravel در Repository pattern
مطلبی دیگر از این انتشارات
آموزش Laravel Octane و Swoole/RoadRunner