Cấu hình apache để chạy php

Tuy nhiên, khi chạy ứng dụng trong môi trường sản xuất, bạn sẽ cần sử dụng máy chủ web đầy đủ tính năng. Bài viết này mô tả một số cách sử dụng Symfony với Apache hoặc Nginx

Khi sử dụng Apache, bạn có thể định cấu hình PHP dưới dạng mô-đun Apache hoặc với FastCGI bằng PHP FPM. FastCGI cũng là cách ưa thích để sử dụng PHP với Nginx

Thư mục công khai

Thư mục chung là nơi chứa tất cả các tệp tĩnh và công khai của ứng dụng của bạn, bao gồm hình ảnh, biểu định kiểu và tệp JavaScript. Nó cũng là nơi điều khiển phía trước (

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
4) sống

Thư mục chung đóng vai trò là gốc tài liệu khi định cấu hình máy chủ web của bạn. Trong các ví dụ bên dưới, thư mục

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
5 sẽ là thư mục gốc của tài liệu. Thư mục này là
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
6

Nếu nhà cung cấp dịch vụ lưu trữ của bạn yêu cầu bạn thay đổi thư mục

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
5 sang một vị trí khác (e. g.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
8) đảm bảo rằng bạn ghi đè lên vị trí của thư mục công cộng/

Thêm quy tắc viết lại

Cách dễ nhất là cài đặt gói

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
9 Symfony bằng cách thực hiện lệnh sau

1
$ composer require symfony/apache-pack

Gói này cài đặt một tệp


    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
0 trong thư mục
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
5 chứa các quy tắc viết lại cần thiết để phục vụ ứng dụng Symfony

Trong các máy chủ sản xuất, bạn nên di chuyển các quy tắc


    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
0 vào tệp cấu hình chính của Apache để cải thiện hiệu suất. Để làm như vậy, hãy sao chép nội dung

    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
0 bên trong cấu hình

    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
4 được liên kết với thư mục
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
5 của ứng dụng Symfony (và thay thế

    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
6 bằng

    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
7)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
6
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
7

Apache với mod_php/PHP-CGI

Cấu hình tối thiểu để ứng dụng của bạn chạy trên Apache là

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined

Mẹo

Nếu hệ thống của bạn hỗ trợ biến


    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
8, bạn có thể muốn sử dụng

    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
9 thay vì mã hóa cứng
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
20

Sử dụng cấu hình được tối ưu hóa sau để tắt hỗ trợ


    ServerName domain.tld
    ServerAlias www.domain.tld

    DocumentRoot /var/www/project/public
    
        AllowOverride All
        Order Allow,Deny
        Allow from All
    

    # uncomment the following lines if you install assets as symlinks
    # or run into problems when compiling LESS/Sass/CoffeeScript assets
    # 
    #     Options FollowSymlinks
    # 

    ErrorLog /var/log/apache2/project_error.log
    CustomLog /var/log/apache2/project_access.log combined
0 và tăng hiệu suất máy chủ web

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2____25

thận trọng

Sử dụng

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
22 trên Apache 2. 4. 25 trở lên, do một lỗi đã được sửa trên bản phát hành đó khiến gốc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
23 bị treo

Mẹo

Nếu bạn đang sử dụng php-cgi, theo mặc định, Apache sẽ không chuyển tên người dùng và mật khẩu cơ bản HTTP cho PHP. Để khắc phục hạn chế này, bạn nên sử dụng đoạn cấu hình sau

1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
9

Sử dụng mod_php/PHP-CGI với Apache 2. 4

Trong Apache 2. 4,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
24 đã được thay thế bằng
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
25. Do đó, bạn cần sửa đổi cài đặt quyền
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
26 của mình như sau

$ composer require symfony/apache-pack
0
$ composer require symfony/apache-pack
1

Để biết các tùy chọn cấu hình nâng cao của Apache, hãy đọc tài liệu chính thức của Apache

Apache với PHP-FPM

Để sử dụng PHP-FPM với Apache, trước tiên bạn phải đảm bảo rằng bạn đã cài đặt trình quản lý quy trình FastCGI nhị phân

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
27 và mô-đun FastCGI của Apache (ví dụ: trên hệ thống dựa trên Debian, bạn phải cài đặt gói
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
28 và
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
29)

PHP-FPM sử dụng cái gọi là nhóm để xử lý các yêu cầu FastCGI đến. Bạn có thể định cấu hình số lượng nhóm tùy ý trong cấu hình FPM. Trong nhóm, bạn định cấu hình ổ cắm TCP (IP và cổng) hoặc ổ cắm tên miền Unix để lắng nghe. Mỗi nhóm cũng có thể được chạy dưới một UID và GID khác nhau

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
6
$ composer require symfony/apache-pack
3

Sử dụng mod_proxy_fcgi với Apache 2. 4

Nếu bạn đang chạy Apache 2. 4, bạn có thể sử dụng

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
50 để chuyển các yêu cầu đến PHP-FPM. Định cấu hình PHP-FPM để nghe trên ổ cắm TCP hoặc Unix, bật
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
51 và
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
50 trong cấu hình Apache của bạn và sử dụng lệnh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
53 để chuyển các yêu cầu tệp PHP tới PHP FPM

$ composer require symfony/apache-pack
4
$ composer require symfony/apache-pack
5

PHP-FPM với Apache 2. 2

Trên Apache2. 2 hoặc thấp hơn, bạn không thể sử dụng

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
50. Thay vào đó, bạn phải sử dụng lệnh FastCgiExternalServer. Do đó, cấu hình Apache của bạn sẽ giống như thế này

$ composer require symfony/apache-pack
6
$ composer require symfony/apache-pack
7

Nếu bạn thích sử dụng ổ cắm Unix, bạn phải sử dụng tùy chọn

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
55 để thay thế

1
$ composer require symfony/apache-pack
9

Nginx

Cấu hình tối thiểu để ứng dụng của bạn chạy trên Nginx là

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
60
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
61

Mẹo

Nếu bạn sử dụng NGINX Unit, hãy xem bài viết chính thức về Cách chạy các ứng dụng Symfony bằng NGINX Unit

Ghi chú

Tùy thuộc vào cấu hình PHP-FPM của bạn,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
56 cũng có thể là
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
57

Mẹo

Điều này chỉ thực thi

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
4 trong thư mục chung. Tất cả các tệp khác kết thúc bằng ". php" sẽ bị từ chối

Nếu bạn có các tệp PHP khác trong thư mục chung cần được thực thi, hãy đảm bảo đưa chúng vào khối

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
59 ở trên

thận trọng

Sau khi bạn triển khai vào sản xuất, hãy đảm bảo rằng bạn không thể truy cập tập lệnh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
4 (i. e.
1
1)

Chúng ta có thể chạy PHP trên Apache không?

Cả PHP và MySQL đều tương thích với máy chủ Apache . Hai cái này là nguồn mở và dễ cài đặt. PHP chạy trên nhiều nền tảng như Windows, Linux và Unix.

Làm cách nào để định cấu hình apache2 trong PHP?

Cài đặt PHP trên Apache 2 .
Cài đặt Apache. .
Tải xuống các nguồn PHP mới nhất. .
Trích xuất mã nguồn. .
Đặt tùy chọn trình biên dịch (tùy chọn).
Cấu hình php với autoconf. .
Biên dịch PHP. .
Cài đặt PHP. .
Yêu cầu apache tải mô-đun Chỉnh sửa httpd. conf /usr/local/apache2/conf/httpd. conf với trình soạn thảo văn bản của bạn