在上一篇咱們在本地的虛擬服務器上安裝好CentOS7後,咱們的python web服務、自定義的python service或python腳本須要在服務器上運行,還須要在服務器安裝各類相關的軟件才行,通常來講,想要實現自動化部署需求,還須要安裝nginx、svn、uwsgi、python3.0(系統自帶python2.7.5)、supervisor、postgresql、redis(nosql緩存根據本身代碼的須要而定)。html
PS:本人不是專業的運維,只能根據本身的研究弄弄單機版的python web服務器,而對於多服務器自動化同步的部署、服務器的監控、Linux服務器的安全、服務器的調優(不少服務安裝不是重點,能將各類參數運用配置到洽到好處纔是難點),你們最好找專業的運維工程師來處理。再一次感謝小戴同窗的盡心幫助,讓我學會了不少服務器運維方面的知識,纔有這篇文章。(在這裏幫小戴作作廣告:人品好、技術牛、外包費用低,咱們公司服務器維護外包給了他,配置各類服務器很是快,想學python與自動化運維的能夠上他的博客http://www.linuxyw.com/)html5
1、安裝經常使用工具包python
輸入下面命令,安裝各類經常使用工具包,能夠逐項直接輸入下面命令進行安裝(若是出現y/n/d選擇時,輸入y加回車就能夠了)linux
yum install -y pcre-devel yum install -y openssl openssl-devel yum install gcc gcc-c++ ncurses-devel perl -y yum -y install zlib zlib-devel yum install wget lrzsz libxml2 -y yum install kernel-devel libxslt-devel libpqxx-devel libffi-devel python-devel libpq-dev -y
在使用yum安裝各類工具包時,因爲使用的源默認是國外的,因此有時有一些源因爲網絡或什麼緣由會安裝不上,因此能夠經過更改yum安裝源來提高安裝效率,下面是使用網易源(阿里源在虛擬機上好像使用不了,若是使用阿里雲的話能夠替換爲阿里源)nginx
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup cd /etc/yum.repos.d/ wget -O CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo ## wget -O CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo yum makecache yum -y update
PS:若是Python已升級到3,更改yum源須要將python的軟連接指回2的版本(即輸入命令python -V可看到的是2.7版本),否則運行yum -y update後可能會出錯,導至yum沒法使用。另外,使用yum升級,好像會將內核一些程序也升級了。c++
2、安裝nginx服務web
首先在網上找到下面安裝包(若是下面組件版本對不上,可能會形成nginx安裝失敗)redis
nginx-1.10.3.tar.gz openssl-1.0.2n.tar.gz pcre-8.39.tar.gz zlib-1.2.11.tar.gz
將它們上傳到服務器:/usr/local/src 目錄下面,openssl、pcre和zlib這些組件不安裝問題也不大,不過這些經常使用的組件安裝好了,之後須要時就沒必要從新安裝了sql
一、安裝pcreshell
cd /usr/local/src mkdir /usr/local/pcre tar zxvf pcre-8.39.tar.gz cd pcre-8.39 ./configure --prefix=/usr/local/pcre make make install
二、安裝openssl
cd /usr/local/src mkdir /usr/local/openssl tar zxvf openssl-1.0.2n.tar.gz cd openssl-1.0.2n ./config --prefix=/usr/local/openssl make make install vi /etc/profile 在vi編輯器的最後面添加下面代碼(vi編輯器的使用請本身百度) export PATH=$PATH:/usr/local/openssl/bin 按esc鍵,輸入:wq! 保存退出 輸入下面代碼讓剛添加的代碼生效 source /etc/profile
三、安裝zlib
cd /usr/local/src mkdir /usr/local/zlib tar zxvf zlib-1.2.11.tar.gz cd zlib-1.2.11 ./configure --prefix=/usr/local/zlib make make install
四、安裝Nginx
groupadd www useradd -g www www -s /bin/false cd /usr/local/src tar zxvf nginx-1.10.3.tar.gz cd nginx-1.10.3 ./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2n --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.39 make make install
完成nginx安裝後,咱們能夠檢查一下nginx可否正常啓動
輸入nginx初次啓動命令:/usr/local/nginx/sbin/nginx
檢查nginx是否在進程中:ps -ef | grep nginx (能夠看到nginx已在服務器上正常 運行了)
檢查nginx啓動後點用的端口:netstat -antup | grep nginx
這時若是想要用瀏覽器訪問的話,須要先關閉防火牆才行
輸入命令:systemctl stop firewalld
而後打開瀏覽器,輸入地址:http://192.168.0.128/ 就能夠看到下面的頁面了(這個ip怎麼來的,請看上一篇《python服務器環境搭建(1)——本地服務器準備》,也能夠輸入ifconfig命令來查詢)
3、安裝supervisor(Python進程管理器)
由於supervisor目前只支持python2,因此得在升級到3以前進行安裝,否則會比較麻煩(文後附有升級到python3後,怎麼調用python2安裝的說明)
安裝以前須要先安裝python的pip(程序自動安裝程序)
輸入命令:curl https://bootstrap.pypa.io/get-pip.py | python (回車後就會自動下載pip並自動安裝)
完成後查看pip版本:pip -V
安裝supervisor:pip install supervisor
4、安裝postgresql
登陸postgresql官司網,獲取使用yum安裝的地址
在瀏覽器登陸進入:https://yum.postgresql.org/
能夠看到postgresql可使用yum安裝的列表
點擊你要安裝的版本連接,而後找到你要安裝的版本地址,將它複製出來
https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
安裝postgresql:yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
安裝postgresql服務與擴展包:yum install postgresql96-server postgresql96-contrib (若是是其餘版本,只須要修改中間對應的版本數字便可)
5、安裝redis
登陸http://download.redis.io/releases/ 選擇須要安裝的版本
進入tmp文件夾:cd /tmp/
而後再次輸入:wget http://download.redis.io/releases/redis-3.2.8.tar.gz
建立redis安裝文件夾:mkdir /usr/local/redis
解壓縮安裝包:tar -zxvf redis-3.2.8.tar.gz
進入安裝包文件夾:cd redis-3.2.8
執行安裝命令:make PREFIX=/usr/local/redis/ install
上面安裝命令執行完成,/usr/local/redis/目錄下就有個bin目錄,裏面放的是redis服務相關的可執行命令
複製redis配置文件到指定目錄:cp redis.conf /usr/local/redis
6、安裝python3.5.4版本(python2.7.5還能夠繼續使用)
PS:因爲升級到python3之後,在yum安裝一些軟件時(只是部分),可能這些軟件的安裝仍是使用python2來寫的,會致使沒法使用yum安裝,因此最好將相關內容先安裝好之後再進行升級
安裝python依賴包:
yum groupinstall "Development tools" yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel -y
下載Python3.5.4安裝包並進行安裝
cd /usr/local/src wget https://www.python.org/ftp/python/3.5.4/Python-3.5.4.tgz tar -zxvf Python-3.5.4.tgz cd Python-3.5.4 ./configure --prefix=/usr/local --enable-shared && make && make install
在運行Python以前須要配置庫:
echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf
ldconfig
備份python2.7版本bin
mv /usr/bin/python /usr/bin/python2.7.5
ln -s /usr/local/bin/python3 /usr/bin/python
完成安裝,輸入下面命令就能夠查看到當前安裝python的版本信息Python 3.5.4了
python --version
升級pip3安裝包
pip3 install --upgrade pip
修改python2.7版本運行的腳本連接,將如下文件全部用vi編輯器打開,將第一行的 #!/usr/bin/python 改爲 #!/usr/bin/python2.7.5
vi /usr/bin/yum vi /usr/sbin/tuned vi /usr/libexec/urlgrabber-ext-down
批量安裝python3各種經常使用包
輸入命令:vi requirements.txt 粘貼下面內容
amqp anyjson argh asn1crypto Beaker beakeredis beautifulsoup4 bleach bottle bs4 cffi click cryptography cycler decorator dynaconf enum-compat eventlet flasgger Flask gevent greenlet html5lib idna itsdangerous Jinja2 jpush jsonschema kombu lxml MarkupSafe matplotlib mistune mock Naked nameko networkx numpy olefile packaging panda pandas paramiko pathtools path.py pbr Pillow print psycopg2 psycopg2-binary pyasn1 pycparser pycrypto pycryptodome pyparsing python-dateutil python-alipay-sdk python-box python-dateutil python-dotenv pytz PyWavelets PyYAML qrcode redis reload requests scikit-image scipy shellescape six typing tushare watchdog webencodings Werkzeug wrapt XlsxWriter yagmail
保存後,輸入命令:pip3 install -r requirements.txt
安裝程序會將裏面經常使用的依賴包所有安裝,方便快捷
PS:使用源碼包編譯安裝python3之後,還會保留原python2的相關命令,因此直接使用pip安裝的是python2的包,要安裝python3的包,必須使用pip3
7、安裝uwsgi
安裝pepl源(不安裝有時安裝相關模塊時會找不到源)
yum -y install epel-release
安裝uwsgi依賴包
yum -y install uwsgi-devel
使用python的pip再安裝一次uwsgi(這樣能夠避免後續安裝後,uwsgi運行時執行的是python2.7版本的問題)
pip3 install uwsgi
下載uwsgi安裝包
cd /usr/local/src/ wget https://projects.unbit.it/downloads/uwsgi-2.0.18.tar.gz tar zxvf uwsgi-2.0.18.tar.gz cd uwsgi-2.0.18 make -j 8 python3 uwsgiconfig.py --build cp uwsgi /usr/bin/
修改配置文件:vi buildconf/core.ini (在 buildconf/core.ini 文件中添加下面內容)
plugin_dir = /etc/uwsgi
bin_name = /usr/bin/uwsgi
建立uwsgi配置存放文件夾
mkdir /etc/uwsgi
編譯 python3.5 版本的uwsgi plugins(若是你修改了python35爲其餘名稱,記錄同步修改下面複製的文件名)
python3 uwsgiconfig.py --plugin plugins/python core python35
把生成好的*python35*.so複製到/usr/lib64/uwsgi/下面
cp /etc/uwsgi/python35_plugin.so /usr/lib64/uwsgi/
cp /etc/uwsgi/python35_plugin.so /usr/local/src/uwsgi-2.0.18
查找一下你的Python3安裝路徑,並將python35_plugin.so複製到python3安裝根目錄下
能夠經過執行python3命令,進入python命令模式,而後導入sys文件(import sys),跟着打印系統路徑查看(print(sys.path)),而後用cp命令將文件複製到python3安裝目錄下面就能夠了
輸入命令:uwsgi --version 就能夠查詢到安裝的版本了
8、安裝svn服務
因爲已升級到python3了,直接使用yum安裝會出現錯誤,因此咱們須要操做一下,改回python2版本(PS:這是一個安裝了Python3後,須要使用Python2進行安裝軟件的例子)
刪除以前建立的python3連接:rm -rf /usr/bin/python
將以前備份的python2.7.5複製爲python:cp /usr/bin/python2.7.5 /usr/bin/python
輸入安裝命令:yum install subversion
查看svn安裝的版本:svnserve --version
PS:必定要將python連接指向python2,否則執行的仍是python3版本的命令
將python連接從新指向python3.5.2
刪除剛剛複製的python連接:rm -rf /usr/bin/python
建立新的連接指向新安裝的python3.5.4:ln -s /usr/local/bin/python3 /usr/bin/python
python服務器須要的相關軟件基本上就安裝完成了(固然redis與postgresql並非python服務器運行的必要軟件,這是我本身框架所須要的),具體測試與配置,下一篇再寫
版權聲明:
本文由AllEmpty原創併發佈於博客園,版權與博客園共同全部,歡迎轉載,未經本人贊成必須保留此段聲明,且在文章頁面明顯位置給出原文連接,不然保留追究法律責任的權利。若有問題,能夠經過1654937@qq.com 聯繫我,很是感謝。
發表本編內容,主要是爲了和你們共同窗習共同進步,有興趣的朋友能夠加加Q羣:669058475(本羣已滿)、733466321(能夠加2羣),你們一塊兒探討。
更多內容,敬請觀注博客:http://www.cnblogs.com/EmptyFS/