LAMP, bir sunucunun dinamik web sitelerini ve web uygulamalarını barındırmasını sağlamak için genellikle birlikte yüklenen bir grup açık kaynaklı yazılımdır. Bu terim aslında Apache ön belleklemeli web sunucusu ile Linux işletim sistemini temsil eden bir kısaltmadır . Site verileri bir MySQL veritabanında saklanır ve dinamik içerik PHP tarafından işlenir.
Ön şartlar
- root ya da
sudo
yetkilerine sahip bir kullanıcı hesabı - Temel güvenlik duvarı (ufw)
- Ubuntu 18.04 sunucusu (DigitalOcean ve Vultr tavsiyemdir)
Adım 1 - Apache’yi Yükleme ve Güvenlik Duvarını Güncelleme
Apache web sunucusu dünyanın en popüler web sunucuları arasındadır. Web’in büyük bir kısmında yaygın olarak kullanılmaktadır, bu da bir web sitesi barındırmak için onu harika bir seçim haline getiriyor.
Ubuntu’nun paket yöneticisini apt
kullanarak Apache ve ufw’yi kurun:
sudo apt update
sudo apt-get upgrade -y
sudo apt install apache2 -y
sudo apt install ufw -y
sudo ufw allow OpenSSH
sudo ufw enable
sudo
komutu kullandığımız için bu işlemler kök ayrıcalıklarıyla yürütülür. Siz olduğunuzu doğrulamak için kullanıcı şifrenizi istenecektir. Bu adımda kurulum onayları için isteklerde Y yanıtını vermelisiniz.
Güvenlik Duvarını Web Trafiğine İzin Verecek Şekilde Ayarlama
Ardından, UFW güvenlik duvarını etkinleştirdiğinizi varsayarsak, güvenlik duvarınızın HTTP ve HTTPS trafiğine izin verdiğinden emin olun. UFW’nin Apache için aşağıdaki gibi bir uygulama profiline sahip olup olmadığını kontrol edebilirsiniz:
sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH
Apache Full
profiline alttaki komut ile bakarsanız, 80
ve 443
bağlantı noktalarına ufw’nin trafik sağladığını görmelisiniz:
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
Eğer profiller çıktısı bu şekilde değil ise alttaki komutla oluşturabilirsiniz;
sudo ufw allow in "Apache Full"
Web tarayıcınızda sunucunuzun genel IP adresini ziyaret ederek her şeyin planlandığı gibi gittiğini doğrulamak için hemen bir kontrol yapabilirsiniz (bu bilgilere sahip değilseniz genel IP adresinizin ne olduğunu öğrenmek için bir sonraki başlığın altındaki nota bakın.):
http://sunucuipadresiniz
Bilgilendirme ve test amacıyla orada bulunan varsayılan Ubuntu 18.04 Apache web sayfasını göreceksiniz. Şunun gibidir:
Bu sayfayı görüyorsanız, web sunucunuz doğru şekilde yüklenmiş ve güvenlik duvarı yetkilerinizde tanımlanmış demektir.
Sunucunuzun Genel IP Adresini Bulma
Sunucunuzun genel IP adresinin ne olduğunu bilmiyorsanız, bulabilmenizin birkaç yolu vardır. Genellikle, sunucunuza SSH üzerinden bağlanmak için kullandığınız adrestir.
Bunu komut satırından yapmanın birkaç farklı yolu vardır. İlk olarak, iproute2
yazarak IP adresinizi bulmak için araçları kullanabilirsiniz:
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Bu komut size iki veya üç satır çıktı verecektir. Hepsi doğru adreslerdir, ancak bilgisayarınız bunlardan yalnızca birini kullanabilir, bu genelde birinci yani IPV4 adresidir.
Alternatif bir yönteme ise alttaki komut ile ulaşabilirsiniz, komut direkt IP adresinizi çıktı olarak verecektir;
curl http://icanhazip.com
Adım 2 - MySQL Kurulumu
Artık web sunucunuz çalışır durumda ve artık MySQL’i kurmanın zamanı geldi. MySQL bir veritabanı yönetim sistemidir. Temel olarak, sitenizin bilgi depolayabileceği veritabanlarını organize eder ve bunlara erişim sağlar.
Yine, bu yazılımı edinmek ve yüklemek için apt
kullanın:
sudo apt install mysql-server -y
Burada,
sudo apt-get update
komutu çalıştırmanız gerekmez. Bunun nedeni, Apache’yi yüklemek için yukarıdaki komutlarda zaten çalıştırmış olmanızdır. Yani bilgisayarınızdaki paket dizini zaten güncel
Yeni MySQL kurulumları için bir sonraki adım, içerilen güvenlik komut dosyasını çalıştırmaktır. Bu komut dosyası, daha az güvenli varsayılan seçeneklerden bazılarını değiştirir. Uzak kök girişlerini engellemek ve kullanılmayan veritabanı kullanıcılarını kaldırmak için kullanacağız.
Güvenlik komut dosyasını çalıştırın:
sudo mysql_secure_installation
Bu komut dosyası sizi MySQL kurulumunuzda bazı değişiklikler yapabileceğiniz bir dizi bilgi istemine götürür.
Şu ekran sizi karşılayacaktır;
Securing the MySQL server deployment.
Connecting to MySQL using a blank password.
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:
Y ardından ENTER tuşuna basın .
Sonrasında şu ekranı göreceksiniz;
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG:
2 ardından ENTER tuşuna basın .
Sizden bir şifre belirlemeniz istenecek. Bir büyük harf, bir rakam, bir küçük harf ve bir özel sembol içeren uzun şifre belirleyiniz ve aynısını tekrar giriniz.
Şöyle bir ekran görünecek;
New password:
Re-enter new password:
Estimated strength of the password: 100
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :
Bu işlemi ve takip eden soruların varsayılanlarını kabul etmek için Y ve Enter tuşlarına basabilirsiniz. Bu takip eden istemler, anonim kullanıcıları ve test veritabanını kaldıracak, uzaktan kök oturum açmayı devre dışı bırakacak ve MySQL’in yaptığınız değişikliklere hemen uyması için bu yeni kuralları yazılıma yükleyecektir.
İşlem bittiğinde, alttaki komutu yazarak MySQL konsoluna giriş yapın:
sudo mysql
Şöyle bir ekran görmelisiniz;
kopyala
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.7.29-0ubuntu0.18.04.1 (Ubuntu)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
Bu komut ile, MySQL sunucusuna yönetimsel veritabanı kullanıcı kökü olarak bağlanırsınız.
Kök kullanıcı olarak bağlanmak için bir parola girmeniz gerekmediğine dikkat edin . Bu unix_socket
yerine, yönetimsel MySQL kullanıcısı için varsayılan kimlik doğrulama yöntemi olan şifreniz
yerine kullanılır. Bu ilk başta bir güvenlik sorunu gibi görünse de, veritabanı sunucusunu aslında daha güvenli bir hale getirir, çünkü kök MySQL kullanıcısı olarak oturum açmasına izin verilen kullanıcılar zaten sudo ayrıcalıklarına sahip sistem kullanıcılarıdır. Kısacası aynı ayrıcalıklardır Pratik olarak ise, PHP uygulamanızdan bağlanmak için yönetici veritabanı kök kullanıcısını kullanamayacağınız anlamına gelir.
MySQL 5.7 (ve sonraki sürümleri) çalıştıran Ubuntu sistemlerinde, kök MySQL kullanıcısının parola yerine varsayılan olarak
auth_socket
eklentisini kullanarak kimlik doğrulaması yapacağı şekilde ayarlandığını unutmayın. Bu, birçok durumda daha fazla güvenlik ve kullanılabilirlik sağlar, ancak harici bir programın (Örn; PhpMyAdmin) veritabanı sistemine erişmesine izin vermeniz gerektiğinde işleri karmaşık hale getirebilir.
MySQL’e root olarak bağlanırken bir şifre kullanmayı istiyorsanız, kimlik doğrulama yöntemini
auth_socket
>mysql_native_password
değiştirmeniz gerekir. Bunu yapmak için terminalinizden öncelikle MySQL konsolunu açın:
sudo mysql
Ardından, MySQL kullanıcı hesaplarınızın her birinin aşağıdaki komutla hangi kimlik doğrulama yöntemini kullandığını kontrol edin:
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 | *70B3E55DA437B329F2F1A90C66719B666CBF4B9E | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
Bu örnekte, kök kullanıcının aslında auth_socket
eklentisini kullanarak kimlik doğrulaması yaptığını görebilirsiniz. Kök hesabını bir parolayla kimlik doğrulaması yapacak şekilde yapılandırmak için aşağıdaki ALTER USER
komutu çalıştırın . Şifreniz2020*-
kısmını kendi seçtiğiniz güçlü (Bir büyük harf, bir küçük harf, bir rakam ve özel simgeler) bir şifreyle değiştirdiğinizden emin olun:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Şifreniz2020*-';
Ardından, FLUSH PRIVILEGES
ile sunucunuza veritabanı tablolarının yeniden yüklemesi gerektiğini ve yeni değişikliklerinizi yürürlüğe koymasını söyleyebilrisiniz:
FLUSH PRIVILEGES;
Kök kullanıcının artık auth_socket
eklentisini kullanarak kimlik doğrulaması yapmadığını doğrulamak için her bir kullanıcı tarafından kullanılan kimlik doğrulama yöntemlerini yine kontrol edin:
SELECT user,authentication_string,plugin,host FROM mysql.user;
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *91EA82EFAD0677E20FDAEC7F11E15244530996F6 | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *70B3E55DA437B329F2F1A90C66719B666CBF4B9E | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
4 rows in set (0.00 sec)
Bu örnek çıktıda kök MySQL kullanıcısının artık bir parola kullanarak kimliğini doğruladığını görebilirsiniz. Bunu kendi sunucunuzda da onayladıktan sonra, MySQL kabuğundan çıkabilirsiniz.
exit
Bu noktada, veritabanı sisteminiz kuruldu ve LAMP yığınının son bileşeni olan PHP’yi kurmaya devam edebilirsiniz.
Adım 3 - PHP Kurulumu
PHP, kurulumunuzun dinamik içeriği görüntülemek için kod işleyecek olan bileşenidir. Komut dosyaları çalıştırabilir, bilgileri çekmek için MySQL veritabanlarınıza bağlanabilir ve işlenen içerikler görüntülemek için web sunucunuza iletilebilir.
Bir kez daha PHP kurmak için apt
sistemini kullanacağız. Ayrıca, PHP kodunun Apache sunucusu altında çalışabilmesi ve MySQL veritabanınızla iletişim kurabilmesi için bu sefer bazı yardımcı paketlerde kuracağız:
sudo apt install php libapache2-mod-php php-mysql -y
Bu komut, PHP’yi ve yardımcı paketleri sorunsuz yüklemelidir. Bunu birazdan test edeceğiz.
Şu anda, bir kullanıcı sunucumuzdan bir dizin istediğinde, Apache önce dizin için index.html
adlı dosyayı arar. Ancak biz sunucumuzda ağırlıklı olarak PHP dosyaları kullanacağız. Yani web sunucumuza öncelikle PHP dosyalarını yok ise HTML dosyalarını tercih etmesini söylememiz gerekiyor.
Bunu yapmak için, dir.conf
dosyasını kök ayrıcalıklarına sahip bir metin düzenleyicisinde açmak için şu komutu yazın:
sudo nano /etc/apache2/mods-enabled/dir.conf
Şu alanı görmelisiniz;
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
PHP dizin dosyasını (yukarıda vurgulanan) DirectoryIndex
belirtiminden sonraki ilk konuma aşağıdaki gibi taşıyın:
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
İşiniz bittiğinde, kaydetmek ve çıkmak için CTRL + X ardından Y yani Evet ve son olarak ENTER yanıtını vermelisiniz.
Bundan sonra, değişikliklerinizin tanınması için Apache web sunucusunu yeniden başlatın. Bunu şu komutla yapabilirsiniz:
sudo systemctl restart apache2
apache2
hizmetinin durumunu ayrıca aşağıdaki komutla da kontrol edebilirsiniz:
sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enable
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Sat 2020-04-11 21:12:22 CEST; 3s ago
Process: 24281 ExecStop=/usr/sbin/apachectl stop (code=exited, status=0/SUCCESS)
Process: 24286 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
Main PID: 24290 (apache2)
Tasks: 6 (limit: 2300)
CGroup: /system.slice/apache2.service
├─24290 /usr/sbin/apache2 -k start
├─24291 /usr/sbin/apache2 -k start
├─24292 /usr/sbin/apache2 -k start
├─24293 /usr/sbin/apache2 -k start
├─24294 /usr/sbin/apache2 -k start
└─24295 /usr/sbin/apache2 -k start
Apr 11 21:12:22 sizinalanadiniz systemd[1]: Starting The Apache HTTP Server...
Apr 11 21:12:22 sizinalanadiniz systemd[1]: Started The Apache HTTP Server.
Buradan çıkmak için Q düğmesine basın .
PHP’nin işlevselliğini artırmak için bazı ek modüller yükleme seçeneğiniz her zaman olacaktır. PHP modülleri için kullanılabilir seçenekleri görmek için:
apt search php- | less
Yukarı ve aşağı kaydırmak için ok tuşlarını kullanın ve çıkmak için Q düğmesine basın .
Sonuçların tümü, yükleyebileceğiniz isteğe bağlı bileşenlerdir. Ayrıca hepsinin kısa bir açıklaması vardır.
Örneğin;
Sorting...
Full Text Search...
bandwidthd-pgsql/bionic,bionic 2.0.1+cvs20090917-10ubuntu1 amd64
Tracks usage of TCP/IP and builds html files with graphs
bluefish/bionic,bionic 2.2.10-1 amd64
advanced Gtk+ text editor for web and software development
cacti/bionic,bionic,bionic,bionic 1.1.38+ds1-1 all
web interface for graphing of monitoring systems
ganglia-webfrontend/bionic,bionic,bionic,bionic 3.6.1-3 all
cluster monitoring toolkit - web front-end
golang-github-unknwon-cae-dev/bionic,bionic,bionic,bionic 0.0~git20160715.0.c6aac99-4 all
PHP-like Compression and Archive Extensions in Go
haserl/bionic,bionic 0.9.35-2 amd64
CGI scripting program for embedded environments
kdevelop-php-docs/bionic,bionic,bionic,bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php
kdevelop-php-docs-l10n/bionic,bionic,bionic,bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php-l10n
kdevelop-php-l10n/bionic,bionic,bionic,bionic 5.2.1-1ubuntu2 all
localization files for KDevelop PHP plugin
libcode-tidyall-perl/bionic,bionic,bionic,bionic 0.67-1 all
your all-in-one code tidier and validator
libnet-libidn-perl/bionic,bionic 0.12.ds-2build4 amd64
Perl bindings for GNU Libidn
libphp-adodb/bionic,bionic,bionic,bionic 5.20.9-1 all
ADOdb is a PHP database abstraction layer library
libphp-embed/bionic,bionic,bionic,bionic 1:7.2+60ubuntu1 all
HTML-embedded scripting language (Embedded SAPI library) (default)
libphp-jabber/bionic,bionic,bionic,bionic 0.4.3-5 all
Object-oriented PHP interface for the Jabber/XMPP protocol
libphp-jpgraph/bionic,bionic,bionic,bionic 1.5.2-13 all
Object oriented graph library for php
:
Her bir modülün ne yaptığı hakkında daha fazla bilgi edinmek için internette bunlar hakkında daha fazla bilgi arayabilirsiniz. Alternatif olarak, aşağıdakileri yazarak paketin uzun açıklamasına da bakabilirsiniz:
apt show PAKET_ADI
Modülün sağladığı işlevsellik hakkında daha uzun bir açıklamaya sahip bir Description
çıktısı olacaktır.
Örneğin, php-cli
modülün ne yaptığını öğrenmek için şunu yazabilirsiniz:
apt show php-cli
Çok sayıda bilginin yanı sıra, şuna benzer bir şeyde görmelisiniz;
Package: php-cli
Version: 1:7.2+60ubuntu1
Priority: optional
Section: php
Source: php-defaults (60ubuntu1)
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian PHP Maintainers <pkg-php-maint@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.com/ubuntu/+filebug
Installed-Size: 12.3 kB
Depends: php7.2-cli
Supported: 5y
Download-Size: 3,160 B
APT-Sources: http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Description: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Ubuntu's default
PHP version (currently 7.2).
Araştırma yaptıktan sonra, bir paket kurmaya karar verirseniz, bunu diğer yazılımlarda yaptığınız gibi apt install
komutunu kullanarak yapabilirsiniz.
Örneğin php-cli
modülünün ihtiyacınız olan bir şey olduğuna karar verdiyseniz şu komutu vermelisiniz.
sudo apt install php-cli
Birden fazla modül kurmak istiyorsanız, bunu her birini bir boşlukla ayırarak, şöyle yapabilirsiniz:
sudo apt install paket1 paket2 paket3
Bu noktada, LAMP yüklediniz ve yapılandırdınız. Başka bir şey yapmadan önce, sunucunuzun yapılandırma ayrıntılarını saklayabileceğiniz bir Apache sanal ana bilgisayarı kurmanızı öneririz.
Adım 4 - Sanal Ana Bilgisayarları Ayarlama (Önerilir)
Apache web sunucusunu kullanırken, yapılandırma ayrıntılarını kapsüllemek ve tek bir sunucuda birden fazla etki alanını barındırmak için sanal ana makineleri (Nginx’teki sunucu bloklarına benzer) kullanabilirsiniz. Biz sizinalanadiniz.com adlı bir alan adı ayarlayacağız, ancak bunu her ilgili komutta kendi alan adınızla değiştirmeniz gerekecek.
Ubuntu 18.04’teki Apache, varsayılan olarak, /var/www/html
dizininden döküman sunmak üzere yapılandırılmış bir sunucu bloğuna sahiptir. Bu tek bir site için iyi çalışacak olsa da, birden fazla siteye ev sahipliği yapıyorsanız sunucunuz hantallaşacaktır. Değiştirmek yerine, yeni sizinalanadiniz.com sitemiz için yeni bir /var/www/html
dizin yapısı oluşturalım ve /var/www
içerisinde yapılacak bir istemci isteği başka sitelerle eşleşmezse bu dizini kullanıcıya sunulacak olan varsayılan dizin olarak yapılandıralım.
Dizinleri şu şekilde çoğaltabilirsiniz;
/var/www/
├── sizinalanadiniz1.com
│ └── public_html
├── sizinalanadiniz2.com
│ └── public_html
├── sizinalanadiniz3.com
│ └── public_html
Dizini oluşturarak başlayalım;
sudo mkdir -p /var/www/sizinalanadiniz.com/public_html
Ardından, $USER
ortam değişkeniyle dizinin sahipliğini atayın:
sudo chown -R www-data: /var/www/sizinalanadiniz.com
unmask
değerinizi daha önceden değiştirmediyseniz, web köklerinizin izinleri doğru olmalıdır, ancak şu komutu yazarak emin olabilirsiniz:
sudo chmod -R 755 /var/www/sizinalanadiniz.com
Ardından, favori düzenleyicinizi kullanarak bir index.html
örnek sayfa oluşturun (Biz nano
kullanacağız):
nano /var/www/sizinalanadiniz.com/public_html/index.html
İçerik olarak aşağıdaki örnek HTML’yi ekleyin:
<!DOCTYPE html>
<html lang="tr" dir="ltr">
<head>
<meta charset="utf-8">
<title>Naber :)</title>
</head>
<body>
<h1>Eskiden buralar hep dutluktu :)</h1>
</body>
</html>
İşiniz bittiğinde dosyayı kaydedin ve kapatın.
Apache’nin bu içeriğe hizmet verebilmesi için, doğru yönergelerle sanal bir /etc/apache2/sites-available/000-default.conf
ana bilgisayar dosyası oluşturmanız gerekir. Doğrudan /etc/apache2/sites-available/sizinalanadiniz.com.conf
konumunda bulunan varsayılan yapılandırma dosyasını değiştirmek yerine şu adresten yeni bir dosya oluşturalım:
sudo nano /etc/apache2/sites-available/sizinalanadiniz.com.conf
Varsayılana benzer, ancak yeni dizinimiz ve alan adımız için güncellenen aşağıdaki yapılandırma kodunu kopyalayıp yapıştırın:
<VirtualHost *:80>
ServerName sizinalanadiniz.com
ServerAlias www.sizinalanadiniz.com
ServerAdmin webmaster@sizinalanadiniz.com
DocumentRoot /var/www/sizinalanadiniz.com/public_html
<Directory /var/www/sizinalanadiniz.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/sizinalanadiniz.com-error.log
CustomLog ${APACHE_LOG_DIR}/sizinalanadiniz.com-access.log combined
</VirtualHost>
DocumentRoot
Alan adınının yeni dizinimize erişebileceği kısmı tanımlar. ServerAdmin
kısmını bir e-postayla güncellediğimize dikkat edin. Ayrıca sanal ana bilgisayar tanımıyla eşleşmesi gereken temel etki alanını oluşturan ve temel admış gibi eşleşmesi gereken diğer adları tanımlayan ServerName
ve ServerAlias
şeklinde iki yönerge ekledik.
İşiniz bittiğinde dosyayı kaydedin ve kapatın.
Dosyayı a2ensite
aracıyla etkinleştirelim:
sudo a2ensite sizinalanadiniz.com
Aşağıdaki çıktıyı görmelisiniz:
Enabling site sizinalanadiniz.com.
To activate the new configuration, you need to run:
systemctl reload apache2
Diğer bir seçenek ise, aşağıda gösterildiği gibi manuel olarak bir sembolik bağlantı oluşturmaktır:
sudo ln -s /etc/apache2/sites-available/sizinalanadiniz.com.conf /etc/apache2/sites-enabled/
000-default.conf
konumunda tanımlanan varsayılan siteyi devre dışı bırakın:
sudo a2dissite 000-default.conf
Aşağıdaki çıktıyı görmelisiniz:
Site 000-default disabled.
To activate the new configuration, you need to run:
systemctl reload apache2
Ardından, yapılandırma hatalarını test edelim:
sudo apache2ctl configtest
Aşağıdaki çıktıyı görmelisiniz:
Syntax OK
Değişikliklerinizi uygulamak için Apache’yi yeniden başlatın:
sudo systemctl restart apache2
Apache artık alan adınızı kullanıyor olmalıdır. Bunu, şuna benzer bir ekran görmeniz gereken yere http://sizinalanadiniz.com
giderek test edebilirsiniz:
Bununla birlikte, sanal ana bilgisayarınız tamamen kuruldu. Daha fazla değişiklik yapmadan veya bir uygulamayı dağıtıma sürmeden önce, PHP yapılandırmanızı proaktif olarak test etmeniz yararlı olacaktır.
Adım 5 - Web Sunucunuzda PHP İşlemeyi Test Etme
Sisteminizin PHP için düzgün yapılandırıldığını test etmek için, bilgi.php
adlı çok temel bir PHP betiği oluşturalım. Apache’nin bu dosyayı bulması ve doğru bir şekilde sunması için web kök dizininize kaydedilmesi gerekir.
Dosyayı önceki adımda oluşturduğunuz web kökünde şu komutla oluşturun:
sudo nano /var/www/sizinalanadiniz.com/public_html/bilgi.php
Boş bir dosya açılacaktır. Geçerli PHP bilgilerini yazdıracak olan şu kodu dosyanın içine ekleyin:
<?php
phpinfo();
?>
İşiniz bittiğinde dosyayı kaydedin ve kapatın.
Artık web sunucunuzun bu PHP betiği tarafından oluşturulan içeriği doğru bir şekilde görüntüleyip görüntülemediğini test edebilirsiniz. Bunu denemek için web tarayıcınızda bu sayfayı ziyaret edin. Sunucunuzun genel IP adresine ya da etki alan adınıza tekrar ihtiyacınız olacak.
Ziyaret etmeniz gereken adres:
http://sizinalanadiniz.com/bilgi.php
http://sunucuipadresiniz/bilgi.php
Sayfa şöyle görünmelidir:
Bu sayfa, PHP perspektifinden sunucunuz hakkında bazı temel bilgiler sağlar. Hata ayıklama ve ayarlarınızın doğru yapılandırıldığından emin olmak için kullanışlıdır.
Bu sayfayı tarayıcınızda görebiliyorsanız, PHP’niz ve web sunucunuz beklendiği gibi çalışıyor demektir.
Muhtemelen bu testten sonra bu dosyayı kaldırmak isteyeceksiniz çünkü sunucunuz hakkında yetkisiz kullanıcılara çok fazla bilgi verebilir. Bunu yapmak için aşağıdaki komutu çalıştırın:
sudo rm /var/www/sizinalanadiniz.com/public_html/bilgi.php
Bilgilere daha sonra tekrar erişmeniz gerekirse bu sayfayı her zaman yeniden oluşturabilirsiniz.
Sonuç
Yüklü bir LAMP yazılımı bütününe sahip olduğunuza göre, bundan sonra ne yapacağınız konusunda birçok seçeneğiniz var. Temel olarak, sunucunuza birçok türde web sitesi ve web yazılımı yüklemenizi sağlayacak bir platform kurdunuz.
Bu öğreticinin devamı olarak ziyaret etmek isteyebilirsiniz;
Herhangi bir sorunla karşı karşıyaysanız, bu makaleyi yanıtlamaktan çekinmeyin