The perfect web development environment for mac

آماده سازی مک برای یک برنامه نویس

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

Homebrw

معمولا یک برنامه نویس از محیط ترمینال لذت میبره و اگر با لینوکس کار کرده باشید با استفاده از سیستم پکیج کنترلی که داره میتونید همه برنامه های مورد نیازتون رو نصب کنید و … برای همچین امکانی از homebrewاستفاده میکنیم.

قبلا مقاله در رابطه با معرفی پکیج منیجر home brew نوشتم که میتوانید آن را مطالعه کنید.

نصب آخرین ورژن php

همانطور که در توضیحات بالاتر خواندید به راحتی با استفاده از پکیج منیجر homebrew برای نصب پکیج‌‌ها و ابزارهای موردنظر اقدام می‌کنیم.

نکته :

برای نصب php با استفاده از homebrew h اگر قبلا ورژنی از phpنصب کرده اید و میخواهید آن را آپگرید کنید ابتدا همه پکیج‌ها و خود php را پاک کنید و سپس برای نصب آخرین ورژن آن اقدام کنید.

این مقاله ” How to upgrade from PHP 7.1 to 7.2 on MacOS using Homebrew ” برای آپگرید ورژن php  روی homebrew کمک میکند.

همچنین مطالعه این مقاله ” Install PHP 7.2 + xdebug on MacOS High Sierra  ” و ” macOS 10.13 High Sierra Apache Setup: Multiple PHP Versions ” برای نصب php  بهتون کمک میکند.

نکته : اگر تاکنون php را روی homebrew نصب نکردید با اجرای دستور brew install php  به راحتی آخرین ورژن آن را نصب می‌کنید.

با توجه به اینکه High Sierra به صورت پیشفرض نسخه ۷.۱ php را داشت بعد از نصب php  با استفاده از پکیج منیجر homebrew  بازهم ورژن پیشفرض را فراخوانی میکرد. برای حل این مشکل داخل فایل .bash_profile  مسیر نسخه جدید php را قرار دادم. ( export PATH=”/usr/local/Cellar/php/bin:$PATH”)

install new version of PHP

نصب آپاچی با استفاده از homebrew

در آخرین ورژن سیستم عامل مکینتاش ( macOS 10.13 High Sierra ) آپاچی ورژن ۲.۴ به صورت پیشفرض نصب شده است ولی با توجه به اینکه اپل برخی از اسکریپت‌های ضروری را حذف کرده است. بهترین کار این است که با استفاده از homebrew آپاچی را دوباره نصب کنیم و آپاچی پیشفرض را غیرفعال کنیم.

ابتدا آپاچی پیشفرض را خاموش و در نهایت لود شدن اتوماتیک اسکریپت‌های آن را غیرفعال می‌کنیم. با استفاده از دو دستور زیر اینکار را انجام می‌دهیم.

sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null

حالا با استفاده از دستور زیر نصب وبسرور را شروع میکنیم.

brew install httpd

بعد از نصب پیامی مشابه تصویر زیر در پایان نمایش داده می‌شود.

brew install httpd

برای چک کردن نصب آن با اجرای دستور which apachectl باید مسیر /usr/local/bin/apachectl چاپ شود.

اگر مراحل نصب به درستی انجام شده باشد با اجرای دستور apachectl start و باز کردن آدرس http://localhost:8080 باید پیام زیر نمایش داده شود.

it works!

که با توجه به توضیحات پایان نصب آپاچی داکیومنت روت آن به صورت زیر است که فایل index.html با پیام موفقیت آمیز فوق آنجا قرار داده شده است.

document root apachectl

کانفیگ آپاچی ( Apache Configuration )

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

در آخرین ورژن Brew که آپاچی را نصب کردیم به صورت پیشفرض روی پورت ۸۰۸۰ فعال است که ما آن را به ۸۰ تغییر می‌دهیم. برای اینکار فایل httpd.conf در مسیر زیر را ویرایش میکنیم.

/usr/local/etc/httpd/httpd.conf

برای باز کردن فایل کافی است دستور زیر را در ترمینال وارد کنید و یا به مسیر مورد نظر بروید و دستی فایل را با TextEditorباز کنید.

open -e /usr/local/etc/httpd/httpd.conf

خطی که به صورت زیر نوشته شده است را پیدا میکنیم و به Listen ۸۰ تغییر می‌دهیم.

Listen 8080

حالا داکیونت روت آن را ویرایش میکنیم، به صورت پیشفرض Document Root آن روی مسیر /usr/local/var/www فعال است که به مسیر زیر تغییر می‌دهیم.

DocumentRoot /Users/your_user/Sites

نکته : به جای your_user نام کاربری خود را بنویسید.

بعد از آن نیاز است که <Directory> را هم که زیر آن نوشته شده است را ویرایش کنید به صورت زیر :

<Directory /Users/your_user/Sites>

داخل بلاک Directory شما باید AllowOverride را پیدا کنید و آن را به صورت زیر تغییر دهید.

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   AllowOverride FileInfo AuthConfig Limit
#
AllowOverride All

اکنون باید mod_rewrite را که به صورت پیشفرض غیرفعال است فعال کنیم. mod_rewrite.so را جستجو کنید و از حالت کامنت خارج کنید تا فعال شود. ( علامت # اول آن را پاک کنید. )

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

تقریبا تنظیمات آپاچی تمام شد ولی الان مشکل دسترسی به مسیر Sites داریم. به صورت پیشفرض آپاچی با یوزر daemon یا _www اجرا می‌شود که باید کدی به صورت زیر پیدا کنید :

User _www
Group _www

که آن را به صورت زیر تغییر می‌دهیم.

User your_user
Group staff

آپاچی میتواند یک سرورنیم داشته باشد ولی به صورت پیشفرض غیرفعال است که کافیه آن را پیدا کنید که به صورت زیر نوشته شده است:

#ServerName www.example.com:8080

و از حالت کامنت خارج کنید و به صورت زیر بنویسید.

ServerName localhost

حالا که تنظیمات تمام شد فولدر Sites  را در  home directory بسازید و فایل index.html داخل آن قرار دهید تا تست آخر را انجام دهید. با استفاده از دستور زیر در ترمینال اینکار را به سادگی انجام دهید.

mkdir ~/Sites
echo "<h1>My User Web Root</h1>" > ~/Sites/index.html

حالا آپاچی را رستارت ( sudo apachectl restart ) و سپس روی مرورگر آدرس http://localhost را باز کنید.

نکته مهم: در صورتیکه هنگام رستارت آپاچی با خطا مواجه شدید دقت کنید که : اگر یادتان باشد Document Root و Directory  را که ویرایش کردیم مسیر جدید را داخل کوتیشن “”  قرار دادیم خطای رخ داده به خاطر این مورد است که کافیه آنها را حذف کنید و بدون کوتیشن باشند. و دوباره اقدام کنید که بعد از رستارت تصویر زیر در مرورگر نمایش داده می‌شود.

localhost

کانفیگ PHP روی آپاچی! ( Apache PHP Setup )

تا به اینجا ما با موفقیت آپاچی و php را نصب کردیم. اما ما نیاز داریم تا به آپاچی بگیم که از این php  که نصب کردیم استفاده کند. مجددا فایل /usr/local/etc/httpd/httpd.conf را باز میکنیم و ویرایش را به صورت زیر انجام می دهیم.

به صورت زیر libphp را فعال می‌کنیم.

#LoadModule php5_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp5.so
#LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so
#LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so
LoadModule php7_module /usr/local/opt/[email protected]/lib/httpd/modules/libphp7.so

در هرلحظه ما فقط میتوانیم یکی از این ورژن‌های php را فعال کنیم.

اکنون ما باید دایرکتوری index را برای php تعریف کنید. پس به دنبال بلاک زیر بگردید.

<IfModule dir_module> 
DirectoryIndex index.html 
</IfModule>

که به صورت زیر ویرایش میکنیم:

<IfModule dir_module>
 DirectoryIndex index.php index.html 
</IfModule> 

<FilesMatch \.php$> 
SetHandler application/x-httpd-php 
</FilesMatch>

تغییرات را ذخیره و آپاچی را ریستارت میکنیم.

 sudo apachectl -k stop
 sudo apachectl start

اعتبارسنجی php

برای اینکه بدانیم php را و آپاچی را به درستی کانفیگ کردیم در home directory فایل info.php را ایجاد می‌کنیم و با نوشتن دستور phpinfo() مشخصات php در آدرس http://localhost/info.php  برای ما نمایش داده می‌شود. میتوانید دستی فایل را ایجاد کنید و یا کد زیر را در ترمینال وارد کنید.

echo "<?php phpinfo();" > ~/Sites/info.php

که صفحه موردنظر به صورت زیر نمایش داده می‌شود.

phpinfo

ایجاد دامنه مجازی ( Apache Virtual Hosts )

قبلا در مقاله ای در رابطه با ایجاد دامنه مجازی روی XAMPP توضیح دادم که به چه شیوه ای اینکار انجام شود. اما با توجه به اینکه در این مقاله ما خودمون mysql, php , apache را نصب کردیم نحوه ایجاد آن کمی متفاوت است.

آپاچی به صورت پیشفرض امکان ایجاد دامنه مجازی را دارد اما غیرفعال است. ابتدا خط زیر را در فایل  /usr/local/etc/httpd/httpd.conf پیدا میکنیم و از کامنت خارج میکنیم.

LoadModule vhost_alias_module lib/httpd/modules/mod_vhost_alias.so

و همچنین این خط را از کامنت خارج کنید.

# Virtual hosts
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf

پس از آن فایل /usr/local/etc/httpd/extra/httpd-vhosts.conf را یا به صورت دستی و یا با استفاده از ترمینال با کد زیر باز میکنیم.

open -e /usr/local/etc/httpd/extra/httpd-vhosts.conf

بعد از اینکه فایل را باز کردید فولدرهای پروژه تان را که در داکیومنت روت Sites ایجاد کردید را مسیردهی میکنید به صورت زیر

<VirtualHost *:80>

 DocumentRoot "/Users/your_user/Sites"
 ServerName localhost 

</VirtualHost>

پروژه خود را به صورت مثال زیر ایجاد کنید.

<VirtualHost *:80>
    DocumentRoot "/Users/your_user/Sites/example"
    ServerName example.test
</VirtualHost>

بعد از آن وارد فایل hosts  را باز میکنیم ( nano /etc/hosts ) و دامنه ای که ایجاد کردیم را در فایل hosts قرار می‌دهیم.

۱۲۷.۰.۰.۱  example.test

بعد از آن آپاچی را ریستارت می‌کنیم.

 sudo apachectl -k stop
 sudo apachectl start

نکته : اگر هنگام ریستارت آپاچی با خطا مواجه شدید، کوتیشن‌هایی که در مسیر DocumentRoot وارد شده است را حذف کنید و مجددا اقدام کنید.

حالا اگر روی مرورگر آدرس example.test را باز کنید مسیر فولدر example در Sites را نمایش میدهد.

ایجاد SSH Key برای گیت لب

در صورتیکه پروژه‌هایی روی گیت‌هاب و یا گیت‌لب داشته باشید قطعا باید ssh key برای اعتبارسنجی اکانت شما وجود داشته باشد.

قبلا در مقاله‌ای هم آرشیوی از دستورات کاربردی گیت را نوشتم و هم نحوه ایجاد و تنظیم ssh key را توضیح دادم.

نصب composer

قطعا برای استفاده از پکیج‌ها و ماژول‌های php به composer نیاز خواهیم داشت، با استفاده از پکیچ منیجر homebrew  به راحتی آن را نصب میکنیم.

brew install composer 

brew install composer

ایجاد alias های موردنیاز

بسیاری از دستورات و کامندها هستند که تکراری هستند و تایپ و تکرار آنها زمانبر و گاهی وقتها خسته کننده ست، مثلا من خودم برای دسترسی به مسیر پروژه هر سری توی ترمینال مسیر ان را بنویسم و کامندها را در آن مسیر بنویسیم برایم خسته کننده ست به همین خاطر برای هر پروژه با اسم پروژه یک alias ایجاد میکنم که با تایپ اسم پروژه به مسیر موردنظر میروم. قبلا برای ایجاد alias مقاله ای نوشتم که میتوانید با کمک آن اینکار را انجام دهید.

نصب mysql , postgres

مطابق توضیحات بالا با استفاده از پکیج منیجر Brew برای نصب اقدام می‌کنیم.

نکته : بعد از نصب postgres ، باید دیتابیس و یوزری ایجاد شود تا با استفاده از نرم افزارهایی همچون postico بتوان لاگین شد و مدیریت دیتابیس را داشت. این صفحه “Installing Postgres via Brew” در این مورد به شما کمک می‌کند.

نکته : برای نصب mysql با استفاده از homebrew به راحتی اینکار را انجام می‌دهیم. و بعد از نصب مطابق توضیحاتی که در پایان نصب نمایش میدهد اقدام میکنیم. شما می‌توانید از این ویدئو ”  Install MySQL via Homebrew ” برای نصب کمک بگیرید.

در نهایت چند alias  برای start, stop و restart آن ایجاد میکنم تا هر موقع نیاز به آنها بود سریع اقدام کنم به صورت زیر :

create alias for mysql

نکته : برای مدیریت mysql میتوانید از برنامه mysql workbench استفاده کنید که با استفاده از دستور زیر میتوانید آن را نصب کنید و یا فایل آن را دانلود و نصب کنید.

brew cask install mysqlworkbench

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *