python服務器環境搭建(2)——安裝相關軟件


  在上一篇我們在本地的虛擬服務器上安裝好CentOS7后,我們的python web服務、自定義的python service或python腳本需要在服務器上運行,還需要在服務器安裝各種相關的軟件才行,一般來說,想要實現自動化部署需求,還需要安裝nginx、svn、uwsgi、python3.0(系統自帶python2.7.5)、supervisor、postgresql、pgbouncer、redis(nosql緩存根據自己代碼的需要而定)。

  PS:本人不是專業的運維,只能根據自己的研究弄弄單機版的python web服務器,而對於多服務器自動化同步的部署、服務器的監控、Linux服務器的安全、服務器的調優(很多服務安裝不是重點,能將各種參數運用配置到洽到好處才是難點),大家最好找專業的運維工程師來處理。再一次感謝小戴同學的盡心幫助,讓我學會了很多服務器運維方面的知識,才有這篇文章。(在這里幫小戴做做廣告:人品好、技術牛、外包費用低,我們公司服務器維護外包給了他,配置各種服務器非常快,想學python與自動化運維的可以上他的博客http://www.linuxyw.com/)

 

一、nginx安裝

  首先登錄官網下載安裝包:

  http://nginx.org/en/download.html

  

  復制下載地址:http://nginx.org/download/nginx-1.10.3.tar.gz

 

  打開SSH Secure Shell Client,登錄服務

  

  nginx安裝,需要安裝pcre開發包,openssl,gcc編譯源碼所需的工具,zlib庫,網絡下載工具等

  可以逐項直接輸入下面命令進行安裝(如果出現y/n/d選擇時,輸入y加回車就可以了)

  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 -y

  yum install wget -y

  yum install kernel-devel libxslt-devel libpqxx-devel libffi-devel python-devel zlib-devel openssl-devel libpq-dev -y

 

  為了方便下載內容的管理,而不是將服務器里的文件搞的很亂,我們最好統一將文件下載到tmp文件夾或你自己指定的文件夾里

  輸入:cd /tmp/ 進入tmp文件夾

  然后再次輸入:wget http://nginx.org/download/nginx-1.10.3.tar.gz 就可以看到nginx很快下載下來了

  

  

  然后我們對nginx-1.10.3.tar.gz進行解壓縮操作

  輸入命令:tar -zxvf nginx-1.10.3.tar.gz

  解壓完后輸入命令:ll   就會看到文件夾里多了一個 nginx-1.10.3 文件夾

  

  然后進入這個文件夾進行安裝,安裝時不指定路徑的話,會默認安裝到/usr/local/nginx/這個路徑下

  添加nginx使用的用戶組:groupadd www

  添加nginx使用的帳號:useradd -g www www -s /bin/false

 

  輸入命令:cd nginx-1.10.3

  輸入nginx安裝命令:./configure && make && make install  (這是默認安裝,如果你想要附加nginx的相關插件的話--比如pcre、zlib等,需要另外安裝其他包,並在這里進行編譯

  

  完成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命令來查詢)

  

 

 

二、安裝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

 

三、安裝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  (如果是其他版本,只需要修改中間對應的版本數字即可)

  

四、安裝pgbouncer(postgresql連接池工具)

  上官網選擇需要安裝的版本,並下載安裝包:https://pgbouncer.github.io/downloads/

  

  首先需要安裝依賴包:yum install -y libevent-devel

  進入tmp文件夾:cd /tmp/ 

  然后再次輸入:wget https://pgbouncer.github.io/downloads/files/1.7.2/pgbouncer-1.7.2.tar.gz

  解壓縮安裝包:tar -zxvf pgbouncer-1.7.2.tar.gz

  進入安裝包文件夾:cd pgbouncer-1.7.2

  執行安裝命令:./configure && make && make install

 

五、安裝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

 

六、安裝python3.5.2版本(python2.7.5還可以繼續使用)

  PS:由於升級到python3以后,在yum安裝一些軟件時(只是部分),可能這些軟件的安裝還是使用python2來寫的,會導致無法使用yum安裝,所以最好將相關內容先安裝好以后再進行升級

  首先還是登錄官網,找到對應的下載鏈接

  https://www.python.org/downloads/

  

  點擊進入下載頁面

  

  將下載地址復制出來:https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

  輸入:cd /tmp/ 進入tmp文件夾

  然后輸入命令下載源文件:wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz

  

  輸入命令進行解壓縮:tar -zxvf Python-3.5.2.tgz

  進入解壓后的文件夾:cd Python-3.5.2

  

   安裝Python3.5.2:./configure && make && make install

   

  完成python3.5.2的安裝,這時實現上在系統中,它和python2.7.5是同時存在的,現在直接操作python進入的還是舊版本(可以輸入命令:python -V 查看當前的python版本),還需要做下面配置才行

  輸入命令重命名python軟鏈接:mv /usr/bin/python /usr/bin/python2.7.5

  創建新的鏈接指向新安裝的python3.5.2:ln -s /usr/local/bin/python3.5 /usr/bin/python

  這時再輸入命令:python -V 就可以看到當前的python版本為3.5.2了

  

  升級以后,由於python的版本不同,yum安裝命令就失效用不了了,所以我們還需要修改yum的配置

  輸入命令:vi /usr/bin/yum

  進入vi編輯器后,按一下鍵盤 i  就可以進入編輯模式,修改里面的內容

  將第一行的#!/usr/bin/python 改為 #!/usr/bin/python2.7.5

  修改完成后,按一下鍵盤的 Esc 鍵,退出編輯,然后按 Shift + :  進入vi編輯器的命令模式,輸入wq + 回車鍵,就可以保存並退出了,這樣yum命令又可以正常使用了

   

  pip升級到最新版(由於有一些python3模塊的安裝需要用到pip的最新版,所以需要將pip升級到最新版本)

  輸入命令:pip3 install --upgrade pip

 

  批量安裝python依賴包:

  輸入命令:vi requirements.txt    粘貼下面內容

 

argh
asn1crypto
Beaker
beakeredis
bleach
bottle
cffi
click
cryptography
cycler
gevent
greenlet
html5lib
idna
itsdangerous
Jinja2
jpush
lxml
MarkupSafe
matplotlib
numpy
packaging
paramiko
pathtools
Pillow
print
psycopg2
pyasn1
pycparser
pycrypto
pyparsing
python-dateutil
pytz
PyYAML
redis
reload
requests
six
typing
watchdog
webencodings
Werkzeug
XlsxWriter

 

  保存后,輸入命令:pip3 install -r requirements.txt

  安裝程序會將里面常用的依賴包全部安裝,方便快捷

 

七、安裝uwsgi

 

   輸入安裝命令:yum install uwsgi-plugin-python

  輸入安裝命令:yum install uwsgi-plugin-python3

  輸入安裝命令:pip3 install uwsgi

  輸入命令:uwsgi --version 就可以查詢到安裝的版本了

 

八、安裝svn服務

  由於已升級到python3了,直接使用yum安裝會出現錯誤,所以我們需要操作一下,改回python2版本

  刪除之前創建的python3鏈接:rm /usr/bin/python

  將之前備份的python2.7.5復制為python:cp /usr/bin/python2.7.5 /usr/bin/python 

  輸入安裝命令:yum install subversion

  查看svn安裝的版本:svnserve --version

 

  另外,升級到python3以后,如果還需要使用pip安裝python2的一些模塊時,進行上面操作后,就可以使用下命令執行pip進行安裝

  pip命令:/usr/bin/pip2 install xxx

  PS:一定要將python鏈接指向python2,不然執行的還是python3版本的命令

 

  將python鏈接重新指向python3.5.2

  刪除剛剛復制的python鏈接:rm /usr/bin/python

  創建新的鏈接指向新安裝的python3.5.2:ln -s /usr/local/bin/python3.5 /usr/bin/python

 

  python服務器需要的相關軟件基本上就安裝完成了(當然redis與postgresql並不是python服務器運行的必要軟件,這是我自己框架所需要的),具體測試與配置,下一篇再寫

 

 

 版權聲明:

  本文由AllEmpty原創並發布於博客園,版權與博客園共同所有,歡迎轉載,

 

轉自:http://www.cnblogs.com/EmptyFS/p/6558800.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM