خب! نکته اول اینکه کار درستی نیست اگه دانش کافی کافنیگ کردن سرور رو نداری بخوای شروع کنی به انجام این کار. چرا که سرورها یه سری لایه های امنیتی و تنظیم یک سری استاندارد رو هم نیاز دارن که باید انجام بدی؛ که خب مستلزم داشتن تجربه کار کردن با سرور هست.
ولی اگه داری یه پروژه دانشگاهی رو بالا میاری و خیلی این جور مسائل برات مهم نیست و صرفا داری مهارت های خودت رو افزایش میدی (با تست و خطا)، خب ایده بدی نیست که دست به کار شی و این مراحل رو به ترتیب انجام بدی.
قبل از هرچیزی شاید بد نباشه این نکته رو بگم که LAMP
به چه معناست: (که میبینید مخفف 4 تا کلمه پایینه)
Linux, Apache, MySQL, PHP
نحوه نصب LAMP بر روی لینوکس Linux Ubuntu 160.4
در ابتدای کار شما به یک اکانت احتیاج دارید روی سرور با دسترسی و امتیازات sudo
(من شخصا همچین مواقع از یوزر root
استفاده می کنم).
نصب آپاچی (Apache):
خب با نصب Apache
شروع می کنیم. قراره از apt-get
استفاده کنیم (که یک پکیج منیجر هست توی لینوکس که اکثر پکیج های رایگان رو داره و میتونیم نصبشون کنیم). خب ابتدا apt-get
رو آپدیت می کنیم و بعد هم Apache
رو نصب می کنیم:
sudo apt-get update
sudo apt-get install apache2
نکته: از اونجایی که دارید از sudo
استفاده می کنید، اگه با یوزر root
نیستید، قبل از اجرا شدن کامند، از شما پسوورد خواهد گرفت، و کاملا طبیعی هست؛ پسوورد رو بزنید و جلو برید.
در مرحله بعد، شما باید یک خط رو توی فایل /etc/apache2/apache2.conf
اضافه کنید، که یک پیام هشداری که میگیرید رو از بین ببرید. (هرچند پیام های هشدار بی خطر هستند، ولی خب بهتره که این کار رو انجام بدید). پس باید توی اون فایل ServerName
رو تعریف کنید (اسم سرورتون رو بزارید که قاعدتا باید یکتا باشه)؛ در صورتی که این کار رو انجام ندید، وقتی کامند sudo apache2ctl configtest
رو اجرا می کنید، پیام هشداری هم همراه با اوکی بودن سینتکس اون فایل دریافت می کنید:
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Syntax OK
پس خیلی بهتره که این کار رو انجام بدید؛ این کامند رو اجرا کنید sudo nano /etc/apache2/apache2.conf
و بعد از این directive رو به انتهاش اضافه کنید:
ServerName server_domain_or_IP
تغییرات رو ذخیره کنید و وقتی که مجددا sudo apache2ctl configtest
رو اجرا می کنید دیگه اون پیام هشدار رو نخواهید دید.
بهتره که الان آپاچی رو هم ری استارت کنید:
sudo systemctl restart apache2
بد نیست که یک فایروال filewall به اسم UFW هم نصب کنید که یک مقدار سرورتون از نظر امنیتی ارتقاء پیدا کنه. کامند های زیر رو اجرا کنید:
sudo ufw app list
/* Available applications:
Apache
Apache Full
Apache Secure
OpenSSH */
sudo ufw app info "Apache Full"
/* Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent
Apache web
server.
Ports:
80,443/tcp */
sudo ufw allow in "Apache Full"
شایان ذکره که خطوطی که بین /*
و */
هستند در واقع دارن خروجی رو نشون میدن و نیازی نیست که شما به عنوان کامند اجراشون کنید.
الان با آدرس http://your_server_IP_address
باید صفحه باید صفحه پایین رو ببینید: (مثلا https://lamtakam.com
یا https://195.201.0.150
)
و به عنوان یه نکته، اگه می خواید آیپی های (IPهای) سرورتون رو هم ببینید میتونید از این کامند ها استفاده کنید:
sudo apt-get install curl
curl http://icanhazip.com
نصب MySQL:
خب الان وقتشه که بریم سراغ نصب مای اس کیو ال؛ می تونیم با استفاده از apt
این کار رو به سادگی انجام بدیم:
sudo apt-get install mysql-server
نکته: اگه به صورت پیوسته دارید از بالا کامندهایی که گفتم رو میزنید، دیگه لازم نیست sudo apt-get update
رو مجددا بزنید قبل از نصب MySQL؛ چرا که دقایقی پیش این کامند رو زدیم و apt
بروز رسانی شده.
خب مای اس کیو ال (MySQL) نصب شده و اگه می خواید میتونید یک لایه امنیتی هم بهش اضافه کنید که با کامند پایین و ادامه دادن یک فرایند کوتاه و ساده همراه خواهد بود:
mysql_secure_installation
نصب PHP:
خب نوبت می رسه به نصب پی اچ پی (php) که این رو باز هم با استفاده از apt
نصب می کنیم:
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
نکته: همانطور که میبینید کامند بالا علاوه بر خود پی اچ پی (php) داریم یک سری پکیچ دیگه هم نصب می کنیم که باعث میشه php-ایی که داریم نصب می کنیم با آپاچی (Apache) و مای اس کیو ال (MySQL) ارتباط بگیره.
بعد لازم داریم که تعریف کنیم که فایل index.php
بیشترین اولین رو برای ما داره وقتی که ما یک داریکتوری رو باز می کنیم. به این معنی که وقتی ما یک فولدر رو باید می کنیم اگه یک فایل index.php
توشه اول اون اجرا بشه:
sudo nano /etc/apache2/mods-enabled/dir.conf
/* <IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php
index.xhtml index.htm
</IfModule> */
که خروجی باید به این شکل تنظیم بشه و بعد سیو کن و خارج شواز اون فایلی که باز کردی:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
تغییر اینه که باید index.php
بیاد ابتدای خط. همین!
بعد از اینا آپاچی (Apache) رو مجددا ری استارت کن:
sudo systemctl restart apache2
شاید بد نباشه یک سری ماژول هم برای پی اچ پی (php) نصب کنیم؛ با show
می تونیم ماژول ها رو ببینیم:
apt-cache show package_name
// مثلا: apt-cache show php-cli
و با install
می تونیم نصبشون کنیم:
sudo apt-get install package_name
// مثلا: sudo apt-get install php-cli
نکته: می تونیم (این امکان وجود داره) به صورت همزمان چندتا پکیج رو نصب کنیم. به این صورت: sudo apt-get install package1 package2 ...
تست پی اچ پی (php) بر روی وب سرور:
خب وقت این رسیده که تست کنیم. این کامند رو اجرا کنید:
sudo nano /var/www/html/info.php
(یک فایل info.php داریم میسازیم توی داکیومنت روت. جایی که وقتی آی پی (IP) یا نام دامنه سایتمون رو میزنیم میبینیم؛ به صورت پیش فرض داکیومنت روت (DocumentRoot) اینجا /var/www/html/
هست.)
سپس این رو توش (توی اون فایلی که داریم میسازیم؛ همون کامند بالایی) بریزید و سیو کنید:
<?php
phpinfo();
?>
حالا این آدرس رو توی مرورگرتون بزنید:
http://your_server_IP_address/info.php
بجای your_server_IP_address
باید آی پی (IP) یا نام دامنه سایتت رو بزنی. و باید یک همچین صفحه ای ببینی:
خب خیلی هم عالی، تبریک می گم :-)
؛ سرورتون کانفیگ شده و نرم افزارهای مورد نیاز روش نصب شدن و خلاصه الان آماده استفاده است؛ سایتتون رو آپلود کنید روش و به دیگران لینکش رو بدید..!
فقط این رو هم بگم که بد نیست اگه اون فایلی رو که ساخته بودیم (برای تست php) پاکش کنیم؛ اینطوری:
sudo rm /var/www/html/info.php
موفق باشید.