CentOS7+nginx+apache2.4+Python3の環境を作る-apacheとPython3のインストール

まずはapacheとpython3のインストールをしてみたいと思います。環境は↓の通りです。

環境

  • ベンダー:さくらのクラウド
  • OS:CentOS7
  • フロント:nginx(80番ポート)
  • バックエンド:Apache2.4(8080番ポート)
  • Python:3系(pyenvを使用)
  • フレームワーク:bottle(8081番ポート)

基本的にsudo環境にする予定です。

手順

基本的には以下の手順になります

  1. Apacheのインストール←ここ
  2. Python(pyenv)のインストール←ここ
  3. pipの設定
  4. Apache+Pythonの連携
  5. nginxを使ってリバースプロキシ

今回の記事について

今回は手順の1と2を行います。

Apacheのインストール

Apacheのインストールを行います。今まではrootでやっていましたが今回は違います

[macan@localhost ~]$ sudo yum install httpd

読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
epel/x86_64/metalink                                                                                                                                                                                                   | 7.3 kB  00:00:00     
 * elrepo: ftp.ne.jp
 * epel: ftp.iij.ad.jp
base                                                                                                                                                                                                                   | 3.6 kB  00:00:00     
elrepo                                                                                                                                                                                                                 | 2.9 kB  00:00:00     
epel                                                                                                                                                                                                                   | 3.2 kB  00:00:00     
extras                                                                                                                                                                                                                 | 3.4 kB  00:00:00     
updates                                                                                                                                                                                                                | 3.4 kB  00:00:00     
epel/x86_64/updateinfo         FAILED                                          
http://ftp.iij.ad.jp/pub/linux/Fedora/epel/7/x86_64/repodata/a61f8647af32e93a9f55cfe1aabb93e9a6731df0b5f56308d80a714f0c64ce42-updateinfo.xml.bz2: [Errno 14] HTTP Error 404 - Not Found                     ]  0.0 B/s |    0 B  --:--:-- ETA 
他のミラーを試します。
To address this issue please refer to the below wiki article 

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

epel/x86_64/primary            FAILED                                          
http://ftp.iij.ad.jp/pub/linux/Fedora/epel/7/x86_64/repodata/77522a7efb909154b1032ba543be63704b1b8aef163ad2ed9ab1c10e2bf30b57-primary.xml.gz: [Errno 14] HTTP Error 404 - Not Found                         ]  0.0 B/s |    0 B  --:--:-- ETA 
他のミラーを試します。
(1/2): epel/x86_64/updateinfo                                                                                                                                                                                          | 932 kB  00:00:00     
(2/2): epel/x86_64/primary                                                                                                                                                                                             | 3.6 MB  00:00:01     
epel                                                                                                                                                                                                                              12698/12698
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd.x86_64 0:2.4.6-80.el7.centos.1 を インストール
--> 依存性の処理をしています: httpd-tools = 2.4.6-80.el7.centos.1 のパッケージ: httpd-2.4.6-80.el7.centos.1.x86_64
--> 依存性の処理をしています: /etc/mime.types のパッケージ: httpd-2.4.6-80.el7.centos.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ httpd-tools.x86_64 0:2.4.6-80.el7.centos.1 を インストール
---> パッケージ mailcap.noarch 0:2.1.41-2.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

==============================================================================================================================================================================================================================================
 Package                                                  アーキテクチャー                                    バージョン                                                           リポジトリー                                          容量
==============================================================================================================================================================================================================================================
インストール中:
 httpd                                                    x86_64                                              2.4.6-80.el7.centos.1                                                updates                                              2.7 M
依存性関連でのインストールをします:
 httpd-tools                                              x86_64                                              2.4.6-80.el7.centos.1                                                updates                                               90 k
 mailcap                                                  noarch                                              2.1.41-2.el7                                                         base                                                  31 k

トランザクションの要約
==============================================================================================================================================================================================================================================
インストール  1 パッケージ (+2 個の依存関係のパッケージ)

総ダウンロード容量: 2.8 M
インストール容量: 9.6 M
Is this ok [y/d/N]: y
Downloading packages:
(1/3): mailcap-2.1.41-2.el7.noarch.rpm                                                                                                                                                                                 |  31 kB  00:00:00     
(2/3): httpd-tools-2.4.6-80.el7.centos.1.x86_64.rpm                                                                                                                                                                    |  90 kB  00:00:00     
(3/3): httpd-2.4.6-80.el7.centos.1.x86_64.rpm                                                                                                                                                                          | 2.7 MB  00:00:01     
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                                          2.7 MB/s | 2.8 MB  00:00:01     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : httpd-tools-2.4.6-80.el7.centos.1.x86_64                                                                                                                                                                      1/3 
  インストール中          : mailcap-2.1.41-2.el7.noarch                                                                                                                                                                                   2/3 
  インストール中          : httpd-2.4.6-80.el7.centos.1.x86_64                                                                                                                                                                            3/3 
  検証中                  : mailcap-2.1.41-2.el7.noarch                                                                                                                                                                                   1/3 
  検証中                  : httpd-tools-2.4.6-80.el7.centos.1.x86_64                                                                                                                                                                      2/3 
  検証中                  : httpd-2.4.6-80.el7.centos.1.x86_64                                                                                                                                                                            3/3 

インストール:
  httpd.x86_64 0:2.4.6-80.el7.centos.1                                                                                                                                                                                                        

依存性関連をインストールしました:
  httpd-tools.x86_64 0:2.4.6-80.el7.centos.1                                                                                   mailcap.noarch 0:2.1.41-2.el7                                                                                  

完了しました!

インストールできました。

続いてhttpd-develのインストールを行います。

[macan@localhost ~]$ sudo yum install httpd-devel
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
 * elrepo: ftp.ne.jp
 * epel: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ httpd-devel.x86_64 0:2.4.6-80.el7.centos.1 を インストール
--> 依存性の処理をしています: apr-util-devel のパッケージ: httpd-devel-2.4.6-80.el7.centos.1.x86_64
--> 依存性の処理をしています: apr-devel のパッケージ: httpd-devel-2.4.6-80.el7.centos.1.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ apr-devel.x86_64 0:1.4.8-3.el7_4.1 を インストール
---> パッケージ apr-util-devel.x86_64 0:1.5.2-6.el7 を インストール
--> 依存性の処理をしています: openldap-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64
--> 依存性の処理をしています: libdb-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64
--> 依存性の処理をしています: expat-devel(x86-64) のパッケージ: apr-util-devel-1.5.2-6.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ expat-devel.x86_64 0:2.1.0-10.el7_3 を インストール
---> パッケージ libdb-devel.x86_64 0:5.3.21-24.el7 を インストール
---> パッケージ openldap-devel.x86_64 0:2.4.44-15.el7_5 を インストール
--> 依存性の処理をしています: cyrus-sasl-devel(x86-64) のパッケージ: openldap-devel-2.4.44-15.el7_5.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ cyrus-sasl-devel.x86_64 0:2.1.26-23.el7 を インストール
--> 依存性の処理をしています: cyrus-sasl(x86-64) = 2.1.26-23.el7 のパッケージ: cyrus-sasl-devel-2.1.26-23.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ cyrus-sasl.x86_64 0:2.1.26-23.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

============================================================================================================================================================================================================================================================================================================================
 Package                                                                         アーキテクチャー                                                      バージョン                                                                              リポジトリー                                                            容量
============================================================================================================================================================================================================================================================================================================================
インストール中:
 httpd-devel                                                                     x86_64                                                                2.4.6-80.el7.centos.1                                                                   updates                                                                196 k
依存性関連でのインストールをします:
 apr-devel                                                                       x86_64                                                                1.4.8-3.el7_4.1                                                                         base                                                                   188 k
 apr-util-devel                                                                  x86_64                                                                1.5.2-6.el7                                                                             base                                                                    76 k
 cyrus-sasl                                                                      x86_64                                                                2.1.26-23.el7                                                                           base                                                                    88 k
 cyrus-sasl-devel                                                                x86_64                                                                2.1.26-23.el7                                                                           base                                                                   310 k
 expat-devel                                                                     x86_64                                                                2.1.0-10.el7_3                                                                          base                                                                    57 k
 libdb-devel                                                                     x86_64                                                                5.3.21-24.el7                                                                           base                                                                    38 k
 openldap-devel                                                                  x86_64                                                                2.4.44-15.el7_5                                                                         updates                                                                803 k

トランザクションの要約
============================================================================================================================================================================================================================================================================================================================
インストール  1 パッケージ (+7 個の依存関係のパッケージ)

総ダウンロード容量: 1.7 M
インストール容量: 6.8 M
Is this ok [y/d/N]: y
Downloading packages:
(1/8): apr-util-devel-1.5.2-6.el7.x86_64.rpm                                                                                                                                                                                                                                                         |  76 kB  00:00:00
(2/8): apr-devel-1.4.8-3.el7_4.1.x86_64.rpm                                                                                                                                                                                                                                                          | 188 kB  00:00:00
(3/8): cyrus-sasl-2.1.26-23.el7.x86_64.rpm                                                                                                                                                                                                                                                           |  88 kB  00:00:00
(4/8): expat-devel-2.1.0-10.el7_3.x86_64.rpm                                                                                                                                                                                                                                                         |  57 kB  00:00:00
(5/8): cyrus-sasl-devel-2.1.26-23.el7.x86_64.rpm                                                                                                                                                                                                                                                     | 310 kB  00:00:00
(6/8): libdb-devel-5.3.21-24.el7.x86_64.rpm                                                                                                                                                                                                                                                          |  38 kB  00:00:00
(7/8): httpd-devel-2.4.6-80.el7.centos.1.x86_64.rpm                                                                                                                                                                                                                                                  | 196 kB  00:00:00
(8/8): openldap-devel-2.4.44-15.el7_5.x86_64.rpm                                                                                                                                                                                                                                                     | 803 kB  00:00:00
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
合計                                                                                                                                                                                                                                                                                        1.6 MB/s | 1.7 MB  00:00:01
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  インストール中          : apr-devel-1.4.8-3.el7_4.1.x86_64                                                                                                                                                                                                                                                            1/8
  インストール中          : expat-devel-2.1.0-10.el7_3.x86_64                                                                                                                                                                                                                                                           2/8
  インストール中          : cyrus-sasl-2.1.26-23.el7.x86_64                                                                                                                                                                                                                                                             3/8
  インストール中          : cyrus-sasl-devel-2.1.26-23.el7.x86_64                                                                                                                                                                                                                                                       4/8
  インストール中          : openldap-devel-2.4.44-15.el7_5.x86_64                                                                                                                                                                                                                                                       5/8
  インストール中          : libdb-devel-5.3.21-24.el7.x86_64                                                                                                                                                                                                                                                            6/8
  インストール中          : apr-util-devel-1.5.2-6.el7.x86_64                                                                                                                                                                                                                                                           7/8
  インストール中          : httpd-devel-2.4.6-80.el7.centos.1.x86_64                                                                                                                                                                                                                                                    8/8
  検証中                  : apr-devel-1.4.8-3.el7_4.1.x86_64                                                                                                                                                                                                                                                            1/8
  検証中                  : httpd-devel-2.4.6-80.el7.centos.1.x86_64                                                                                                                                                                                                                                                    2/8
  検証中                  : apr-util-devel-1.5.2-6.el7.x86_64                                                                                                                                                                                                                                                           3/8
  検証中                  : libdb-devel-5.3.21-24.el7.x86_64                                                                                                                                                                                                                                                            4/8
  検証中                  : openldap-devel-2.4.44-15.el7_5.x86_64                                                                                                                                                                                                                                                       5/8
  検証中                  : cyrus-sasl-2.1.26-23.el7.x86_64                                                                                                                                                                                                                                                             6/8
  検証中                  : cyrus-sasl-devel-2.1.26-23.el7.x86_64                                                                                                                                                                                                                                                       7/8
  検証中                  : expat-devel-2.1.0-10.el7_3.x86_64                                                                                                                                                                                                                                                           8/8

インストール:
  httpd-devel.x86_64 0:2.4.6-80.el7.centos.1

依存性関連をインストールしました:
  apr-devel.x86_64 0:1.4.8-3.el7_4.1         apr-util-devel.x86_64 0:1.5.2-6.el7         cyrus-sasl.x86_64 0:2.1.26-23.el7         cyrus-sasl-devel.x86_64 0:2.1.26-23.el7         expat-devel.x86_64 0:2.1.0-10.el7_3         libdb-devel.x86_64 0:5.3.21-24.el7         openldap-devel.x86_64 0:2.4.44-15.el7_5

完了しました!

無事インストール完了です

バージョン確認

Apacheのバージョンを確認してみます

[macan@localhost ~]$ httpd -v
Server version: Apache/2.4.6 (CentOS)

2.4.6とでてます。ちゃんとインストールできてます。

起動してみる

Apacheのテストページを表示します

[macan@localhost ~]$ sudo service httpd start
Redirecting to /bin/systemctl start httpd.service

起動しているか確認
[macan@localhost ~]$ sudo systemctl status httpd
● httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since 日 2018-11-11 14:45:58 JST; 1min 7s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 16901 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           ├─16901 /usr/sbin/httpd -DFOREGROUND
           ├─16902 /usr/sbin/httpd -DFOREGROUND
           ├─16903 /usr/sbin/httpd -DFOREGROUND
           ├─16904 /usr/sbin/httpd -DFOREGROUND
           ├─16905 /usr/sbin/httpd -DFOREGROUND
           └─16906 /usr/sbin/httpd -DFOREGROUND

起動しているので問題なさそうです。

ブラウザでアクセス

さくらのクラウドでこのhttp://IPアドレス/でテストページが見えない場合はfirewallの確認をします。デフォルトで起動しているのでこの場合はポート80を解放してあげてください

firewallの確認・追加

[macan@localhost ~]$ sudo firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources: 
  services: ssh dhcpv6-client
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

sshぐらいしか許可されていないです。というわけでhttpを許可します

[macan@localhost ~]$ sudo firewall-cmd --permanent --add-service=http
success
[macan@localhost ~]$ sudo firewall-cmd --reload
success

リロードもします。これで問題無く見られるようになります。次はpyenvのインストールになります

pyenvのインストール

pyenvはCentOSのシステム全体にpyenvのインストールから実行までを見てやります。

pyenvに必要なライブラリのインストール

gitなどのライブラリをインストールします

[macan@localhost ~]$ sudo yum install git zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl-devel

多いので割愛

必要なライブラリをインストールしました。ここからはrootで作業します
※rootにしたのはsuro権限ではインストールができなかったりなかったりしたためですsudo権限がそのままroot権限の場合は問題無くできます。

[root@localhost ~]# git clone git://github.com/yyuu/pyenv.git /usr/local/pyenv
Cloning into '/usr/local/pyenv'...
remote: Enumerating objects: 34, done.
remote: Counting objects: 100% (34/34), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 16518 (delta 12), reused 23 (delta 8), pack-reused 16484
Receiving objects: 100% (16518/16518), 3.19 MiB | 2.05 MiB/s, done.
Resolving deltas: 100% (11204/11204), done.
[root@localhost ~]# git clone git://github.com/yyuu/pyenv-virtualenv.git /usr/local/pyenv/plugins/pyenv-virtualenv
Cloning into '/usr/local/pyenv/plugins/pyenv-virtualenv'...
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Compressing objects: 100% (4/4), done.
remote: Total 2009 (delta 0), reused 0 (delta 0), pack-reused 2005
Receiving objects: 100% (2009/2009), 568.83 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1373/1373), done.
[root@localhost ~]# 

gitでpyenvに必要なファイルを/usr/local/に置きました。

起動時に読み込まれるファイルを書く

起動時に読み込まれるようにします

[macan@localhost ~]$ sudo vi /etc/profile.d/pyenv.sh

export PYENV_ROOT="/usr/local/pyenv"
export PATH="${PYENV_ROOT}/bin:${PATH}"
eval "$(pyenv init -)"

書いたら保存をしてシェルの再起動をします

[macan@localhost ~]$ exec $SHELL -l

これで完了です。

Pythonのインストール

pyenvでインストール可能なリストを表示します

[macan@localhost local]$ pyenv install --list
Available versions:
  2.1.3
・・・・
 3.6.0
  3.6-dev
  3.6.1
  3.6.2
  3.6.3
  3.6.4
  3.6.5
  3.6.6
  3.6.7
  3.7.0
  3.7-dev
  3.7.1
  3.8-dev

3.6.7をインストールしてみたいと思います。

[root@localhost ~]# pyenv install 3.6.7

Downloading Python-3.6.7.tar.xz...
-> https://www.python.org/ftp/python/3.6.7/Python-3.6.7.tar.xz
Installing Python-3.6.7...
Installed Python-3.6.7 to /usr/local/pyenv/versions/3.6.7

インストールできました。

Pythonのバージョンの切り替えをします

[root@localhost /]# pyenv global 3.6.7

確認

pythonのバージョンを確認します

[root@localhost ~]# which python
/usr/local/pyenv/shims/python
[root@localhost ~]# python --version
Python 3.6.7
[root@localhost ~]# 

rootで実行したらこんな感じでした。一般ユーザーで実行してみます

[macan@localhost ~]$ which python
/usr/local/pyenv/shims/python
[macan@localhost ~]$ python --version
Python 3.6.7
[macan@localhost ~]$ 

問題ないですね

実行してみる

実際に実行してみたいと思います。
まずは書いてみる

[macan@localhost ~]$ vi hello.py 
#coding:UTF-8

print ("こんにちは世界!")

つづいて実行

[macan@localhost ~]$ python hello.py 
こんにちは世界!

問題無く実行できました

次回はpipのインストールと設定

次はpipのインストールや設定をしていきます