Apache 2.4 + PHP-FPM + ProxyPassMatch


31

Gần đây tôi đã cài đặt Apache 2.4 trên máy cục bộ của mình, cùng với PHP 5.4.8 bằng PHP-FPM.

Mọi thứ diễn ra khá suôn sẻ (sau một thời gian ...) nhưng vẫn còn một lỗi lạ:

Tôi đã cấu hình Apache cho PHP-FPM như thế này:

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

Nó hoạt động, ví dụ nếu tôi gọi http://localhost/info.phptôi nhận được chính xác phpinfo()(nó chỉ là một tệp thử nghiệm).

Tuy nhiên, nếu tôi gọi một thư mục, tôi nhận được 404 với phần thân File not found.và trong nhật ký lỗi:

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

Cập nhật

Bây giờ tôi đã thử thực hiện ủy quyền với mod_rewrite:

<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>

Nhưng vấn đề là: nó luôn luôn chuyển hướng, bởi vì http://localhost/tự động http://localhost/index.phpđược yêu cầu, vì

DirectoryIndex index.php index.html

Cập nhật 2

Ok, vì vậy tôi nghĩ rằng "có thể kiểm tra xem có tệp nào để cung cấp cho proxy trước không:

<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>

Bây giờ việc viết lại hoàn toàn không hoạt động nữa ...

Cập nhật 3

Bây giờ tôi có giải pháp này:

<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>

Trước tiên, hãy kiểm tra xem có một tệp nào được chuyển đến PHP-FPM (với đường dẫn đầy đủtuyệt đối ) và sau đó thực hiện viết lại.

Điều này không hoạt động khi sử dụng viết lại URL bên trong thư mục con, nó cũng thất bại đối với các URL như http://localhost/index.php/test/ So trở lại hình vuông.


Có ý kiến ​​gì không?

Câu trả lời:


34

Sau nhiều giờ tìm kiếm và đọc tài liệu Apache, tôi đã tìm ra giải pháp cho phép sử dụng nhóm và cũng cho phép lệnh Rewrite trong .htaccess hoạt động ngay cả khi url chứa tệp .php.

<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>

Theo tài liệu của Apache, tham số proxy SetHandler yêu cầu Máy chủ HTTP HTTP 2.4.10.

Tôi hy vọng rằng giải pháp này sẽ giúp bạn quá.


2
Đây chắc chắn là câu trả lời cho năm 2015, mọi thứ khác ở đây đều tào lao cho một thiết lập hiện đại (Giả sử là debian ổn định)
Dmitri DB

1
Tôi đã đập đầu vào tường về vấn đề tương tự trong một thời gian khá lâu và tôi có một thiết lập cực kỳ giống như của bạn. Bạn có vui lòng gửi chỉ thị .htaccess Rewrite của bạn không? Từ những gì tôi hiểu, mọi thứ trong câu trả lời này chỉ là những gì bạn có trong tệp httpd.d / site.conf của bạn.
David W

1
Hiện tại, việc sử dụng RewriteRule này có vẻ khá nguy hiểm vì nó có thể hiển thị config.php các tệp đơn giản nếu chúng nằm trong các thư mục Bí danh và do đó không tồn tại trong% {DOCUMENT_ROOT} /% {REQUEST_URI}.
Zulakis

1
9 dòng mã tuyệt vời. Đây là chén thánh và là thứ duy nhất hoạt động 100% với tôi. Chỉ là một sidenote: Nếu bạn đang chuyển đổi từ một giải pháp bằng LocationMatch, bạn không cần phải thêm đường dẫn tệp tuyệt đối vào url fcgi. Bật proxy và viết lại đăng nhập trong apache để xem ra điều này.
Phil

1
+1 vì bài đăng này không giống như mọi tài nguyên khác mà tôi đã xem đã giúp tôi hiểu "chuỗi tên miền duy nhất" được cho là gì.
ba giờ

10

Tôi cũng gặp phải vấn đề này ngày hôm qua - Apache 2.4 đã chuyển từ Debian / thử nghiệm sang Debian / không ổn định buộc tôi phải xử lý công cụ mới này; tất nhiên không phải trên các máy chủ sản xuất của chúng tôi;).

Sau khi đọc những gì cảm thấy như hàng triệu trang web, tài liệu Apache, báo cáo lỗi và đầu ra gỡ lỗi trong nhật ký lỗi, cuối cùng tôi đã làm cho nó hoạt động. Không, không có hỗ trợ cho FPM với ổ cắm . Cấu hình Debian mặc định đã sử dụng socket một thời gian rồi, vì vậy người dùng Debian cũng sẽ phải thay đổi điều đó.

Đây là những gì hoạt động cho một trang web CakePHP và PHPMyAdmin (cái sau cần một số cấu hình nếu bạn đang sử dụng các gói Debian), vì vậy tôi có thể xác nhận rằng nó mod_rewritevẫn hoạt động như mong đợi để viết lại URL ưa thích.

Lưu ý DirectoryIndex index.php, đó có thể là lý do không có cấu hình nào của bạn hoạt động cho "thư mục" (ít nhất đó là những gì không hoạt động ở đây).

Tôi vẫn nhận được File not found.các thư mục, nhưng chỉ khi không có tệp chỉ mục thì nó mới có thể phân tích cú pháp. Cũng muốn thoát khỏi điều đó, nhưng nó không quá quan trọng như bây giờ.


<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>

Các vhost trên hoạt động hoàn toàn tốt với một .htaccess trong thư mục gốc như thế này:

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

Tôi hoàn toàn không hiểu ý bạn là gì URL rewriting inside a subdirectory(tôi chỉ viết lại vào tệp index.php của root).


(Ồ, và bạn sẽ phải đảm bảo Xdebug không xung đột với FPM trên hệ thống của bạn, ngoài hộp họ muốn sử dụng cùng một cổng.)


Đây là một giải pháp tốt nhưng thật không may, cách tiếp cận này không hoạt động khi các url chứa .php cần phải được viết lại, ví dụ như cho multisite WordPress. /ms_blog_1/wp-admin/load-scripts.php?blah=blah
Phil

Đối với tôi, chỉ cần thêm một ghi đè DirectoryIndex index.htmltrong vhost trong câu hỏi đã sửa nó. Nếu tôi có DirectoryIndex index.php, thì có vẻ như các tệp PHP khác cuối cùng đưa ra lỗi 'Không tìm thấy tệp' và 'Không biết tập lệnh chính'. Trong trường hợp của tôi, tôi có một index.htmltập tin php test.php.
geummingguy

4

Tất cả bạn cần làm là thiết lập:

 ProxyErrorOverride on

Và đừng quên thiết lập trang khách hàng bằng cách:

ErrorDocument 404 /path/to/error_page_file    

2

Đây là những gì tôi đã có. Nó có vẻ hoạt động tốt. Tôi đặt Drupal trong thư mục con và nó viết lại hoạt động, các chỉ mục thư mục hoạt động và PATH_INFO hoạt động.

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

Tôi đã cố gắng làm một cái gì đó như thế này mà không cần viết lại ("Nếu" và như vậy), nhưng tôi không thể làm gì được.

EDIT: Lưu ý rằng nếu bạn thực hiện điều này như một nhà cung cấp dịch vụ lưu trữ được chia sẻ, đây có thể là một vấn đề bảo mật. Nó sẽ cho phép người dùng chuyển các tập lệnh PHP sang một proxy fcgi tùy ý. Nếu bạn có một nhóm riêng biệt cho mọi người dùng, điều đó sẽ cho phép nâng cao các cuộc tấn công đặc quyền.


2

Một giải pháp khác (yêu cầu Apache> = 2.4.10) - Bên trong vhost:

# 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>

Vì vậy, ở đây, trình xử lý fcgi cho PHP sẽ chỉ được đặt nếu tệp tồn tại và nếu tên của nó khớp với phần mở rộng tệp PHP.

BTW: Đối với những người có ý tưởng đặt ProxyErrorOverride thành On , hãy lưu ý rằng đây thực sự là một ý tưởng tồi. Việc sử dụng chỉ thị này không phải là không gây ra bất kỳ vấn đề. Chẳng hạn, bất kỳ ứng dụng PHP nào gửi mã HTTP như 503 sẽ dẫn đến kết quả không mong muốn. Trình xử lý lỗi mặc định sẽ liên quan đến mọi trường hợp và đối với các ứng dụng PHP cung cấp API, đó thực sự là một hành vi xấu.


Thật không may, vẫn có lỗi "AH01071: Có lỗi 'Không biết tập lệnh chính \ n'" khi sử dụng giải pháp này.
klor

1

Cách tốt nhất để giải quyết vấn đề này là bật nhật ký gỡ lỗi cho mod_proxy và mod_rewrite và php-fpm. Trong apache 2.4, bây giờ bạn có thể bật nhật ký gỡ lỗi cho các mô-đun cụ thể. http://httpd.apache.org/docs/civerse/mod/core.html#loglevel Cấu hình mỗi mô-đun và mỗi thư mục có sẵn trong Apache HTTP Server 2.3.6 trở lên

Có lẽ bạn đang nhận được một dấu gạch chéo kép trên các thư mục?

Đây là những gì tôi sử dụng và nó hoạt động tốt:

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

1

Một điều tôi gặp phải khi xử lý vấn đề này, đó là nếu bạn sử dụng kết hợp:

chroot = /path/to/site
chdir = /

Trong cấu hình nhóm fpm của bạn, không chuyển đường dẫn đầy đủ đến lệnh ProxyPass.

ProxyPass fcgi://127.0.0.1:9020/$1

Nhưng -ONLY- nếu hồ bơi trên cổng đó bị chro.


1

Tôi không chắc vấn đề có liên quan hay không, nhưng tôi đã tìm thấy một giải pháp làm việc một phần ở đây:

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

Các mẹo dường như được thêm một? char trong .htaccess RewriteRule, ví dụ: sử dụng:

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

thay vì:

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

Nguồn gốc của vấn đề dường như là một sự thay đổi trong mod_rewrite của Apache 2.4.25. Tôi đã sử dụng cấp nhật ký theo dõi Apache1 để quan sát "vòng lặp" chuyển $ 1 đến php-fpm sau khi index.php / $ 1 được thông qua. $ 1 tạo ra lỗi "AH01071: Có lỗi 'Không biết tập lệnh chính \ n'".

Hy vọng miếng ngon nhỏ này giúp ai đó giải quyết vấn đề của họ.



0

tôi cũng có lỗi sau khi chuyển sang php-fpm + apache 2.4.6 cho các trường hợp drupal

nhưng tôi đang sử dụng mod sự kiện mpm

chỉ cần chèn

DirectoryIndex index.php làm việc cho tôi

sau đó cài đặt Vhost của tôi trông như dưới đây

<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>

cảm ơn

không cần sửa lại tệp .htaccess mặc định của drupal


[Thứ tư ngày 25 tháng 4 01: 41: 31.526781 2018] [proxy_fcgi: error] [pid 2012: tid 140181155772160] (70007) Thời gian chờ đã chỉ định đã hết hạn: [máy khách 127.0.0.1:60308] www / admin / báo cáo
niêm phong

0

Tôi phải đối mặt với những vấn đề tương tự trên máy chủ của mình (docker centos 7.3.16). Sau khi theo dõi nhật ký php-fpm, tôi thấy bỏ lỡ một sys lib. WARNING: [pool www] child 15081 said into stderr: "php-fpm: pool www: symbol lookup error: /lib64/libnsssysinit.so: undefined symbol: PR_GetEnvSecure" Sau đó, tôi đặt lại nspr, nó hoạt động. Nếu bạn không thể tìm thấy các giải pháp sau khi thử bất kỳ phương pháp nào, bạn có thể thử phương pháp này. yum -y install/reinstall nspr


0

Điều này hoạt động với Wordpress 5.1.1 và mới hơn cùng với PHP 7.3, FastCGI, proxy, cũng là MariaDB / MySQL. Đã kiểm tra hai lần trên máy chủ của tôi. Hoạt động như một lá bùa.

Đầu tiên trên CentOS / Fedora / Red Hat

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

Chỉnh sửa tập tin này:

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

Dán cái này:

[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

Nên cho srw-rw-rw-.

Hoặc cách thiết lập trên Debian / Ubuntu

Hướng dẫn:

nguồn: https://emi.is/?page=articles&article=php-7-installation-and-configuration-for-apache-2.4-USE-php-fpm-(debian,-reposeective)


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)

Vấn đề là php 7.3 từ Ondrej repo chỉ hoạt động với chế độ mpm_prefork. Anh ta có git repo, vì vậy bạn có thể tìm thấy anh ta trên mạng và hỏi anh ta, anh ta sẽ tạo php 7.3 cho mpm_worker và mpm_event. Phần còn lại của cấu hình cho các bản phân phối gia đình Debian bên dưới:


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

dán


[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

dán


[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

dán


[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

sao chép này vào tập tin txt:

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

loại bỏ nó và sau đó dán này thay vì ở trên:

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

Thêm chỉ thị

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>

Sau đó kích hoạt trang web:

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

Chỉnh sửa trang web SSL tiếp theo (Trong trường hợp này certbot từ Let Encrypt đã được cài đặt và định cấu hình trước đó khi bắt đầu cấu hình chứng chỉ SSL).

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

Nhớ thêm cổng 9000 vào tường lửa trên Debian / Ubuntu

sudo ufw allow 9000/tcp
sudo ufw status

Trên CentoOS / Fedora / Mũ đỏ

sudo firewall-cmd --zone=public --add-port=9000/tcp --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
sudo firewall-cmd --state 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.