目录
- 云服务器准备
- 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.
点击立即抢购,我们选用CentOS 7.6镜像
购买成功后,我们就可以进入控制面板,也能看到我们的IP
打开防火墙
然后设置远程连接,设置密码
重启后,我们就可以使用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就安装成功了
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
- 修改完成后: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;
}
- 使用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 ;
}
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;
}
- 使用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
即可解除错误
python3 manage.py migrate
python3 manage.py runserver 0.0.0.0:8000
可以看到成功运行
在浏览器输入你服务器的 ip(这里我们输入本机 IP 地址: 47.111..:8000),IP地址可以在阿里云的控制面板找到,在浏览器中可能出现错误
这是因为HOSTS没设置,我们可以修改settings.py
来去除错误
cd /root/mysite/mysite
vi settings.py
将
按i
进入插入模式,改为
然后按Esc
退出插入模式,输入:wq
保存退出。此时我们再次运行manage.py
cd /root/mysite/
python3 manage.py runserver 0.0.0.0:8000
打开浏览器刷新,可以看到安装成功
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;
}
4.4 重启 Nginx 运行 uwsgi
uwsgi --ini /etc/uwsgi9090.ini
nginx -t && nginx -s reload
#killall -9 uwsgi 关闭所有uwsgi进程
在浏览器输入 IP 地址,就可以看到