Apache 2.4 + PHP-FPM + ProxyPassMatch


31

Yakın zamanda yerel makineme PHP 5.4.8 ile birlikte PHP-FPM kullanarak Apache 2.4 yükledim.

Her şey sorunsuz geçti (bir süre sonra ...) ama hala garip bir hata var:

Apache'yi PHP-FPM için şöyle yapılandırdım:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/Users/apfelbox/WebServer"
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/apfelbox/WebServer/$1
</VirtualHost>

Çalışır, örneğin ben ararsam http://localhost/info.phpdoğru elde edersem phpinfo()(sadece bir test dosyasıdır).

Bununla birlikte bir dizini ararsam, gövdeli File not found.ve hata günlüğünde bir 404 elde ederim :

[Tue Nov 20 21:27:25.191625 2012] [proxy_fcgi:error] [pid 28997] [client ::1:57204] AH01071: Got error 'Primary script unknown\n'

Güncelleştirme

Şimdi mod_rewrite ile proxy işlemi yapmaya çalıştım:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/Users/apfelbox/WebServer"

    RewriteEngine on    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/apfelbox/WebServer/$1 [L,P]
</VirtualHost>

Ancak sorun şudur: çünkü her zaman yönlendiricidir, çünkü http://localhost/otomatik http://localhost/index.phpolarak istenir, çünkü

DirectoryIndex index.php index.html

Güncelleme 2

Tamam, bence "önce proxy'ye verecek bir dosya olup olmadığını kontrol et:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/Users/apfelbox/WebServer"

    RewriteEngine on    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/apfelbox/WebServer/$1 [L,P]
</VirtualHost>

Artık yeniden yazma artık çalışmıyor ...

Güncelleme 3

Şimdi bu çözüme sahibim:

<VirtualHost *:80>
    ServerName localhost
    DocumentRoot "/Users/apfelbox/WebServer"

    RewriteEngine on    
    RewriteCond /Users/apfelbox/WebServer/%{REQUEST_FILENAME} -f
    RewriteRule ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/Users/apfelbox/WebServer/$1 [L,P]
</VirtualHost>

Öncelikle, PHP-FPM'ye ( tam ve mutlak yol ile) iletilecek bir dosya olup olmadığını kontrol edin ve ardından yeniden yazmayı yapın.

Bu, bir alt dizinde URL yeniden yazma kullanıldığında işe yaramaz, http://localhost/index.php/test/ So kare gibi URL'ler için de başarısız olur .


Herhangi bir fikir?

Yanıtlar:


34

Apache belgelerini aradıktan ve okuduktan sonra, havuzu kullanmaya izin veren bir çözüm buldum ve ayrıca .htaccess'deki Rewrite yönergesinin .lp.

<VirtualHost ...>

 ...

 # This is to forward all PHP to php-fpm.
 <FilesMatch \.php$>
   SetHandler "proxy:unix:/path/to/socket.sock|fcgi://unique-domain-name-string/"
 </FilesMatch>

 # Set some proxy properties (the string "unique-domain-name-string" should match
 # the one set in the FilesMatch directive.
 <Proxy fcgi://unique-domain-name-string>
   ProxySet connectiontimeout=5 timeout=240
 </Proxy>

 # If the php file doesn't exist, disable the proxy handler.
 # This will allow .htaccess rewrite rules to work and 
 # the client will see the default 404 page of Apache
 RewriteCond %{REQUEST_FILENAME} \.php$
 RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_URI} !-f
 RewriteRule (.*) - [H=text/html]

</VirtualHost>

Apache belgelerine göre, SetHandler proxy parametresi Apache HTTP Sunucusu 2.4.10 gerektirir.

Umarım bu çözüm size de yardımcı olur.


2
Bu kesinlikle 2015 yılı için cevap, burada her şey modern bir kurulum için saçmalık (en debian istikrarlı diyelim)
Dmitri DB

1
Kafamı bir süredir aynı sorunla duvara karşı çarpıyordum ve seninkiyle çok benzer bir kurulumum var. Lütfen .htaccess Rewrite yönergelerinizi gönderir misiniz? Anladığım kadarıyla, bu cevabın içindeki her şey sadece httpd.d / site.conf dosyanızdakidir.
David W

1
Şu anda bu RewriteRule'u kullanmak, config.php Dosyaları Aliased dizinleri içindeyse ve bu nedenle% {DOCUMENT_ROOT} /% {REQUEST_URI} içinde mevcut değilse dosyaları düz olarak gösterebileceği için oldukça tehlikeli görünüyor .
Zulakis

1
Şaşırtıcı 9 kod satırı. Bu kutsal kase ve benim için% 100 işe yarayan tek şey. Sadece bir yazı tipi: LocationMatch kullanarak bir çözümden geçiş yapıyorsanız, mutlak dosya yolunu fcgi url'sine eklemeniz gerekmez. Proxy'yi açın ve buna dikkat etmek için apache'de oturum açmayı yeniden yazın.
Phil

1
+ 1 çünkü bu yazı, gördüğüm diğer tüm kaynaklardan farklı olarak, "benzersiz etki alanı adı dizgesinin" neyi temsil etmesi gerektiğini anlamamda bana yardımcı oldu.
threeve

10

Ben de bu sorunu dün koştu - Apache 2.4 dışına Debian / deneysel içine Debian / kararsız bu yeni şeylerle uğraşmak zorluyor; elbette üretim sunucularımızda değil;).

Milyonlarca sitenin nasıl hissettirdiğini okuduktan sonra, Apache dokümanları, hata raporları ve hata günlüğündeki hata ayıklama çıktısı nihayet çalışmaya başladı. Hayır, henüz soketli FPM desteği yoktur . Varsayılan Debian yapılandırması bir süredir soketleri kullanıyor, bu nedenle Debian kullanıcılarının da bunu değiştirmesi gerekecek.

İşte CakePHP sitesi ve PHPMyAdmin için ne işe yarıyor mod_rewrite?

Dikkat edin DirectoryIndex index.php, bu, yapılandırmalarınızın hiçbirinin "klasörler" için çalışmamasının nedeni olabilir (en azından burada işe yaramadı).

File not found.Dizinler için hala alıyorum , ancak yalnızca dizin dosyası yoksa, ayrıştırır. Ondan da kurtulmak isterdim ama şu an için o kadar da önemli değil.


<VirtualHost *:80>
    ServerName site.localhost

    DocumentRoot /your/site/webroot
    <Directory />
            Options FollowSymlinks
            DirectoryIndex index.php
            AllowOverride All
            Require all granted
    </Directory>

    <LocationMatch "^(.*\.php)$">
            ProxyPass fcgi://127.0.0.1:9000/your/site/webroot
    </LocationMatch>

    LogLevel debug
    ErrorLog /your/site/logs/error.log
    CustomLog /your/site/logs/access.log combined
</VirtualHost>

Yukarıdaki vhost kökündeki bir .htaccess ile mükemmel çalışır:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>

Ne demek istediğini anlamadım URL rewriting inside a subdirectoryama (sadece root'un index.php'sini yeniden yazıyorum).


(Oh, ve Xdebug'un sisteminizde FPM ile çakışmadığından emin olmalısınız, aynı portları kullanmak istiyorlar.)


Bu iyi bir çözümdür, fakat ne yazık ki bu yaklaşım .php içeren URL'lerin yeniden yazılması gerektiğinde, örneğin WordPress multisite için işe yaramaz. /ms_blog_1/wp-admin/load-scripts.php?blah=blah
Phil

Benim için, sadece DirectoryIndex index.htmlsöz konusu vhost'a geçersiz kılma eklemek sorunu çözdü. Eğer varsa DirectoryIndex index.php, o zaman diğer PHP dosyaları 'Dosya bulunamadı' ve 'Birincil komut dosyası bilinmiyor' hatası vererek bitiyor. Benim durumumda index.htmlbir php dosyam var test.php.
geerlingguy

4

Yapmanız gereken tek şey ayarlamak için:

 ProxyErrorOverride on

Müşteri sayfasını şu şekilde ayarlamayı unutmayın:

ErrorDocument 404 /path/to/error_page_file    

2

Elimde bu var. Tamam çalışıyor gibi görünüyor. Drupal'ı bir alt dizine koydum ve yeniden yazılmış çalışması, dizin dizinleri ve PATH_INFO işleri.

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} ^/((.*\.php)(/.*)?)$
RewriteCond %2 -f
RewriteRule . fcgi://127.0.0.1:9000/%1 [L,P]
RewriteOptions Inherit

Yeniden yazmadan böyle bir şey yapmaya çalıştım ("If" ve benzeri), ancak çalışmak için hiçbir şey bulamadım.

EDIT: Bunu paylaşılan bir barındırma sağlayıcısı olarak uygularsanız, bunun bir güvenlik sorunu olabileceğini unutmayın. Kullanıcıların PHP betiklerini keyfi bir fcgi proxy'sine aktarmalarına izin verir. Her kullanıcı için ayrı bir havuzunuz varsa, bu ayrıcalık saldırılarının artmasına izin verir.


2

Yine başka bir çözüm (Apache gerektirir> = 2.4.10) - Vhost'un içinde:

# define worker
<Proxy "unix:/var/run/php5-fpm-wp.bbox.nuxwin.com.sock|fcgi://domain.tld" retry=0>
    ProxySet connectiontimeout=5 timeout=7200
</Proxy>

<If "%{REQUEST_FILENAME} =~ /\.php$/ && -f %{REQUEST_FILENAME}">
    SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
    SetHandler proxy:fcgi://domain.tld
</If>

Böylece burada, PHP için fcgi işleyicisi yalnızca dosya varsa ve adı PHP dosya uzantısıyla eşleşiyorsa ayarlanır.

BTW: ayarlamak için bir fikir olurdu olanlar için ProxyErrorOverride için Açık , bu gerçekten kötü bir fikir olduğunu unutmayın. Bu direktifin kullanımı herhangi bir soruna neden olmadan değildir. Örneğin, 503 gibi bir HTTP kodu gönderen herhangi bir PHP uygulaması beklenmeyen sonuçlara yol açacaktır. Varsayılan hata işleyicisi her durumda ve API sağlayan PHP uygulamaları için söz konusu olabilir, bu gerçekten kötü bir davranış.


Maalesef, bu çözümü kullanarak hala "AH01071: Hatalı 'Birincil komut dosyası bilinmiyor \ n'" hatası aldı.
klor

1

Bunu çözmenin en iyi yolu mod_proxy ve mod_rewrite ve php-fpm için hata ayıklama günlüklerini açmaktır. Apache 2.4’te artık yalnızca belirli modüller için hata ayıklama günlüklerini açabilirsiniz. http://httpd.apache.org/docs/current/mod/core.html#loglevel Modül başına ve dizin başına yapılandırma Apache HTTP Sunucusu 2.3.6 ve sonrasında mevcuttur.

Belki de dizinlerde çift eğik çizgi oluyorsunuzdur?

İşte ne kullanıyorum ve iyi çalışıyor:

<LocationMatch ^(.*\.php)$>
  ProxyPass fcgi://127.0.0.1:9000/home/DOMAINUSER/public_html$1
</LocationMatch>

1

Bu sorunla uğraşırken karşılaştığım tek şey, eğer kombinasyonunu kullanırsanız:

chroot = /path/to/site
chdir = /

Fpm havuzu yapılandırmanızda, ProxyPassyönergenin tam yolunu geçmeyin .

ProxyPass fcgi://127.0.0.1:9020/$1

Ancak - SADECE - eğer o limanda bulunan havuz krokisi varsa


1

Sorunun ilgili olup olmadığından emin değilim, ancak burada kısmi çalışan bir çözüm buldum:

https://stackoverflow.com/questions/44054617/mod-rewrite-in-2-4-25-triggering-fcgi-primary-script-unknown-error-in-php-fpm

Hile bir ekliyor gibi görünüyor? .htaccess RewriteRule içindeki karakter, örneğin:

RewriteRule ^(.*)$ index.php?/$1 [L,NS]

yerine:

RewriteRule ^(.*)$ index.php/$1 [L,NS]

Sorunun kaynağı Apache 2.4.25'in mod_rewrite değerindeki bir değişiklik gibi görünüyor. İndex.php / $ 1 geçtikten sonra $ 1'den php-fpm'ye geçen bir "döngü" gözlemlemek için Apache izleme1 günlük düzeyini kullandım. $ 1 "AH01071: 'Birincil komut dosyası bilinmiyor \ n' hatası var" hatası verdi.

Umarım bu küçük haberleşme birisinin problemlerini çözmesine yardım eder.



0

Ayrıca drupal örnekler için php-fpm + apache 2.4.6'ya geçtikten sonra da hatayım

ama mpm olay modunu kullanıyorum

sadece ekle

DirectoryIndex index.php benim için çalışıyor

sonra Vhost ayarlarım aşağıdaki gibi görünüyor

<VirtualHost *:8080>
  ServerAdmin webmaster@localhost
  ServerName sever.com
  DocumentRoot /var/www/html/webroot
    ErrorLog logs/web-error_log
    CustomLog logs/web-access_log common
<IfModule mpm_event_module>
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/webroot/$1
</IfModule>
  <Directory /var/www/html/webroot>
     Options FollowSymlinks
     DirectoryIndex index.php
     AllowOverride All
     Require all granted
  </Directory>
</VirtualHost>

Teşekkürler

drupal'ın varsayılan .htaccess dosyasını revize etmeye gerek yok


[Çar 25 Nisan 01: 41: 31.526781 2018] [proxy_fcgi: error] [pid 2012: teklif 140181155772160] (70007) Belirtilen zaman aşımı süresi doldu: [müşteri 127.0.0.1:60308] AH01075: Gönderme hatası: istek, başvuru: www / admin / report
sealionking

0

Sunucumda da aynı sorunları yaşıyorum (centos 7.3.16 liman işçisi). Php-fpm günlüğünü izledikten sonra, bir sys lib özledim buldum. WARNING: [pool www] child 15081 said into stderr: "php-fpm: pool www: symbol lookup error: /lib64/libnsssysinit.so: undefined symbol: PR_GetEnvSecure" daha sonra, nspr'yi yeniden yapıyorum, işe yarıyor. Herhangi bir yöntemi denedikten sonra çözümleri bulamazsanız, bunu deneyebilirsiniz. yum -y install/reinstall nspr


0

Bu, Wordpress 5.1.1 ve PHP 7.3, FastCGI, proxy ve ayrıca MariaDB / MySQL ile birlikte daha yeni sürümlerle çalışır. Sunucularımda iki kez kontrol ettim. ÇALIŞIYOR bir cazibe gibi.

CentOS'ta ilk / Fedora / Kırmızı Şapka

sudo yum remove php*
sudo yum --enablerepo=extras install epel-release
sudo yum install php-fpm php-mysql php-gd php-imap php-mbstring 
sudo grep -E '(proxy.so|fcgi)' /etc/httpd/conf.modules.d/00-proxy.conf
sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak

Bu dosyayı düzenle:

sudo nano /etc/php-fpm.d/www.conf

Bunu yapıştır:

[www]

; The address on which to accept FastCGI requests.
; Valid syntaxes are:
;   'ip.add.re.ss:port'    - to listen on a TCP socket to a specific address on
;                            a specific port;
;   'port'                 - to listen on a TCP socket to all addresses on a
;                            specific port;
;   '/path/to/unix/socket' - to listen on a unix socket.
; Note: This value is mandatory.
listen = 127.0.0.1:9000
listen = /run/php-fcgi.sock

sudo ll /run/php-fcgi.sock

Srw-rw-rw- verilmelidir.

Veya Debian / Ubuntu’da nasıl kurulur

öğretici:

kaynak: https://emi.is/?page=articles&article=php-7-installation-and-configuration-for-apache-2.4-using-php-fpm-(debian,-repository)


sudo apt purge 'php*' or sudo apt-get purge 'php*'
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt install php7.3 php7.3-fpm php-mysql php-mbstring php-gd php-imap libapache2-mod-security2 modsecurity-crs
systemctl status php7.3-fpm
systemctl stop php7.3-fpm.service

sudo a2dismod php7.0 php7.1 php7.2 mpm_event mpm_worker
sudo a2enmod mpm_prefork
sudo a2enmod php7.3
sudo systemctl restart apache2 (httpd in CentOS)

Sorun Ondrej repo php 7.3 sadece mpm_prefork modu ile çalışmasıdır. Git deposu var, onu net olarak bulabilir ve sorabilirsiniz, mpm_worker ve mpm_event için 7.3. Debian ailesi dağıtımları için konfigürasyonun geri kalan kısmı aşağıdadır:


sudo apt --assume-yes install php7.3-fpm
sudo systemctl stop php7.3-fpm.service
sudo rm /var/log/php7.0-fpm.log
sudo mkdir /var/log/php7.3-fpm/
sudo touch /var/log/php7.3-fpm/error.log
sudo mkdir /var/log/php7.3/
sudo touch /var/log/php7.3/error.log
sudo mkdir /var/tmp/php7.3/
sudo > /etc/php/7.3/fpm/php.ini
sudo > /etc/php/7.3/fpm/php-fpm.conf
sudo rm /etc/php/7.3/fpm/pool.d/www.conf
sudo touch /etc/php/7.3/fpm/pool.d/example.com.conf
sudo useradd --comment "PHP" --shell "/usr/sbin/nologin" --system --user-group php

sudo nano /etc/php/7.3/fpm/php.ini

yapıştırmak


[PHP]
date.timezone = Europe/Prague
display_errors = Off
error_log = /var/log/php7.3/error.log
error_reporting = 32767
log_errors = On
register_argc_argv = Off
session.gc_probability = 0
short_open_tag = Off
upload_tmp_dir = /var/tmp/php7.3/

sudo nano /etc/php/7.3/fpm/php-fpm.conf

yapıştırmak


[global]
error_log = /var/log/php7.3-fpm/error.log
include = /etc/php/7.3/fpm/pool.d/*.conf

sudo nano /etc/php/7.3/fpm/pool.d/example.com.conf

yapıştırmak


[example.com]
group = php
listen = 127.0.0.1:9000
pm = ondemand
pm.max_children = 5
pm.max_requests = 200
pm.process_idle_timeout = 10s
user = php

sudo nano /etc/logrotate.d/php7.3-fpm

bunu txt dosyasına kopyala:

/var/log/php7.3-fpm.log {
    rotate 12
    weekly
    missingok
    notifempty
    compress
    delaycompress
    postrotate
            /usr/lib/php/php7.3-fpm-reopenlogs
    endscript
}

çıkarın ve sonra bunu yukarıdaki yerine yapıştırın:

/var/log/php7.3/*.log /var/log/php7.3-fpm/*.log
{
copytruncate
maxage 365
missingok
monthly
notifempty
rotate 12
}

Yönerge ekle

sudo nano /etc/apache2/sites-available/example.com.conf


<VirtualHost *:80>
    ServerName www.example.com
    ServerAlias example.com
    ServerAdmin admin@example.com
    DocumentRoot /var/www/html/example.com/public_html
    DirectoryIndex index.php index.htm index.html index.xht index.xhtml
    LogLevel info warn
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <FilesMatch "^\.ht">
    Require all denied
    </FilesMatch>

    <files readme.html>
    order allow,deny
    deny from all
    </files>

    RewriteEngine on
    RewriteCond %{SERVER_NAME} =example.com
    RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
    ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9000/var/www/html/example.com/public_html

    <Directory /var/www/html/example.com/public_html>
        Options Indexes FollowSymLinks Includes IncludesNOEXEC SymLinksIfOwnerMatch
        AllowOverride None
    </Directory>
</VirtualHost>

Ardından siteyi etkinleştirin:

sudo a2ensite /etc/apache2/sites-available/example.com.conf

Bir sonraki SSL sitesini düzenle (Bu durumda, Let's Encrypt firmasının sertifika yetkilisi, daha önce SSL sertifika yapılandırmasının başlangıcında kurulmuş ve yapılandırılmıştır).

sudo nano /etc/apache2/sites-available/example.com-le-ssl.conf

<IfModule mod_ssl.c>
    #headers for security man in the middle attack find how to enable this mod in Google
    LoadModule headers_module modules/mod_headers.so
    <VirtualHost *:443>
        Header always set Strict-Transport-Security "max-age=15768000"
        SSLEngine On
        ServerName example.com
        ServerAdmin admin@example.com
        DocumentRoot /var/www/html/example.com/public_html
        <Directory /var/www/html/example.com/public_html>
        Options Indexes FollowSymLinks Includes IncludesNOEXEC SymLinksIfOwnerMatch
        AllowOverride All
        Require all granted
        DirectoryIndex index.php
        RewriteEngine On
         <FilesMatch ^/(.*\.php(/.*)?)$>
           SetHandler "fcgi://example.com:9000/var/www/html/example.com/public_html"
          </FilesMatch>
        </Directory>
    # Log file locations
    #LogLevel info ssl:warn
    LogLevel debug
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    # modern configuration
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
    #SSLCipherSuite HIGH:!aNULL:!MD5
    SSLCipherSuite ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM$
    SSLHonorCipherOrder on
    SSLCompression off
    SSLSessionTickets off

    <FilesMatch "^\.ht">
    Require all denied
    </FilesMatch>

    <files readme.html>
       order allow,deny
       deny from all
    </files>

</VirtualHost>
    #Stapling OCSP for Let's Encrypt certs.
    SSLUseStapling          on
    SSLStaplingResponderTimeout     5
    SSLStaplingReturnResponderErrors        off
    SSLStaplingCache        shmcb:/var/run/ocsp(128000)
</IfModule>

sudo a2enmod proxy proxy_fcgi setenvif
sudo systemctl reload apache2.service
sudo chown --recursive root:adm /etc/php/
sudo chmod --recursive 0770 /etc/php/
sudo chown --recursive php:adm /var/log/php7.3/
sudo chown --recursive php:adm /var/log/php7.3-fpm/
sudo chmod --recursive 0770 /var/log/php7.3/
sudo chmod --recursive 0770 /var/log/php7.3-fpm/
sudo chown --recursive php:php /var/tmp/php7.3/
sudo chmod --recursive 0770 /var/tmp/php7.3/
sudo a2enconf php7.3-fpm
sudo systemctl enable php7.3-fpm.service
sudo systemctl start php7.3-fpm.service

Debian / Ubuntu'daki bir güvenlik duvarına 9000 bağlantı noktası eklemeyi unutmayın

sudo ufw allow 9000/tcp
sudo ufw status

CentoOS'ta / Fedora / Kırmızı Şapka

sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
sudo firewall-cmd --state 
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.