lamp stack گروهی از نرم افزار های اوپن سورس هست که کنار هم نصب میشن تا سرور رو میزبان سایت های دینامیک و وب آپ ها بکنه . لمپ در واقع مخفف لینوکس ، وب سرور آپاچی دیتابیس mysql و محتوای داینامیک توسط پی اچ پی پردازش میشه . تو این پست آپاچی و مای اسکیوال و پی اچ پی رو روی اوبونتو نصب می کنیم .

قدم اول - نصب آپاچی

sudo apt update 
sudo apt install apache2

تنظیم فایروال

باید مطمئن بشید که فایل اجازه عبور به ترافیک http و https رو داده . فایروالی که من استفاده می کنم ufw هست که به صورت پیش فرض روی اوبونتو نصب هست .برای مشاهده پروفایل های برنامه ها تو فایروال دستور زیر رو وارد می کنیم :

sudo ufw app list

خروجی:

Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH`

اجازه همه ورودی ترافیک http و https رو برای این پروفایل صادر می کنیم :

sudo ufw allow in "Apache Full"

آی پی آدرس

اگه دارید لمپ رو لوکال نصب می کنید یا روی ماشین مجازی فهمیدم آی پیتون زیاد سخت نیس . یکی از دو روش زیر :

ifconfig
or 
ip add 

اگه دارید رو vps نصب می کنید هم تا الآن باید فهمیده باشید آی پی تون چیه :/ اگه نه کد زیر رو بزنید

sudo apt install curl 
curl http://icanhazip.com

نصب مای اسکیوال (mysql)

sudo apt install mysql-server 

بعد از این که نصب تموم شد اسکریپت که همراه با مای اسکیوال نصب میشه رو اجرا بکنید . که یک سری تنظیمات پیش فرض رو حذف می کنه و می تونید لول پسورد سختگیرانه رو هم ست بکنید . چیز سختی نداره پس توضیحش نمی دم :)

sudo mysql_secure_installation
  • نکته : از ورژن ۵٫۷ مای اسکیوال و به بعد ، کاربر روت مای اسکیوال به صورت پیش فرض با پلاگین auth_socket اعتبار سنجی میشه به جای پسورد . که برای امنیت خوبه ولی وقتی بخواید با نرم افزار هایی مثل phpmyadmin با روت لاگین کنید دردسر میشه . هرچند به نظرم بهتره با روت لاگین نکنید ولی اگه میخوایید این کارو بکنید تو ادامه اینکار انجام میدیم اگه نه برید قسمت بعدی .

برای فعال کردن mysql_native_password برای یوزر روت کامند لاین مای اسکیوال رو تو ترمینال باز کنید :

sudo mysql 

برای چک کردین اینکه هر یوزر چطور اعتبار سنجی میشه کوئری زیر رو اجرا کنید

SELECT user,authentication_string,plugin,host FROM mysql.user;

خروجی :

+------------------+-------------------------------------------+-----------------------+-----------+
| user             | authentication_string                     | plugin                | host      |
+------------------+-------------------------------------------+-----------------------+-----------+
| root             |                                           | auth_socket           | localhost |
| mysql.session    | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys        | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)

خب همونطور که می بینید روت با autho_socket اعتبار سنجی میشه . برای تغییر دادنش به پسورد دستور زیر رو وارد کنید .

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

دستور زیرو بزنید تا تیبل مجوز ها ریلود بشه و تنظیماتتون اعمال

FLUSH PRIVILEGES; 

ساخت یک کاربر با تمام دسترسی ها

CREATE USER 'admin'@'localhost' IDENTIFIED BY 'password';
GRANT ALL ON * . * TO 'admin'@'localhost';
FLUSH PRIVILEGES;

نصب پی اچ پی

sudo apt install php libapache2-mod-php php-mysql 

به صورت دیفالت آپاچی دنبال فایل index.html میگرده . ولی میشه تغییرش داد و به فایل های پی اچ پی اولیت داد . برای اینکار :

sudo vim /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>

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

sudo systemctl restart apache2 

تنظیم هاست مجازی

− پ .ن : اگه برای یادگیری میخواید این قسمتو رد کنید و فایلاتونو تو مسیر /var/www/html/ بزارید

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

sudo mkdir /var/www/your_domain 

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

sudo chown $USER:$USER /var/www/your_domain 

خب همه فیلاتونو کپی کنید تو دایرکتوری که ساختید و آماده بشید برای کانفیگ هاست مجازی :

sudo vim /etc/apache2/sites-avaiable/your_domain.conf 

این پایین الگو تنظیماته که خیلی شبیه دیفالت هست . کپی و پیست کنید تو فایلی که ایجاد کردید و تغییرات لازم رو بدید . مهمترین چیزی که باید تغییر بدید DocumentRoot هست به مسیر دایرکتوری که ایجاد کردید.

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName your_domain
    ServerAlias www.your_domain
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

سیوش کنید . هاست رو فعال کنید

sudo a2ensite your_domain.conf 

هاست دیفالت رو غیرفعال کنید .

sudo a2dissite 000-default.conf

چک کنیم که اررور سینتکسی نداشته باشیم

sudo apache2ctl configtest

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

sudo systemctl restart apache2 

حله و اوکی هست . امیدوارم به دردتون بخوره این آموزش . سوالی داشیتد تو گروهی تلگرام مطرح کنید سعی می کنم جواب بدم . بای بای

کپی بخش یا کل هر کدام از مطالب لینوکس ۹۸ تنها با کسب مجوز مکتوب امکان پذیر است.
وبلاگ لینوکس ۹۸ یک پروژه متن باز بوده و سورس آن در گیت‌هاب موجود است.