尝鲜用了下CentOS 7跑Flask应用。
总体感觉除了systemd带来一些不习惯之外,其他都还行,包的版本也比6.5要新,比如Python默认就是2.7.5。BTW,CentOS 7安装MySQL时,默认安装的是MariaDB,不知道这个东西有什么坑…不过反正是跑一些自己的一些业余小项目,也无所谓了。
下面是经验记录,使用Nginx作为反代,MariaDB作为数据库,用Adminer管理MariaDB,然后顺便安装了Supervisor:
yum -y update
# 一些常用工具集,比如gcc
yum groupinstall -y development
# 安装Pillow所需要的图像库
yum install -y libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel
yum install -y vim git python-devel mariadb-devel
系统默认的Python版本为2.7.5,够用了。
安装pip:
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
安装virtualenv:
pip install virtualenv
vim /etc/yum.repos.d/nginx.repo
,输入如下内容:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
然后yum install nginx
即可。
启动Nginx、配置Nginx开机启动:
systemctl start nginx.service
systemctl enable nginx.service
yum -y install mariadb-server mariadb
然后执行mysql_secure_installation
,按提示完成安全设置。
启动MariaDB、配置MariaDB开机启动:
systemctl start mariadb.service
systemctl enable mariadb.service
yum install php php-mysql php-fpm
PHP版本为5.4.16。
启动php-fpm、配置php-fpm开机启动:
systemctl start php-fpm.service
systemctl enable php-fpm.service
在Nginx中配置php-fpm,编辑/etc/nginx/conf.d/default.conf
,加入:
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html/$fastcgi_script_name;
}
systemctl restart nginx.service
重启nginx。
安装Adminer:
cd /usr/share/nginx/html
wget http://www.adminer.org/latest.php
访问http://your_IP/latest.php
即可进入Adminer管理页面。
pip install supervisor
echo_supervisord_conf > /etc/supervisord.conf
sudo mkdir /etc/supervisord.d/
vim /etc/supervisord.conf
,在其中加入如下:
[include]
files = /etc/supervisord.d/*.conf
此处的/etc/supervisord.d/
用于存放各种program的supervisord启动脚本(后缀为conf)。
然后添加Supervisor的service控制命令:
vim /usr/lib/systemd/system/supervisord.service
,并输入:
[Unit]
Description=Supervisord
[Service]
Type=forking
PIDFile=/tmp/supervisord.pid
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf
ExecStop=/bin/kill -TERM $MAINPID
ExecReload=/bin/kill -HUP $MAINPID
[Install]
WantedBy=multi-user.target
启动Supervisord、配置Supervisord开机启动:
systemctl start supervisord.service
systemctl enable supervisord.service
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.