现在到了这么一个阶段,为了要将 Django 部署到生产环境,一搞下来,发现要在 Windows 上面部署好这个家伙真是个噩梦。
于是,不得不开始用 Linux 干这个活了。
昨天下午四五点开始拿起旧的 ThinkPad 安装,晚上搞到一点多装好了 Nginx+PHP,到现在已经把 Nginx+PHP+phpMyAdmin 装好了,还部署好了我自己的 wordpress,如果是这样的话,其实我的 vps 已经快可以不需要 windows 了。
之前看鸟哥的 Linux 私房菜看了百来页,现在基本上忘光了,然后这次部署也是跌跌撞撞乱搞出来的,为免以后极易流失,还是记录一下为好。
1. 安装 Ubuntu
为了方便起见,还是选用了国人最为喜爱的 Ubuntu 发行版,没有用鸟哥推荐的以及大多数 vps 使用的 CentOS。
另一个 原因就是 Ubuntu 的 Debian 血统跟树莓派使用的是一样的,起码在 apt 包管理方面的习惯可以共用。
安装很简单,基本上全图形界面操作。
硬盘分配方面,/home
使用了 200G,/usr
使用了50G,Swap 用了 2G,其他的乱搞了一下,都忘记了,影响不大,也就算了。
2. 远程 SSH 连接
下面几种情况:
- 使得当前 linux 可以被远程访问:
sudo apt-get install openssh-server
- 从一个 linux 终端连接另一台 linux 主机:
ssh -l [username] [host]
- 从 windows 终端访问 linux:
下一个 putty 然后输入 IP 连接即可。
3. LAMP 安装
安装好 ubuntu 之后,python 是已经安装好的了,而且包括了 python2 和 python3,如果敲 python 的话会调用 python2 如果要调用 python3 的话就要敲 python3。
LAMP 的安装后来找到一篇很好的文章,直接本站转了,按照这个装完之后就已经有 LAMP + phpMyAdmin 了。
有了这个基础,装个 wordpress 神马的就很随便了。
4. 安装 ftp
使用 vsftpd (very secure FTP),安装:
apt-get install vsftpd
然后其实也很费周折的,首先是配置文件,不解释了,反正最终配置的权限就是 创建一个 ftpuser 用户,访问到 /var/django
的读写权限:
listen=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl−cert−snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl−cert−snakeoil.key
seccomp_sandbox=NO
就这么多,直接拷贝到 /etc/vsftpd.conf
里面即可,网上找的实在是太复杂,我这里只给一个 Minimal Example 就可以了,反正我的目的只是要把源代码放进去。
还没完,需要创建一个用户:
sudo useradd -d /var/django ftpuser
这个 ftpuser 用户是用来登录 ftp 用的,登陆之后用户目录转到 /var/django
,这个根据实际情况来定。
然后改密码:
sudo passwd ftpuser
然后创建一个 /etc/vsftpd.chroot_list
文件,在里面写入:
ftpuser
每行一个用户,用于指定哪些用户可以登录。
然后我们还需要修改目标目录的权限来允许 ftpuser 用户的访问:
sudo chmod -R 777 /var/django
这样搞完,用 ftpuser 就可以成功连接 ftp 了!
5. 彻底卸载软件包的方法
有时候难免会出点状况,譬如说 apache 的配置文件或者哪些其他配置文件被改乱了恢复不了了,这样需要重装软件包以及重新生成配置文件,这时候可以这样卸载(以 nginx 为例):
sudo apt-get remove --purge nginx
然后再装回来即可。
sudo apt-get install nginx
【转载请附】愿以此功德,回向 >>
原文链接:http://www.huangwenchao.com.cn/2014/04/linux-deploy-1.html【Linux 部署服务器手札 (I)】
你好,我现在正在学习Django,开始的时候也是在Windows上面部署,但是真的觉得windows不适合做开发用。 我2007年在中专里学习过一点C语言,2016年自学的C#,今年学习的Python、Django,这几年自己也做过一些实用的小工具,但都没有系统的学习过。想春节过后正式踏进程序猿,但现在发现自己需要学习的东西太多了,Linux、Python的进阶、Django的实战经验、HTML、CSS、JS,现在还想做一个个人的网站,这样明年面试的时候多少有些实力,在这求教有没有什么对我的建议呢,非常感谢。