Lemp nedir?
Kurulum
Birinci adım – Güncelleme
İkinci adım – Mysql
Üçüncü adım – Nginx
Dördüncü adım – PHP
Lemp nedir?
LEMP açık kaynak kodlu yazılımlar olan Linux, nginx (Encin-x diye telaffuz edilir), MySQL, ve PHP nin kısaltılmış ifadesidir. Bu programlar bir sunucunun php kodlu bir web portalını çalıştırması için gerekli yeterlidir. Nasıl kurulacağı adım adım anlatılmaktadır.
Kurulum
Bu kurulumları yapmak için sunucu SSH arayüzünde root yetikisine sahip olmanız gereklidir.
Birinci Adım—Update Apt-Get ve Upgrade Apt-Get
Öncelikle temiz kurulumlu bir sunucuda mevcut programları güncelliyoruz.
sudo apt-get update
sudo apt-get upgrade
İkinci Adım—MySQL’ yükleyelim
Aşağıdaki komut mysql sunucusunu yükler
sudo apt-get install mysql-server php5-mysql
Yükleme esnasında mysql size root şifresi olarak belirleyeceğiniz şifreyi soracak. Zor bir şifreyi seçerek iki kere yazalım.
Daha sonra mysql sunucusunu aşağıdaki komutla aktif hale getirelim.
sudo mysql_install_db
Son olarakta mysql güvenlik ayarlarını yapalım.Aşağıdaki komutu yazıyoruz.
sudo /usr/bin/mysql_secure_installation
Kurulumda mevcut root şifresi istenecek.Girelim.
Yükleme sırasında mysql root şifresini değiştirmek isteyip istemediğinizi soracak. Buna hayır “n” diyebiliriz.
Bundan sonraki tüm sorulara evet “y” cevabı vererek kurulumu tamamlayalım.
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…
Üçüncü adımda nginx yüklenecek
Mysql kurulduğuna göre sırada nginx var. Aşağıdaki komutla yüklüyoruz.
sudo apt-get install nginx
daha sonra nginx sunucusunu başlatıyoruz.
sudo service nginx start
Nginx ‘in düzgün yüklenip yüklenmediğini aşağıdaki komutla kontrol ediyoruz. Bu komut size aynı zamanda sunucunun ip adresini vermelidir.
ifconfig eth0 | grep inet | awk ‘{ print $2 }’
Dördüncü adım. PHP yükleyelim
PHP-FPM burada tercih ettiğimiz yüklemedir aşağıdaki komutla yüklenebilir.
sudo apt-get install php5-fpm
Beşinci adımda php yi düzenleyelim
php.ini dosyasında ufak bir değişiklik yapmamız gerekecek
sudo apt-get install nano
sudo nano /etc/php5/fpm/php.ini
cgi.fix_pathinfo=1 yazan satırı bulalım, ve 1 sayısını 0 yapalım.
cgi.fix_pathinfo=0
Bu makale yararlı görülen ve denenmiş bir ingilizce makaleden çevrilmektedir. Çevirme bu satırdan itibaren devam edecektir. Yakın zamanda tekrar kontrol ediniz.
If this number is kept as 1, the php interpreter will do its best to process the file that is as near to the requested file as possible. This is a possible security risk. If this number is set to 0, conversely, the interpreter will only process the exact file path—a much safer alternative. Save and Exit.
We need to make another small change in the php5-fpm configuration.Open up www.conf:
sudo nano /etc/php5/fpm/pool.d/www.conf
Find the line, listen = 127.0.0.1:9000, and change the 127.0.0.1:9000 to /var/run/php5-fpm.sock.
listen = /var/run/php5-fpm.sock
Save and Exit.
Restart php-fpm:
sudo service php5-fpm restart
Step Six—Configure nginx
Open up the default virtual host file.
sudo nano /etc/nginx/sites-available/default
The configuration should include the changes below (the details of the changes are under the config information):
UPDATE: Newer Ubuntu versions create a directory called ‘html’ instead of ‘www’ by default. If /usr/share/nginx/www does not exist, it’s probably called html. Make sure you update your configuration appropriately.
[…]
server {
listen 80;
root /usr/share/nginx/www;
index index.php index.html index.htm;
server_name example.com;
location / {
try_files $uri $uri/ /index.html;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/www;
}
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
[…]
Here are the details of the changes:
Add index.php to the index line.
Change the server_name from local host to your domain name or IP address (replace the example.com in the configuration)
Change the correct lines in “location ~ \.php$ {“ section
Save and Exit
Eğer subdomain kullanılmak isterse aşağıdaki ayarlar denenebilir.
server { listen 80; server_name blabla.com; root /var/www/blabla.com; location / { try_files $uri $uri/ =404; } } server { listen 80; server_name mew.blabla.com; root /var/www/mew.blabla.com; location / { try_files $uri $uri/ =404; } }
Step Seven—Create a php Info Page
We can quickly see all of the details of the new php configuration.
To set this up, first create a new file:
sudo nano /usr/share/nginx/www/info.php
Add in the following line:
Then Save and Exit.
Restart nginx
sudo service nginx restart
You can see the nginx and php-fpm configuration details by visiting http://youripaddress/info.php
Your LEMP stack is now set up and configured on your virtual private server.
Save the file and refresh http://localhost/ (or http://your-server-ip-address). If everything goes well you have a nice page with your PHP configuration explained, if not you can replace “/tmp/php5-fpm.sock” by “/var/run/php5-fpm.sock” in both /etc/nginx/nginx.conf and /etc/php5/fpm/pool.d/www.conf and reload nginx and php5-fpm (possible solution by Flávio Moringa, thnx Flávio!).
The final thing to do is install phpMyAdmin.
1
|
sudo apt-get install phpmyadmin -y |
Go to your web root and link phpMyAdmin.
1
2
|
cd /usr/share/nginx/www sudo ln -s /usr/share/phpmyadmin |
Now you should be able to go to http://localhost/phpmyadmin (or http://your-server-ip-address/phpmyadmin). In a production environment I try not to use phpMyAdmin, and if I really need it I use another alias. For example poiul. It makes it harder for others to find it.
chown -R www-data:www-data /usr/share/nginx/www