راهنمای نصب LEMP در آرچ لینوکس (Nginx, MySql, PHP)
من همیشه از درگیر بودن با آپاچی ناراضی بودم و چون یه برنامه نویس حرفهای وب نیستم دلیلی هم بر اذیت کردن خودم و درگیری با فایلهای پیکرهبندی آپاچی نمیبینم. Nginx یه کارساز وبه که یکی از رقبای آپاچی به حساب میاد و به شدت سبک و سریع و توی این چند سال اخیر تونسته درصد قابل توجهی از سهم بازار رو بگیره.
Nginx با پردازش غیرهمزمان تونسته برخی مشکلات آپاچی رو حل کنه، بر روی تمام سیستم عاملها اجرا میشه، حجمش کمتر از یک مگابایته و مهمتر از همه برای من تنبل تمام تنظیماتش توی یه فایل به نام nginx.conf ذخیره میشه.
برای نصب LEMP روی آرچ لینوکس(بستههای زیر در تمام توزیعهای لینوکس از طریق مدیر بسته قابل دسترسند)
۱- سیستمتون رو بهروز کنید.
# pacman -Syu
۲- نصب MySql
# pacman -S mysql
۳- تنظیمات MySql
# systemctl start mysqld && mysql_secure_installation
بعد از اجرای این دستور مطابق خروجی زیر عمل کنید
Enter current password for root (enter for none):
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MySQL
root user without the proper authorization.
Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y
... Success!
Normally, root should only be allowed to connect from 'localhost'. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MySQL
installation should now be secure.
Thanks for using MySQL!
۴- راهاندازی MySql
# systemctl restart mysqld
۵- نصب و راهاندازی nginx
# pacman -S nginx
# systemctl start nginx
۶- نصب و راهاندازی php-fpm
# pacman -S php-fpm
# systemctl start php-fpm
۷- پیکرهبندی nginx
# nano /etc/nginx/nginx.conf
در فایل بالا به دنبال خط location ~ \.php$ بگردید و محتوای بلاک را با بلاک زیر جایگزین کنید.
location ~ \.php$ {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
root /srv/http;
include fastcgi.conf;
}
۸- راهاندازی مجدد nginx
# systemctl restart nginx
۹- تست
خب کار تموم شد، برای تست یه فایل PHP بسازید:
# nano /srv/http/info.php
با این محتوا
<?php
phpinfo();
?>
nginx رو دوباره راهاندازی کنید
# systemctl restart nginx
و توی مرورگرتون این آدرس رو وارد کنید
http://localhost/info.php
به همین سادگی :)