Last updated on 28 Ocak 2021
Proxy_pass kullanmak, bir bağlantı noktasında çalıştırabileceğimiz herhangi bir hizmet için işe yarar, ancak bazen bir soket kullanmak isteriz. NGINX, hem FastCGI hem de uWSGI kablo protokolleri için trafiği nasıl proxy yapacağını bilir. Ardından, FastCGI kullanarak bir PHP uygulamasına (WordPress) proxy oluşturmayı öğreneceğiz, ancak önce LEMP (Linux, NGINX, MariaDB, PHP) yığınının geri kalanını kurmamız gerekiyor.
Documentation For This Video
Php-fpm Kurulumu
Not: İşletim sisteminize ve php-fpm’yi nasıl kurduğunuza bağlı olarak, bu komutlar ve paketler oldukça farklı olacaktır.
Varsayılan olarak yüklenecek olan PHP sürümü 5.5 sürümüdür, ancak önemli ölçüde daha hızlı olduğu için PHP 7’yi kullanmak istiyoruz. Bunu yum kullanarak kolayca kurmak için başka bir depo eklememiz gerekir; “Software Collections” deposu. Bu komut depoyu ekleyecektir:
[root] $ yum install -y centos-release-scl [root] $ yum update
Şimdi php-fpm paketini kurmamız gerekiyor (fpm “FastCGI Process Manager” dır). PHP için ihtiyacımız olanı kuralım.
[root] $ yum install -y rh-php71-php rh-php71-php-fpm rh-php71-php-mysqlnd
Buradan, /etc/opt/rh/rh-php71/php-fpm.d/www.conf adresinde php-fpm için yeni yapılandırma dosyasını değiştirerek PHP hizmetimizi yapılandırıp çalıştıracağız. Değişikliklerimiz, nginx kullanıcısının erişime sahip olmasını ve daha sonra proxy kurulumumuzda gereksiz ağ oluşumunu önlemek için bağlantı noktası yerine bir soket kullanmamızı sağlar:
/etc/opt/rh/rh-php71/php-fpm.d/www.conf (sadece farklı satırları değiştirin)
; Set user and group (RPM apache user choosen to provide access ve keep a group allowed to write in log dir satırlarında ki apache alanları) user = nginx group = nginx ; Set to listen on a socket instead of port. (this value is mandatory olarak tanımlanan alan) listen = /var/run/php-fpm.sock ; Set permissions on Unix socket. listen.owner = nginx listen.group = nginx listen.mode = 0660
Son olarak, php-fpm hizmetini başlatalım:
[root] $ systemctl start rh-php71-php-fpm [root] $ systemctl enable rh-php71-php-fpm
MariaDB’yi Ayarlama
Artık çalışan PHP’ye sahip olduğumuza göre, WordPress blogumuzun birlikte çalışabileceği veritabanını kurmamız gerekiyor. Birinci adım, MariaDB‘nin daha yeni bir sürümünü yüklemek için bir havuz oluşturmak olacaktır:
/etc/yum.repos.d/mariadb.repo
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Şimdi MariaDB istemcisini, sunucusunu ve geliştirme kitaplıklarını güncelleyip kuracağız:
[root] $ yum update [root] $ yum install -y MariaDB-server MariaDB-client MariaDB-devel MariaDB-shared [root] $ systemctl start mariadb [root] $ systemctl enable mariadb
Sunucu çalışırken, gerekli kullanıcı ve izinleri ayarlayalım:
[root] $ mysql_secure_installation ... Go through the process to set the root password, answer `Y` to all other questions. [root] $ mysql -u root -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 15 Server version: 10.2.13-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]> CREATE DATABASE wordpress; Query OK, 1 row affected (0.00 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON wordpress.* TO wpuser@localhost IDENTIFIED BY "p@ssw0rd"; Query OK, 0 rows affected (0.00 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.01 sec) MariaDB [(none)]> \q [root] $
Artık WordPress’i çalıştırmaya başladığımızda aşağıdaki bilgileri kullanabiliriz:
Veritabanı Adı: wordpress
Veritabanı Kullanıcısı: wpuser
Veritabanı Şifresi: p@ssw0rd
WordPress Kurulumu
Son kurulum parçamız WordPress’in kendisini kurmaktır. En yeni WordPress kaynak kodunu wordpress.org’dan indirip /var/www/blog.example.com’a tanımlayalım:
mkdir -p /var/www/test.example.com wget -q -O - http://wordpress.org/latest.tar.gz | tar -xzf - --strip 1 -C /var/www/test.example.com
Son değişikliğimiz, örneği kopyalayıp oradan özelleştirmeler yaparak wp-config.php dosyamızı kurmak olacaktır.
[root] $ cp /var/www/test.example.com/wp-config-sample.php /var/www/test.example.com/wp-config.php [root] $ chown -R nginx:nginx /var/www/test.example.com
Artık dosyayı yerel veritabanımızın değerlerine sahip olacak şekilde değiştirebiliriz:
/var/www/test.example.com/wp-config.php (partial)
define('DB_NAME', 'wordpress'); /** MySQL database username */ define('DB_USER', 'wpuser'); /** MySQL database password */ define('DB_PASSWORD', 'p@ssw0rd'); /** MySQL hostname */ define('DB_HOST', 'localhost');
Tanımlamamız gereken bazı salt değerleri de var, ancak buradan çıktıyı kopyalayarak bunları üretebiliriz.
PHP-FPM, MariaDB ve WordPress kurulduktan sonra, NGINX’i FastCGI trafiğine proxy oluşturacak şekilde yapılandırmaya hazırız.