VMware+CentOS+Apache+php+python+Django+gunicorn構成
16118 ワード
ターゲット:win 7にvmwareをインストールし、2つの仮想マシン、centos 6を新規作成します.6/7.0、仮想マシンでpythonサイトとphpサイトを1つのapacheに同時に構成する.1.vmwareをインストールし、CentOS 6を使用する2つの仮想マシンを新規作成します.6およびCentOS 7.0.インストールが完了すると、centos 6とcentos 7とそれぞれ命名する.
注意:仮想マシンのネットワーク接続はブリッジモードに設定されています一部の操作にはsuperuser権限が必要であるため、便宜上suが権限を取得する.以下のすべての操作にsuperuser権限があります. は、win 7とcentosが連通し、centosがインターネットに直接アクセスできるように仮想マシンのネットワークを構成する.centos 6は特別な設定を必要としないでよい.centos 7がネットワークに接続できない場合は、まず端末にifconfigを入力し、ネットワークカードの名前を見つけます.私のはeno 16777736です.次に、NICの構成 を変更する.
最後の行のONBOOT=noをONBOOT=yesに変更してネットワークを再起動
これでcentos 7はネットワークに接続できます. centosその他の設定.便利のために、私は直接仮想機の中で操作するのではありません(マウスを切るのは面倒で、私はvmware toolsをインストールしていないで、sftpを使ってファイルを転送します)、xshellとsshを使って仮想機に接続して、だからcentosはGUIインタフェースをオフにすることができて、ただ命令の行の境界面で、システムの資源を節約します.centos 6: 必要な開発ツールセットとphpをインストールする.使用コマンド: 次はpythonのインストールです.この手順は複雑だ.pythonの公式サイトにはwindowsの下のpythonインストールパッケージがあります.linuxではソースコードでしかコンパイルできません.linuxリリース版のソフトウェアウェアハウスには、コンパイルとパッケージ化されたインストールパッケージがあります.しかし、バージョンが低く、これらのインストールパッケージを使用するインストールはlinuxが持参したpythonを上書きします.多くの問題を引き起こす.ほとんどのlinuxリリース版にはpython(バージョンが低い)が付属しており、yum、rpm、apt-getなどのlinuxコマンドはpythonに依存している.ソフトウェアウェアハウスのインストールパッケージを直接使用すると、既存のpythonが上書きされ、システムコマンドが無効になります.ここではソースコードのコンパイルインストールを採用する.まずpython 2をダウンロードします.7.11. コンパイルする前に、依存パッケージをインストールします:
まずpython libを格納するディレクトリを作成し、その後
次に、新しくインストールされたpythonに新しいソフト接続を確立します(古いpythonを上書きしないでください.新しい名前を付けてください).ここではpython 2711 pythonサードパーティライブラリをインストールします.linuxはpythonを持参し、yumなどのコマンドは持参pythonを使用するため、yumコマンドでインストールpython-pip、supervisor、gunicornなどのライブラリは古いpythonにインストールされている.yumを使用するpythonライブラリをインストールすることはできません(supervisorはどのpythonを使用するかは関係ありません).python 2711を使用してsetuptoolsとpipをインストール、pipを使用してpythonライブラリをインストールするには、まずpythonを使用します.comはsetuptoolsとpipソースパッケージをダウンロードし、setuptoolsをインストールしてからpipをインストールします.pythonソースコードからサードパーティ製ライブラリをインストールする方法は、ソースパッケージを解凍し、ディレクトリに入り、python setupを実行する.py installがpipをインストールした後、pythonインストールディレクトリのbinディレクトリにpipコマンドがあります.pipのためにソフト接続を確立して便利に使用できます.システムに付属するpythonと区別するために、pip 2711で名前を付けます. djangoでウェブサイトを作ります. phpでウェブサイトを作ります.簡単なphpページを作ります.
次のように入力します. apacheをインストールする.次のコマンドを実行します:
注意しなければならないのはcentos 6がapache 2を持っていることです.2,centosがyumでインストールしたapacheは2.4バージョンで、いくつかの構成に違いがありますが、後で説明します.以下に、いくつかの有用なコマンドを示します.構成centos 6のapache:サーバNameをlocalhost:80に設定し、その他の設定を必要に応じて変更し(サーバAdminメールボックスなど)、下部に を追加します.構成centos 7のapache構成、構成ファイルの下部に を追加 centosはデフォルトでファイアウォールとSELinuxを開き、まず一時的に閉じます.そうしないと、サイトが導入されてからアクセスできません.phpとpythonプログラムを格納ディレクトリの権限を読み取り可能に変更する.次のコマンドは、 を参照してください. win 7上のHOSTSファイルを修正する.私の構成は以下の通りです:
自分の仮想マシンのIP構成によると、WIN 7のブラウザでこれらのドメイン名にアクセスすることは、実際には仮想マシンのウェブサイトにアクセスすることになる.現在phpサイトはすでにアクセス可能であり、apacheも逆エージェントを行い、一部の要求を8888ポートに転送し、gunicornでpythonプログラムを起動し、8888ポートを傍受すればよい.cdから
meinheldを使用する場合は、これで完成です.WIN 7ブラウザにそれぞれ と入力
効果が見えます
注意:仮想マシンのネットワーク接続はブリッジモードに設定されています
vim /etc/sysconfig/network-scripts/ifcfg-eno16777736
HWADDR=00:0C:29:2D:A6:8F
TYPE=Ethernet
BOOTPROTO=dhcp
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=eff0f28b-5583-431e-9748-308bbc3241fe
ONBOOT=no
最後の行のONBOOT=noをONBOOT=yesに変更してネットワークを再起動
systemctl restart network
systemctl restart NetworkManger
これでcentos 7はネットワークに接続できます.
vim /etc/inittab
id:5:initdefault
のうちの5を3 centos 7:コマンドsystemctl set-default multi-user.target
を使用するcentosを再起動すると、デフォルトでは文字インタフェースに入り、xshellまたはsecurecCRTまたは他のツールで接続して使用する.yum groupinstall "Development tools"
yum install php php-devel
yum install zlib-devel
yum install bzip2-devel
yum install openssl-devel
yum install ncurses-devel
yum install sqlite-devel
まずpython libを格納するディレクトリを作成し、その後
mkdir /usr/local/python/lib
を使用してソースパッケージを解凍し、コンパイルします../configure --enable-shared --prefix=/usr/local/python LDFLAGS="-Wl,-rpath /usr/local/python/lib"
make && make install
次に、新しくインストールされたpythonに新しいソフト接続を確立します(古いpythonを上書きしないでください.新しい名前を付けてください).ここではpython 2711
ln -s /usr/local/python/bin/python /usr/bin/python2711
を使って、インストールが成功したかどうかを検証します.端末にpythonとpython 2711をそれぞれ入力すると、pythonのインタラクティブなインタフェースに入り、pythonバージョンが表示されます.pythonが古いバージョンを指し、python 2711が新しいバージョンを指すと正しいです.exit()を入力して車に戻ると終了する.ln -s /usr/local/python/bin/pip /usr/bin/pip2711
、pipを使用してpythonサードパーティライブラリをインストールします.pip2711 install django==1.8.4
pip2711 install gunicorn==18
/home/qiu
ディレクトリ(自分のディレクトリ)の下に新しいディレクトリworkspaceを作成し、workspaceで/usr/local/python/bin/django-admin startproject p1
を実行すると、p 1を使用してp 1というプロジェクトが構築され、p 1ディレクトリ構造は以下の通りです.p1
-- db.sqlite3
-- manage.py
-- p1
-- __init__.py
-- url.py
-- settings.py
-- wsgi.py
cd /home/qiu
mkdir php
cd php
vim 1.php
次のように入力します.
<html>
<body>
echo "My first PHP script!";
?>
body>
html>
yum install httpd # centos6 httpd,
yum install httpd-devel # centos6/7
注意しなければならないのはcentos 6がapache 2を持っていることです.2,centosがyumでインストールしたapacheは2.4バージョンで、いくつかの構成に違いがありますが、後で説明します.以下に、いくつかの有用なコマンドを示します.
rpm -qa | grep httpd # apache
httpd -l # apache c
httpd -M # apache
lsof -i tcp:80 # 80
netstat -ntlp #
# php
#
ServerAdmin [email protected]
# php
DocumentRoot "/home/qiu/php"
#
ServerName php.test.com
#
ErrorLog "logs/ce.err"
CustomLog "logs/ce.access" common
#
Options FollowSymLinks
AllowOverride All
Order deny,allow
Allow from all
# ,python
ServerAdmin [email protected]
ServerName gunicorn.test.com
ProxyRequests Off
Order deny,allow
Allow from all
# /static/ url ,apache (img,css,js )
ProxyPass /static/ !
# 8888
ProxyPass / http://127.0.0.1:8888/
ProxyPassReverse / http://127.0.0.1:8888/
#
Alias /static/ /usr/local/python/lib/python2.7/site-packages/django/contrib/admin/static/
Order allow,deny
Options Indexes
Allow from all
IndexOptions FancyIndexing
NAMEVirtualHost *:80
# php
DocumentRoot /home/qiu/php
ServerName php.test2.com
# apache ,python
ServerName gunicorn.test2.com
ProxyRequests Off
Order deny,allow
Allow from all
ProxyPass / http://127.0.0.1:8888/
ProxyPassReverse / http://127.0.0.1:8888/
chmod 777 /home/qiu/workspace/p1
chmod 777 /home/qiu/php
/usr/sbin/sestatus -v | grep SEL # SELinux , SELinuxstatus enable
setenforce 0 # SELinux
# centos6 :
service stop iptables #
chkconfig iptables off #
# centos7 :
systemctl stop firewalld.service #
systemctl disable firewalld.service #
192.168.248.61 php.test.com
192.168.248.61 gunicorn.test.com
192.168.248.55 php.test2.com
192.168.248.55 gunicorn.test2.com
自分の仮想マシンのIP構成によると、WIN 7のブラウザでこれらのドメイン名にアクセスすることは、実際には仮想マシンのウェブサイトにアクセスすることになる.
/home/qiu/workspace/p1
のディレクトリの下で、実行:/usr/bin/python/bin/gunicorn p1.wsgi:application -b 127.0.0.1:8888
wsgiはp 1/p 1/wsgiを指す.pyファイルこの起動方式はgunicornが持参したsyncサーバをデフォルトで使用し、性能が悪く、gevent、eventlet、meinheldなどの他のサーバを使用することができる.pipでインストールする必要があります:pip2711 install greenlet # 3 greenlet,
pip2711 install gevent
pip2711 install eventlet
pip2711 install meinheld
meinheldを使用する場合は、
/usr/bin/python/bin/gunicorn -k egg:meinheld#gunicorn_worker p1.wsgi:application -b 127.0.0.1:8888
geventまたはeventletを使用する場合は、/usr/bin/python/bin/gunicorn -k gevent p1.wsgi:application -b 127.0.0.1:8888
/usr/bin/python/bin/gunicorn -k eventlet p1.wsgi:application -b 127.0.0.1:8888
と書くことができます.php.test.com
gunicorn.test.com
php.test2.com
gunicorn.test2.com
効果が見えます