目录

  • 云服务器准备
  • 1. 购买并实例化云服务器
  • 2. LNMP环境搭建
  • 2.0 增加SWAP
  • 2.1 安装nginx
  • 2.2 安装mysql5.7
  • 2.3 安装PHP7.2
  • 2.4 配置php-fpm,让nginx与php关联
  • 2.5 安装phpmyadmin5.04
  • 3. 搭建Web应用框架Django
  • 3.1 安装python3
  • 3.2 Django 安装
  • 3.3 Django 创建第一个项目
  • 4. Nginx+uwsgi+Django
  • 4.1 安装uwsgi及其环境
  • 4.2 uwsgi 配置
  • 4.3 Nginx 配置
  • 4.4 重启 Nginx 运行 uwsgi


云服务器准备

1. 购买并实例化云服务器

我们用阿里云的轻量应用服务器,方便于我们开发。

购买链接: https://www.aliyun.com/product/swas.

直接购买有些昂贵,也可以通过阿里云的云翼计划购买(需要认证学生证)

购买链接: https://developer.aliyun.com/plan/grow-up.

centos7 服务器默认密码 服务器centos7.6_阿里云


点击立即抢购,我们选用CentOS 7.6镜像

centos7 服务器默认密码 服务器centos7.6_python_02

购买成功后,我们就可以进入控制面板,也能看到我们的IP

centos7 服务器默认密码 服务器centos7.6_django_03

打开防火墙

centos7 服务器默认密码 服务器centos7.6_centos7 服务器默认密码_04


然后设置远程连接,设置密码

centos7 服务器默认密码 服务器centos7.6_python_05


重启后,我们就可以使用Xshell连接了

2. LNMP环境搭建

打开Xshell,并连接阿里云服务器 ,以下操作均在root权限下运行,不是root权限自觉加sudo

2.0 增加SWAP

free -m   #查看已有SWAP大小
mkdir /swap
fallocate -l 6G /swap/swapfile
mkswap /swap/swapfile
swapon /swap/swapfile
swapoff swapfile   #卸载SWAP

为了让这个SWAP开机自动挂载,还需要:

echo "/swap/swapfile /swap swap defaults 0 0" >>  /etc/fstab

2.1 安装nginx

  • dnf安装nginx
yum -y install nginx
  • 启动并开机自启 nginx
systemctl start nginx && systemctl enable nginx

这时我们打开浏览器,访问服务器的公网IP,如果出现Welcome to nginx!那么nginx就安装成功了

centos7 服务器默认密码 服务器centos7.6_centos_06

2.2 安装mysql5.7

  • 安装mysql
cd
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
yum -y install mysql57-community-release-el7-10.noarch.rpm
#yum module disable mysql   #mysql8需要
yum -y install mysql-community-server
  • 启动以及开机自启
systemctl start mysqld && systemctl enable mysqld
  • 修改密码
    查看初始密码
cat /var/log/mysqld.log |grep password
  • 登录
mysql -uroot -p
  • 修改密码规则
set global validate_password_length=4;
set global validate_password_policy=0;
  • 修改密码,退出
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
exit

2.3 安装PHP7.2

yum -y install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
yum -y install php72w php72w-cli php72w-common php72w-devel php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-pear php72w-pecl-xdebug php72w-soap php72w-memcached

2.4 配置php-fpm,让nginx与php关联

  • 修改php-fpm配置文件
vi /etc/php-fpm.d/www.conf
  • 找到并修改内容
listen.owner = nginx
listen.group = nginx
listen.mode = 0666

centos7 服务器默认密码 服务器centos7.6_阿里云_07

  • 修改完成后:wq退出,重启php-fpm服务
systemctl start php-fpm && systemctl enable php-fpm
  • 修改nginx的配置
vi /etc/nginx/nginx.conf
  • 添加以下内容
location ~\.php$ {
	root /var/www/html; 
	fastcgi_pass 127.0.0.1:9000;
	fastcgi_index index.php;
	fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
	include fastcgi_params;
}

centos7 服务器默认密码 服务器centos7.6_python_08

  • 使用nginx -t命令确认格式无错误,重启nginx
nginx -t && nginx -s reload
  • 新建一个php文件用于测试
vi /var/www/html/index.php
  • 将以下内容写入,然后保存退出
<?php
phpinfo(); 
?>
  • 打开浏览器,访问服务器的公网IP/index.php,如果看到以下画面,则说明关联成功

2.5 安装phpmyadmin5.04

  • 安装zip解压软件
yum install -y unzip zip
  • 下载安装包
cd
wget https://files.phpmyadmin.net/phpMyAdmin/5.0.4/phpMyAdmin-5.0.4-all-languages.zip --no-check-certificate
  • 解压
unzip phpMyAdmin-5.0.4-all-languages.zip
  • 移动到web目录下
mv phpMyAdmin-5.0.4-all-languages /var/www/html/
  • 重新命名
cd /var/www/html/
mv phpMyAdmin-5.0.4-all-languages phpmyadmin
  • 修改配置文件
vi /etc/nginx/nginx.conf
  • 添加phpmyadmin的路径
location /phpmyadmin {
    alias /var/www/html/phpmyadmin;
    index index.php;
}

location ~ /phpmyadmin/.+\.php$ {
    if ($fastcgi_script_name ~ /phpmyadmin/(.+\.php.*)$) {
        set $valid_fastcgi_script_name $1;
    }
    include fastcgi_params;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/html/phpmyadmin/$valid_fastcgi_script_name;
}

centos7 服务器默认密码 服务器centos7.6_centos7 服务器默认密码_09

  • 使用nginx -t命令确认格式无错误,重启nginx
nginx -t && nginx -s reload
  • 打开浏览器,访问服务器的公网IP/phpmyadmin,如果看到以下画面,则说明安装成功

    我们之前教程设置的用户名和密码均是root

3. 搭建Web应用框架Django

3.1 安装python3

在CentOS 7.6中,只有python2,为了方便,安装python3,按需选择版本
安装环境:

yum install -y libffi-devel zlib* openssl-devel
cd
wget https://www.sqlite.org/2022/sqlite-autoconf-3400000.tar.gz --no-check-certificate
tar -zxvf sqlite-autoconf-3400000.tar.gz
cd sqlite-autoconf-3400000
./configure --prefix=/usr/local
make&&make install
mv /usr/bin/sqlite3 /usr/bin/sqlite3.7.17
ln -s /usr/local/bin/sqlite3 /usr/bin/sqlite3
echo "/usr/local/lib" > /etc/ld.so.conf.d/sqlite3.conf
ldconfig

python3.9:

cd
wget https://www.python.org/ftp/python/3.9.15/Python-3.9.15.tar.xz
tar -xJf Python-3.9.15.tar.xz
cd Python-3.9.15
make clean
./configure --prefix=/usr/local/python3.9.15
make && make altinstall
ln -s /usr/local/python3.9.15/bin/python3.9 /usr/bin/python3
ln -s /usr/local/python3.9.15/bin/pip3.9 /usr/bin/pip3
echo "export PATH=\"$PATH:/usr/local/python3.9.15/bin/\"" >>  /etc/profile
source /etc/profile

python3.7:

cd
wget https://www.python.org/ftp/python/3.7.15/Python-3.7.15.tar.xz
tar -xJf Python-3.7.15.tar.xz
cd Python-3.7.15
make clean
./configure --prefix=/usr/local/python3.7.15 --enable-optimizations
make && make altinstall
ln -s /usr/local/python3.7.15/bin/python3.7 /usr/bin/python3
ln -s /usr/local/python3.7.15/bin/pip3.7 /usr/bin/pip3
echo "export PATH=\"$PATH:/usr/local/python3.7.15/bin/\"" >>  /etc/profile
source /etc/profile

3.2 Django 安装

pip3 install --upgrade pip
pip3 install django==3.2.16 #2.1.8

3.3 Django 创建第一个项目

在根目录下尝试创建Django项目

cd
django-admin startproject mysite

我们可以通过ls查看当前目录文件,可以发现多出一个名为HelloWorld的文件
我们可以cd进去,然后启动服务器

cd /root/mysite/
python3 manage.py runserver 0.0.0.0:8000

有可能出现下面错误,根据提示,Ctrl + c 退出后,输入python manage.py migrate即可解除错误

centos7 服务器默认密码 服务器centos7.6_centos_10

python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000

可以看到成功运行

centos7 服务器默认密码 服务器centos7.6_centos_11


在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 47.111..:8000),IP地址可以在阿里云的控制面板找到,在浏览器中可能出现错误

centos7 服务器默认密码 服务器centos7.6_阿里云_12


这是因为HOSTS没设置,我们可以修改settings.py来去除错误

cd /root/mysite/mysite
vi settings.py


centos7 服务器默认密码 服务器centos7.6_django_13


i进入插入模式,改为

centos7 服务器默认密码 服务器centos7.6_centos_14


然后按Esc退出插入模式,输入:wq保存退出。此时我们再次运行manage.py

cd /root/mysite/
python3 manage.py runserver 0.0.0.0:8000

打开浏览器刷新,可以看到安装成功

centos7 服务器默认密码 服务器centos7.6_python_15

4. Nginx+uwsgi+Django

4.1 安装uwsgi及其环境

#yum -y update python-devel
#yum -y install python36-devel
pip3 install uwsgi

4.2 uwsgi 配置

创建日记文件

cd
mkdir uwsgi_log
vi uwsgi_log/uwsgi9090.log

在/etc/目录下新建uwsgi9090.ini,添加如下配置

vi /etc/uwsgi9090.ini
[uwsgi]
socket = 127.0.0.1:9090
master = true
#vhost = true
#no-site = true
workers = 2
reload-mercy = 10
vacuum = true
max-requests = 1000
buffer-size = 30000
chdir = /root/mysite
wsgi-file = mysite/wsgi.py
pythonpath = /usr/bin/python3
daemonize = /root/uwsgi_log/uwsgi9090.log

4.3 Nginx 配置

vi /etc/nginx/nginx.conf
location / {
    include  uwsgi_params;
    uwsgi_pass  127.0.0.1:9090;
}

centos7 服务器默认密码 服务器centos7.6_centos_16

4.4 重启 Nginx 运行 uwsgi

uwsgi --ini /etc/uwsgi9090.ini
nginx -t && nginx -s reload
#killall -9 uwsgi     关闭所有uwsgi进程

在浏览器输入 IP 地址,就可以看到

centos7 服务器默认密码 服务器centos7.6_centos_17