centos7,nginx,mysql,php,certbot搭建网络服务器

1、安装CentOS7系统,取得root权限;

2、添加防火墙端口;

# sudo firewall-cmd --permanent --add-service=http # 打开 HTTP 端口
# sudo firewall-cmd --permanent --add-service=https # 打开 HTTPS 端口
# sudo firewall-cmd --complete-reload # 重新加载防火墙配置

3、安装MariaDB数据库并设置自动启动;

# sudo yum install mariadb mariadb-server #安装数据库
# sudo systemctl start mariadb #启动数据库
# sudo systemctl enable mariadb #设置自动启动
# with mysql_secure_installation #初始化数据库

4、安装Nginx;

# sudo yum install nginx -y #安装nginx
# sudo systemctl enable nginx #设置nginx服务自动启动
# sudo systemctl start nginx #启动nginx服务

5、安装PHP运行环境,并设置自动启动PHP-FPM;

# yum install php-fpm php-mysql php-cli php #安装PHP-FPM、PHP、PHP-CLI
# sudo systemctl enable php-fpm #设置PHP-FPM服务自动启动
# sudo systemctl start php-fpm #启动PHP-FPM服务

6、配置Nginx与PHP-FPM协同工作;

# sudo vi /etc/php.ini #编辑PHP配置文件
cgi.fix_pathinfo=0 #查找cgi.fix_pathinfo,并设置等于0
#vi中使用wq指令保存并退出编辑
# sudo vi /etc/php-fpm.d/www.conf #编辑www.conf配置文件
listen = /run/php-fpm/php-fpm.sock #使用Unix接口替换9000号端口

listen.owner = nginx #查找listen.owner,将值设置成nginx
listen.group = nginx #查找listen.group,将值设置成nginx

user = nginx #查找Unix用户关键字user,将值设置成nginx
group = nginx #查找Unix用户组关键字group,将值设置成nginx
#vi中使用wq指令保存并退出编辑
# sudo systemctl restart php-fpm #重启动PHP-FPM
# sudo vi /etc/nginx/conf.d/default.conf #创建nginx默认配置文件
#将一下代码粘贴在文件中,对文件中的参数进行必要修改,并保存退出。

server {
    listen	 80;
    server_name  your_server_ip; #此处用你的服务器IP地址或者域名替代your_server_ip
    root   /usr/share/nginx/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }
    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        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;
    }
}
# sudo systemctl restart nginx #重启动nginx服务

7、验证PHP运行

# sudo vi /usr/share/nginx/html/test.php #创建一个测试网页
#在文件中输入如下代码并保存退出
<?php phpinfo(); ?>
http://server_IP_address/test.php #在浏览器中输入网址,使用服务器IP或者域名替换server_IP_address,如果打开服务器PHP统计信息页,则服务器搭建完成

8、生成证书

# sudo yum install certbot #安装certbot,准备生成证书
# 使用以下两种方法之一生成证书
# sudo certbot certonly --webroot -w /var/www/example -d example.com -d www.example.com #可以指定服务器路径和域名生成证书
# sudo certbot certonly --standalone -d example.com -d www.example.com #也可以不指定路径,对服务器443端口生成证书
# 成功生成证书后会提示证书保存路径,请记录,后续待用

9、启动https服务

# sudo vi /etc/nginx/conf.d/default.conf #修改nginx默认配置文件
#将一下代码粘贴在文件中末尾的空行中,对文件中的参数进行必要修改,并保存退出。
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name your_server_ip; #此处用你的服务器IP地址或者域名替代
root /usr/share/nginx/html;
index index.php index.html index.htm;

ssl_certificate "your_cert_path_and_filename"; #设置证书路径和文件名
ssl_certificate_key "your_private_key_path_and_filename"; #设置私钥证书路径和文件名
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;

# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location ~ \.php$ {
try_files $uri =404;
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;
  }
}