centos6.6 下 安装 php7 + nginx环境的方法

1. 准备工作

在安装 php7 和 nginx 环境之前,前置条件有:

1.1 更新系统

yum update

更新现有软件包以及新增安全补丁,确保系统有最新的版本。

1.2 安装EPEL源

yum install epel-release

在CentOS中,EPEL是一个可选的yum存储库,以提供高质量软件包,以及额外的软件包,这些软件包不在默认的CentOS存储库中。通过EPEL存储库,可以获取PHP7和Nginx。

1.3 安装必要的软件包

yum install -y gcc php php-fpm php-gd php-mbstring php-mysql php-pgsql php-xml php-xmlrpc php-pecl-zip nginx

以上命令为安装PHP7,Nginx和所有必要的PHP扩展。

安装完成后,接下来的任务是配置PHP和Nginx来运行网站。

2. 配置PHP

2.1 修改php.ini

首先,我们需要编辑php.ini来更改某些默认值。

nano /etc/php.ini

通过编辑php.ini文件,进行以下更改:

date.timezone = Asia/Shanghai

expose_php = off

max_execution_time = 120

max_input_time = 180

memory_limit = 256M

post_max_size = 50M

upload_max_filesize = 50M

请确保使用与您的时区对应的"Asia/Shanghai"。 其他值也可以根据您的需求进行更改。

2.2 配置PHP-FPM

PHP-FPM代表PHP FastCGI进程管理器,是一种替代传统CGI方法的PHP实现。 PHP-FPM是指定PHP网页服务器可用文件的一种替代方法。PHP-FPM提高了可伸缩性并将负载平衡分散到不同的PHP-FPM子进程中。

我们需要编辑系统中的PHP-FPM配置文件php-fpm.conf。

nano /etc/php-fpm.conf

做出以下更改:

listen = /var/run/php-fpm/php-fpm.sock

listen.owner=nginx

listen.group=nginx

listen.mode = 0660

此更改将套接字路径更改为/var/run/php-fpm/php-fpm.sock,nginx将使用它进行网页请求 ,并将套接字文件所有权和组更改为nginx 。 更改模式以使其可写,以允许写入。

然后我们需要编辑www.conf配置文件:

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

首先请确保user和group变量设置为nginx:

user = nginx

group = nginx

然后,搜索并更改以下变量:

pm.max_children = 50

pm.start_servers = 5

pm.min_spare_servers = 5

pm.max_spare_servers = 35

此更改将PHP-FPM配置为使用50个子进程处理并发网页请求。

3. 配置Nginx

接下来我们需要检查一下Nginx核心配置文件nginx.conf。

nano /etc/nginx/nginx.conf

找到以下行:

location / {

root /usr/share/nginx/html;

index index.html index.htm;

}

使用以下内容替换前面的代码:

location / {

root /usr/share/nginx/html;

index index.php index.html index.htm;

}

location ~ .php$ {

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

此更改将Nginx配置为使用PHP-FPM处理PHP。 当请求.php文件时,Nginx将使用PHP-FPM进行处理。

4. 安装SSL证书

最后一个任务是安装SSL证书以启用HTTPS传输协议。

4.1 安装Let's Encrypt

yum install certbot

4.2 获取SSL证书

certbot certonly --standalone --email example@mail.com -d example.com --agree-tos

请将example@mail.com和example.com更改为您的有效值。 如果尚未安装并配置DNS记录,则使用证书 -test-cert测试证书。

4.3 配置Nginx使用SSL

现在,我们需要编辑Nginx配置文件来使用新SSL证书(假设-certbot中的值为example.com)。

nano /etc/nginx/nginx.conf

对于HTTP,我们将内容更改为:

server {

listen 80;

server_name example.com;

return 301 https://$server_name$request_uri;

}

server {

listen 443 ssl;

server_name example.com;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

root /usr/share/nginx/html;

index index.php index.html index.htm;

location / {

try_files $uri $uri/ /index.php?$query_string;

}

location ~ \.php$ {

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

}

对于HTTPS,我们将内容更改为:

server {

listen 80;

server_name example.com;

return 301 https://$server_name$request_uri;

}

server {

listen 443 ssl;

server_name example.com;

ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;

ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

root /usr/share/nginx/html;

index index.php index.html index.htm;

location / {

try_files $uri $uri/ /index.php?$query_string;

}

location ~ \.php$ {

fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

# Enable SSL

ssl on;

ssl_session_cache builtin:1000 shared:SSL:10m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;

ssl_prefer_server_ciphers on;

}

Nginx现在将使用SSL证书进行安全通信。

5. 防火墙规则

最后一个任务是将必要的防火墙规则应用于安全服务器。

firewall-cmd --zone=public --add-service=http --permanent

firewall-cmd --zone=public --add-service=https --permanent

firewall-cmd --reload

以上命令将通过防火墙添加可信HTTP和HTTPS服务。

6. 启动php-fpm和nginx服务

现在, 让我们启动php-fpm和nginx服务。

sudo service php-fpm start

sudo service nginx start

7. 测试

现在打开您的浏览器并在地址栏中输入您的域名(或IP地址)。 如果一切顺利,您将看到 Nginx 欢迎页面!

结论

CentOS 6.6上安装PHP7和Nginx环境需要一些必须的设置,并确保防火墙上存在正确的规则。通过按照上述步骤,您可以在VPS上轻松部署它,并且安全性得到最大程度的保证。

操作系统标签