Image

Bu kılavuzda, Magento uygulamasını sanal bir sunucuya kuracağız, her seferinde aynı işlemi yapmamak için bir vps sunucu olarak Debian 12 üzerinde web yığını yapısını kullanacağız. Bu yapı, PHP ve mariadb gerektiren web uygulamalarını hızlı bir şekilde dağıtmak için özel olarak oluşturulmuştur. Resmi web sitesinden en son sürümü indirip tarayıcı üzerinden kuracağız. Gerekli tüm servisler zaten kurulu ve yapılandırılmıştır. Önceden kurulmuş Magento ile bir vps sunucusu da sipariş edebilirsiniz. Tek yapmanız gereken yönetim için giriş ve şifrenizi değiştirmektir.
1. Sunucuyu Hazırlayalım
Versiyon 2.4.6-p3

1.1 Gerekli php modüllerini yükleyin

apt install php-fpm php-cli php-mysql php-mbstring php-xml php-gd php-bcmath php-zip php-curl php-tidy php-intl php-soap php-xsl libsodium-dev libsodium23 libssl-dev libcurl4-openssl-dev

1.2 Bir veritabanı ve kullanıcı oluşturalım

mariadb -u root

CREATE DATABASE magento;
CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'Your_password2';
GRANT ALL PRIVILEGES ON magento.* TO 'magentouser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'localhost' IDENTIFIED BY 'Yourpassword32!' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

1.3 Composer'ı yükleyin

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php --2.2
php -r "unlink('composer-setup.php');"
mv composer.phar /usr/local/bin/composer

1.4 ElasticSearch'i indirip kurun

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-amd64.deb
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.11.3-amd64.deb.sha512
shasum -a 512 -c elasticsearch-8.11.3-amd64.deb.sha512
dpkg -i elasticsearch-8.11.3-amd64.deb

1.4.1 Ayar dosyası ekleyin

nano /etc/elasticsearch/jvm.options.d/memory.options

-Xms512m
-Xmx784m

1.4.2 Seçeneği değiştirelim

nano /etc/elasticsearch/elasticsearch.yml

xpack.security.enabled: false

1.4.3 Servisi başlatalım

nano /etc/elasticsearch/elasticsearch.yml

systemctl enable elasticsearch --now
systemctl start elasticsearch.service

1.5 Redis'i yükleyin ve yapılandırın

curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
apt update
apt install redis

1.5.1 Redis servisi için şifre belirleyin

redis-cli

acl setuser default >Your_Redis_Password
> OK
AUTH Your_Redis_Password
> OK

1.6 Magento'yu kurmak için her şeyi hazırlayalım

1.6.1 Anahtarları almak için siteye kaydolun

https://account.magento.com/
https://commercemarketplace.adobe.com/customer/accessKeys/

Aşağıdaki içerikle bir dosya oluşturalım

nano ~/.config/composer/auth.json 

{
"http-basic": {
"repo.magento.com": {
"username": "public_key",
"password": "private_key"
}

}
}

1.6.2 Bir dizin oluşturalım

mkdir /var/www/domain.tld -p

1.6.3 İçine gidelim ve kurulumu başlatalım

cd /var/www/domain.tld
composer create-project --repository-url=https://repo.magento.com/ magento/project-community-edition

Kurulum tamamlandığında, yönetim paneli adresini içeren bir mesaj alacaksınız, bunu biraz sonra kullanacağız
[BAŞARILI]: Magento Yönetim URI'si: /admin_1tbbc0

1.6.4 Tüm klasör ve dosyaları domain.tld klasörünün köküne taşıyın

cd /var/www/domain.tld/project-community-edition
mv /var/www/domain.tld/project-community-edition/* /var/www/domain.tld/
mv /var/www/domain.tld/project-community-edition/.* /var/www/domain.tld/

1.6.5 Nginx dosyasındaki direktifleri değiştirelim

sed -i 's/php-fpm:9000/fastcgi_backend/g' /var/www/magento/nginx.conf.sample

1.6.6 Yapılandırma dosyasındaki satırı değiştirin

nano /var/www/magento/app/etc/di.xml

Default
^10\.[2-6]\.
Değiştir
^10\.([2-9]|10|11)\.


1.6.7 Magento'yu yükleyelim

cd /var/www/domain.tld

bin/magento setup:install --base-url=http://magento.example.com --use-secure=1 --base-url-secure=https://magento.example.com --use-secure-admin=1 --db-host=localhost --db-name=magento --db-user=magentouser --db-password=Your_password2 --admin-firstname=myuser --admin-lastname=Lastname --admin-email=myuser@example.com --admin-user=myuser --admin-password=admin_password0 --language=en_US --currency=USD --timezone=America/Chicago --use-rewrites=1 --elasticsearch-host=http://127.0.0.1 --elasticsearch-port=9200 --session-save=redis --session-save-redis-db=0 --session-save-redis-password=Your_Redis_Password --cache-backend=redis --cache-backend-redis-db=2 --cache-backend-redis-password=Your_Redis_Password --page-cache=redis --page-cache-redis-db=4 --page-cache-redis-password=Your_Redis_Password

Kurulum tamamlandığında bir mesaj alacaksınız

.......
[BAŞARILI]: Magento kurulumu tamamlandı.
[BAŞARILI]: Magento Yönetim URI'si: /admin_1tbbc0

1.6.8 Cron'u Ayarlayalım

php bin/magento cron:install

1.6.9 İzinleri Atayalım

chown -R www-data:www-data /var/www/domain.tld

1.7 php8.2-fpm Ayarlarını Değiştirelim

sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/fpm/php.ini
sed -i 's/max_execution_time = 30/max_execution_time = 180/' /etc/php/8.2/cli/php.ini
sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini
sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 25M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/post_max_size = 8M/post_max_size = 25M/g' /etc/php/8.2/fpm/php.ini
sed -i 's/zlib.output_compression = Off/zlib.output_compression = On/g' /etc/php/8.2/fpm/php.ini

systemctl restart php8.2-fpm

1.8 Ana nginx Konfigürasyon Dosyasına Göz Atalım:

nano /etc/nginx/conf.d/default.conf

upstream fastcgi_backend {
server unix:/run/php/php8.2-fpm.sock;
}

server {
# HTTP isteklerini HTTPS'ye yönlendir
listen 80;
listen [::]:80;
server_name magento.example.com;
return 301 https://$host$request_uri;
}

server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name magento.example.com;

set $MAGE_ROOT /var/www/domain.tld;
include /var/www/domain.tld/nginx.conf.sample;
client_max_body_size 25m;

access_log /var/log/nginx/magento.access.log;
error_log /var/log/nginx/magento.error.log;

# TLS yapılandırması
ssl_certificate /etc/ssl/domain_fullchain.pem;
ssl_certificate_key /etc/ssl/domain_privkey.pem;
ssl_trusted_certificate /etc/ssl/domain_chain.pem;
ssl_protocols TLSv1.2 TLSv1.3;

ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384';
ssl_prefer_server_ciphers on;
ssl_session_cache shared:SSL:50m;
ssl_session_timeout 1d;

# OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
# ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

Servisi yeniden başlatalım:

systemctl restart nginx

İşlem tamamlandı, artık https://magento.example.com adresine gidip uygulamayı test edebilirsiniz:

Yönetim paneli bağlantısını görmek için şu komutu kullanabilirsiniz:

php /var/www/magento/bin/magento info:adminuri

Kurulum tamamlandı. Aşağıda, uygulama komutları kullanılarak popüler sorunların çözümlerini bulabilirsiniz.

Varsayılan olarak, yönetim bölümü için e-posta üzerinden iki faktörlü kimlik doğrulama etkinleştirilmiştir; bunu devre dışı bırakmak için aşağıdaki komutları kullanın:

php /var/www/domain.tld/bin/magento module:disable Magento_AdminAdobeImsTwoFactorAuth
php /var/www/domain.tld/bin/magento module:disable Magento_TwoFactorAuth
php /var/www/domain.tld/bin/magento setup:di:compile
php /var/www/domain.tld/bin/magento c:c

Yapılandırılmış alan adını görmek için şu komutu kullanın:

bin/magento config:show web/secure/base_url

Alan adını değiştirmek için:

php bin/magento setup:store-config:set --base-url="http://new-domain.tld/"

ya da https için:

php bin/magento setup:store-config:set --base-url-secure="https://new-domain.tld/"

Eğer stil dosyaları doğru görüntülenmiyorsa, şu komutları kullanın:

cd /var/www/domain.tld
$ php bin/magento setup:static-content:deploy -f
$ php bin/magento indexer:reindex



No Comments Yet