Debian12搭建Git2.39 – Redis7 – MySQL8 – Nginx1.22 – PHP8.1 包含常用扩展
Debian12搭建PHP环境,部署WorkermanWebman框架
不懂的可以评论或联系我邮箱:owen@owenzhang.com
著作权归OwenZhang所有。商业转载请联系OwenZhang获得授权,非商业转载请注明出处。
安装环境:
- Git2.39
- Redis7
- MySQL8
- Nginx1.22
- PHP8.1 包含常用扩展
- 支持的扩展 Core, date, libxml, openssl, pcre, sqlite3, zlib, amqp, apcu, bcmath, calendar, ctype, curl, dba, dom, sockets, event, hash, fileinfo, filter, gd, gettext, json, iconv, SPL, session, standard, mbstring, igbinary, imagick, exif, mongodb, msgpack, mysqlnd, mysqli, pcntl, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, Phar, posix, readline, redis, Reflection, shmop, SimpleXML, soap, sodium, sqlsrv, sysvmsg, sysvsem, sysvshm, tokenizer, xlswriter, xml, xmlreader, xmlwriter, xsl, zip, memcache, Zend OPcache
Debian系统
-
查看系统版本
~$ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm
-
更新系统
sudo apt update
-
重启系统
sudo reboot
Git
要在 Debian 系统上安装 Git,可以使用以下命令:
- 更新软件包列表(如果尚未更新):
sudo apt update
- 安装 Git:
cd /usr/src
sudo apt install git
- 安装完成后,你可以检查 Git 是否成功安装:
git --version
git version 2.39.5
Redis7
在 Debian 系统上安装 Redis 7,可以按照以下步骤操作:
- 更新软件包列表:
sudo apt update
- 安装 Redis 7:
如果你的系统仓库中已经包含 Redis 7,你可以直接使用 apt
来安装:
sudo apt install redis-server
- 确认安装 Redis 7:
安装完成后,使用以下命令来确认安装的 Redis 版本:
redis-server --version
输出应为类似如下内容:
Redis server v=7.0.15 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=8fef3e995a542118
这表示你已成功安装 Redis 7。
- 启动和管理 Redis 服务:
-
启动 Redis 服务:
sudo systemctl start redis
-
设置 Redis 开机启动:
sudo systemctl enable redis-server
sudo systemctl is-enabled redis-server
- 检查 Redis 服务状态:
sudo systemctl status redis
- 调整 Redis 配置(如果需要):
如果需要对 Redis 进行配置,可以编辑其配置文件:
sudo nano /etc/redis/redis.conf
配置完成后,重启 Redis 服务以应用更改:
sudo systemctl restart redis
这样,你就能成功安装并运行 Redis 7。
Mysql8
在 Debian 系统上安装 MySQL 8,可以按照以下步骤操作: 明白了!这是按你要求格式更新后的内容:
- 更新软件包列表:
sudo apt update
sudo apt install gnupg
- 安装 MySQL 8: 官网下载地址:https://dev.mysql.com/downloads/repo/apt/ 好的,以下是调整后的完整步骤:
1:下载 .deb
文件
你可以使用以下命令从 MySQL 官方网站下载 .deb
配置包:
sudo wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb
如果你通过浏览器下载,只需要点击链接并保存文件。
2:安装 .deb
文件
下载完成后,使用 dpkg
安装 .deb
文件:
sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb
3:更新软件包列表
安装完成后,更新软件包列表:
sudo apt update
4:安装 MySQL 服务器
接下来,你可以使用以下命令安装 MySQL 服务器:
sudo apt install mysql-server
5:检查 MySQL 服务状态
安装完成后,可以通过以下命令检查 MySQL 是否已成功安装并正在运行:
sudo systemctl status mysql
sudo systemctl enable mysql
sudo systemctl restart mysql
MySQL 添加远程用户
以下是配置 MySQL 添加远程用户的步骤,并赋予 merchant 用户适当权限:
1:登录 MySQL
使用 root
用户登录 MySQL:
sudo mysql -u root -p
输入 root
用户的密码。
2:创建用户并设置密码
执行以下 SQL 命令创建 merchant
用户,并设置密码 Merchant@24
:
CREATE USER 'merchant'@'%' IDENTIFIED BY 'Merchant@24';
'%'
表示允许从任意远程地址连接。
3:授予权限
授予 merchant
用户对所有数据库的完全权限(根据需要调整权限):
GRANT ALL PRIVILEGES ON *.* TO 'merchant'@'%';
执行以下命令刷新权限:
FLUSH PRIVILEGES;
退出MySQL
exit
4:修改 MySQL 配置文件
编辑 MySQL 的配置文件,允许远程连接:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
找到以下配置项:
bind-address = 127.0.0.1
将其修改为:
bind-address = 0.0.0.0
保存并退出文件。
5:重启 MySQL 服务
重新启动 MySQL 以应用更改:
sudo systemctl restart mysql
6:测试远程连接
在远程机器上,使用以下命令测试连接:
mysql -u merchant -p -h
输入密码 Merchant@24
,确认能正常连接。
PHP8.1
在 Debian 系统上安装 PHP8.1,可以按照以下步骤操作:
- 安装 PHP8.1: 下载地址:https://www.workerman.net/download
https://www.workerman.net/a/1771
已经包括常用PHP扩展,比如Redis什么的,解压直接用,不需要编译
支持的扩展 Core, date, libxml, openssl, pcre, sqlite3, zlib, amqp, apcu, bcmath, calendar, ctype, curl, dba, dom, sockets, event, hash, fileinfo, filter, gd, gettext, json, iconv, SPL, session, standard, mbstring, igbinary, imagick, exif, mongodb, msgpack, mysqlnd, mysqli, pcntl, PDO, pdo_mysql, pdo_pgsql, pdo_sqlite, pdo_sqlsrv, pgsql, Phar, posix, readline, redis, Reflection, shmop, SimpleXML, soap, sodium, sqlsrv, sysvmsg, sysvsem, sysvshm, tokenizer, xlswriter, xml, xmlreader, xmlwriter, xsl, zip, memcache, Zend OPcache
- 自动安装PHP+composer环境:
cd /usr/local
sudo curl -sO https://www.workerman.net/install-php-and-composer && sudo bash install-php-and-composer
输入安装的PHP版本,8.1,就可以了
- 查看php版本:
$ php -v
PHP 8.1.30 (cli) (built: Oct 11 2024 08:59:01) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.30, Copyright (c) Zend Technologies
with Zend OPcache v8.1.30, Copyright (c), by Zend Technologies
-
查看php安装的扩展:
php -m
-
查看php安装的路径:
php -r "echo PHP_BINARY;"
输出 /usr/local/bin/php
然后根据需要配置 PHP 环境。如果你有任何进一步的安装问题或配置疑问,随时可以问我!
Nginx1.22
在 Debian 系统上配置 NGINX 作为 Web 服务器时,你需要安装 NGINX、配置虚拟主机(server blocks)、并根据需要进行其他调整。以下是详细的步骤:
- 安装 NGINX
在 Debian 系统上安装 NGINX,首先需要更新软件包索引并安装 NGINX。
sudo apt update
sudo apt install nginx
安装完成后,你可以通过以下命令检查 NGINX 是否正常运行:
sudo systemctl status nginx
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl restart nginx
如果 NGINX 没有自动启动,可以通过以下命令启动:
sudo systemctl start nginx
- 配置防火墙(如果有)
如果你的 Debian 系统启用了防火墙(如 UFW),你需要允许 HTTP 和 HTTPS 流量通过防火墙。
sudo ufw allow 'Nginx Full'
这将允许通过端口 80
(HTTP)和 443
(HTTPS)的流量。
- 配置虚拟主机(Server Block)
NGINX 的虚拟主机配置存放在 /etc/nginx/sites-available/
目录中,启用的虚拟主机配置文件则通过符号链接链接到 /etc/nginx/sites-enabled/
目录。
- 创建一个新的虚拟主机配置文件
你可以在 /etc/nginx/sites-available/
目录中创建一个新的配置文件,例如:
sudo nano /etc/nginx/sites-available/mywebsite
添加以下内容:
server {
listen 80;
server_name mywebsite.com www.mywebsite.com; # 替换为你自己的域名
root /var/www/mywebsite; # 网站根目录
index index.php index.html index.htm; # 默认文件
location / {
try_files $uri $uri/ =404;
}
# 配置 PHP 解析
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的 PHP 版本修改
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 配置错误页面
error_page 404 /404.html;
location = /404.html {
root /var/www/html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /var/www/html;
}
}
- 创建网站目录
创建网站根目录并将网站文件放入其中:
sudo mkdir -p /var/www/mywebsite
sudo chown -R www-data:www-data /var/www/mywebsite
你可以将你的 HTML 或 PHP 文件放到 /var/www/mywebsite
目录中。
- 启用虚拟主机
创建符号链接,使该配置文件生效:
sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/
- 测试 NGINX 配置
在重启 NGINX 之前,测试配置是否正确:
sudo nginx -t
如果配置正确,你应该会看到类似于 nginx: configuration file /etc/nginx/nginx.conf test is successful
的消息。
- 重启 NGINX 使配置生效
重新加载 NGINX 配置:
sudo systemctl reload nginx
- 配置 SSL(HTTPS)
如果你希望为你的网站启用 HTTPS,可以使用 Let’s Encrypt 获取免费证书。
- 安装 Certbot
Certbot 是一个用于获取 Let’s Encrypt 证书的工具。在 Debian 上安装 Certbot:
sudo apt install certbot python3-certbot-nginx
- 获取 SSL 证书
使用 Certbot 自动获取 SSL 证书并配置 NGINX:
sudo certbot --nginx -d mywebsite.com -d www.mywebsite.com
Certbot 会自动验证域名并为你的网站获取 SSL 证书。如果证书获取成功,Certbot 会自动修改 NGINX 配置,启用 HTTPS。
- 测试 SSL 配置
你可以通过访问 https://mywebsite.com
来确认 SSL 是否启用。
- 配置自动续期
Let’s Encrypt 证书有效期为 90 天。你可以通过以下命令来设置自动续期:
sudo systemctl enable certbot.timer
Certbot 会自动每 12 小时检查证书的有效期,并在需要时自动续期。
- 配置反向代理(如果需要)
如果你有一个后端应用程序(例如,PHP 或 Node.js),并希望通过 NGINX 进行反向代理,你可以修改 NGINX 配置文件。
例如,配置 NGINX 将请求代理到本地的 8080
端口:
server {
listen 80;
server_name mywebsite.com;
location / {
proxy_pass http://127.0.0.1:8080; # 将请求代理到本地的应用服务器
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
- 配置负载均衡(可选)
如果你有多个后端服务器,可以使用 NGINX 来实现负载均衡。假设你有两个后端服务器:
upstream backend {
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server {
listen 80;
server_name mywebsite.com;
location / {
proxy_pass http://backend; # 负载均衡代理到 upstream 配置的后端服务器
}
}
- 手动配置已有的证书
把certificate.crt chain.crt fullchain.crt private.pem public.pem文件上传到/etc/ssl/paysite下
既然你已经有了以下文件:
certificate.crt
:服务器证书。chain.crt
:中间证书。fullchain.crt
:包含服务器证书和中间证书的完整证书链。private.pem
:私钥文件。public.pem
:可以是中间证书或根证书。
你可以通过以下方式配置 NGINX 使用这些证书启用 HTTPS。
配置步骤
-
配置 NGINX 使用 SSL
打开并编辑你的 NGINX 配置文件(例如
/etc/nginx/sites-available/default
或你自己的配置文件):sudo nano /etc/nginx/sites-available/default
-
更新 NGINX 配置:
在
server
块中,配置 SSL 证书和私钥的路径,并配置 HTTPS 设置。假设你的文件位于/etc/ssl/paysite/
目录下:server { listen 443 ssl; server_name mywebsite.com www.mywebsite.com; # SSL 配置 ssl_certificate /etc/ssl/paysite/fullchain.crt; # 完整证书链(包含服务器证书 + 中间证书) ssl_certificate_key /etc/ssl/paysite/private.pem; # 私钥 # SSL 配置安全选项 ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers off; # 网站根目录和其他配置 root /var/www/mywebsite; index index.php index.html index.htm; # 配置 PHP 解析 location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的 PHP 版本调整 } } # HTTP 请求重定向到 HTTPS server { listen 80; server_name mywebsite.com www.mywebsite.com; return 301 https://$host$request_uri; }
解释:
ssl_certificate
:指定了完整证书链文件(fullchain.crt
),它包括了服务器证书和中间证书。ssl_certificate_key
:指定了私钥文件(private.pem
)。ssl_protocols
:指定了使用的 TLS 协议版本,推荐使用 TLS 1.2 和 TLS 1.3。ssl_ciphers
:指定了支持的加密套件,确保更高的安全性。ssl_prefer_server_ciphers
:此配置表示服务器优先使用自己选择的加密套件,而不是客户端的首选项。
-
保存并退出配置文件。
-
检查 NGINX 配置是否有错误:
在重新加载 NGINX 之前,检查配置是否正确:
sudo nginx -t
如果一切正常,输出会显示
syntax is ok
和test is successful
。 -
重新加载 NGINX 服务:
配置没有问题后,重新加载 NGINX:
sudo systemctl reload nginx
-
测试 HTTPS 配置
在浏览器中访问你的域名(如 https://mywebsite.com
),你应该能够通过 HTTPS 访问网站。如果配置正确,浏览器地址栏会显示 HTTPS 和一个小锁图标,表示连接是加密的。
- 验证 SSL 配置
你可以使用 SSL Labs’ SSL Test 来测试你的 SSL 配置是否正确,并检查是否存在任何潜在的安全问题。
Buy me a cup of coffee 🙂
觉得对你有帮助,就给我打赏吧,谢谢!