第一篇博客

nginx
主要配置文件路径
- 主配置文件 /etc/nginx/nginx.conf这是Nginx的主要配置文件。它包含全局设置,并可能包括其他配置文件。
站点配置文件路径
- 站点配置文件目录 /etc/nginx/sites-available/这个目录存放所有站点的配置文件。
- 测试Nginx配置:bash深色版本 sudo nginx -t
- 重新加载Nginx: 如果测试通过,运行以下命令重新加载Nginx:bash深色版本 sudo systemctl reload nginx
第一步
安装python3.12
在Ubuntu上安装Python 3.12,你可以按照以下步骤操作: 更新和升级系统包 首先,确保你的系统包是最新的。打开终端并运行: Bash 深色版本 sudo apt update sudo apt upgrade 安装依赖项 为了成功编译Python源码,你需要安装一些必要的工具和库: Bash 深色版本 sudo apt install -y build-essential libssl-dev zlib1g-dev libncurses5-dev libnss3-dev libreadline-dev libffi-dev curl libsqlite3-dev uuid-dev 下载Python 3.12源码 访问Python官方网站找到最新的发布版本下载链接,或者直接使用wget命令下载: Bash 深色版本 cd /usr/src sudo wget https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tgz 注意:请检查链接是否为最新版本。 解压源码文件 下载完成后,解压缩文件: Bash 深色版本 sudo tar xzf Python-3.12.0.tgz 编译源码 进入解压后的目录,并开始配置和编译过程: Bash 深色版本 cd Python-3.12.0 sudo ./configure --enable-optimizations sudo make -j$(nproc) 这里的-j$(nproc)选项会根据你系统的处理器核心数加速编译过程。 安装Python 最后一步是安装Python: Bash 深色版本 sudo make altinstall 请注意使用altinstall而非install,以避免覆盖系统默认的python版本。 完成以上步骤后,你应该能够在终端中通过输入python3.12来启动新安装的Python版本了。希望这对你有帮助!如果有任何问题或需要进一步的帮助,请随时告诉我。
第二步 安装pip3
第三步 安装venv 后面的步骤都安装在虚拟环境中
python3 -m venv blog source blog/bin/activate deactivate 虚拟环境的目录内(/www/wwwroot/blog/blog) source blog/bin/activate
第四步 安装django
第五步 安装mysql
登录MySQL: 现在可以直接以root身份登录,不需要密码。 Bash 深色版本 mysql -u root 修改root密码: 在MySQL命令行中执行以下SQL语句来更改密码。注意,对于MySQL 8.0及以上版本,请使用authentication_string字段。 Sql 深色版本 FLUSH PRIVILEGES; ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
root 1234
第六步 安装pkg-config mysqlclient
sudo apt-get install python3-dev default-libmysqlclient-dev libmysqlclient-dev pkg-config build-essential pip install mysqlclient
第七步 创建bloguser
从错误信息来看,尽管您尝试使用 root 用户连接 MySQL 数据库,但访问仍然被拒绝。为了确保安全性和最佳实践,建议创建一个专门用于 Django 项目的 MySQL 用户,并使用该用户进行数据库连接。 以下是详细的步骤来解决这个问题: 1. 创建一个新的 MySQL 用户并授予权限 首先,登录到 MySQL 并创建一个新的用户(例如 bloguser),然后授予该用户对 blog 数据库的所有权限。 登录 MySQL Bash 深色版本 mysql -u root -p 输入 root 用户的密码后进入 MySQL 命令行。 创建新用户并授予权限 在 MySQL 提示符下执行以下命令: Sql 深色版本 -- 创建新用户 CREATE USER 'bloguser'@'localhost' IDENTIFIED BY 'your_password'; -- 授予所有权限给新用户 GRANT ALL PRIVILEGES ON blog.* TO 'bloguser'@'localhost'; -- 刷新权限 FLUSH PRIVILEGES; -- 退出 MySQL EXIT; 请将 'your_password' 替换为您希望设置的实际密码。 2. 更新 Django 项目的 settings.py 文件 接下来,更新您的 Django 项目的 settings.py 文件,以使用新的数据库用户。 找到 DATABASES 配置部分,并修改为如下内容: Python 深色版本 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'blog', # 数据库名称 'USER': 'bloguser', # 新创建的数据库用户名 'PASSWORD': 'your_password', # 新创建的数据库用户密码 'HOST': '127.0.0.1', # 或者您数据库服务器的实际IP地址/域名 'PORT': '3306', # MySQL 默认端口 } } 请确保将 'your_password' 替换为您之前设置的实际密码。 3. 测试新用户的数据库连接 在命令行中测试新用户的数据库连接,以确保一切正常: Bash 深色版本 mysql -u bloguser -p -h localhost blog 输入密码后,如果能够成功登录并查看数据库内容,则说明权限配置正确。 4. 运行 Django 命令 回到 Django 项目目录并运行以下命令,检查是否能成功生成迁移文件: Bash 深色版本 python manage.py makemigrations 如果一切配置正确,您应该不会再看到 Access denied 错误。 完整的操作步骤 以下是完整的操作步骤汇总: 登录 MySQL 并创建新用户: Bash 深色版本 mysql -u root -p 在 MySQL 提示符下执行: Sql 深色版本 CREATE USER 'bloguser'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON blog.* TO 'bloguser'@'localhost'; FLUSH PRIVILEGES; EXIT; 更新 Django 项目的 settings.py 文件: 编辑 settings.py 文件,更新数据库配置: Python 深色版本 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'blog', 'USER': 'bloguser', 'PASSWORD': 'your_password', 'HOST': '127.0.0.1', 'PORT': '3306', } } 测试新用户的数据库连接: Bash 深色版本 mysql -u bloguser -p -h localhost blog 运行 Django 命令: 回到 Django 项目目录并运行: Bash 深色版本 python manage.py makemigrations
Gunicorn
python -m gunicorn zhiliaoblog.wsgi:application --bind 0.0.0.0:8001 python manage.py runserver 127.0.0.1:8001 后台运行 nohup python -m gunicorn zhiliaoblog.wsgi:application --workers 3 --bind 0.0.0.0:8001 & nohup npm run dev > my.log 2>my.log & exit
无法访问静态文件需要在nginx定位静态文件位置