یک آموزگار...
نصب لاراول روی لوکال هاست لینوکسی
قبل از هر کار به روز کردن مخازن:
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 "laravel/installer"
* بعد از نصب نصاب لاراول در ترمینال دستور subl .bashrc را وارد کنید و در فایلی که باز میشود در خط آخر یکی از سه خط زیر(هر سه یکی هستند) را وارد کنید و ذخیره کنید و فایل را ببندید و ترمینال را ببندید و مجدد باز کنید.
12345export PATH="$HOME/.config/composer/vendor/bin:$PATH" # or export PATH="~/.config/composer/vendor/bin:$PATH" # or export PATH="~/.config/composer/vendor/bin:${PATH}"
و بعد ساخت پروژه است:
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;
دیتابیس خودم را در کمترین زمان و بدون کمترین خطا به دیتابیس مقصد ایمپورت میکنم.
این آموزش را بیشتر برای خودم نوشتم. به قول صادق هدایت، برای سایهام، تا دفعه بعد که خواستم این کارها را انجام دهم یادم باشد چکار کردهام.
مطلبی دیگر از این انتشارات
نوشتن جستجوی پیشرفته در لاراول 5
مطلبی دیگر از این انتشارات
آموزش Laravel Octane و Swoole/RoadRunner
مطلبی دیگر از این انتشارات
ویژگیهای جدید Laravel 11 بخش اول
لینوکس دردسرهای خاص خودش رو داره، اما وقتی که راه بیوفتی، لذت خیلی زیادی خواهی برد.
sudo ln -s /usr/share/phpmyadmin /var/www/
مورد دوم که باید gettext و zip رو نصب کنید، یا اینکه php-dev رو نصب کنید که کاملتره،
مورد سوم، این پست مال خیلی بعد از php7.2 هست و لاراول پیشنهاد داده php7.2 رو نصب کنید، خیلی از پکیج ها کم کم دارن میرن روی php7.2 مثل مخزن spatie