「サーバ日誌」カテゴリーアーカイブ

CentOS7.2(i386/32bit)でApacheとPHP7を使ってみる。

前回の続きです。

CentOS7.2のhttpd.confは、

# vi /etc/httpd/conf/httpd.conf

 

で編集してしまいます。

中に既に、

LoadModule php7_module        modules/libphp7.so

 

が入っていると思いますので、次の行を追記します。

<IfModule mod_php7.c>
  AddType application/x-httpd-php .php .inc
</IfModule>

 

あとは、コマンドラインで、

# systemctl restart httpd

 

で、Apacheを再起動させます。

Apacheがアクセスできる適当なディレクトリに、

<?php
    phpinfo();
?>

 

と書いたinfo.phpを保存して、http://サーバアドレス/xxx/info.phpでアクセスしてみます。次のように表示されたらとりあえず動いていると思われます。

2016.04.07

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

CentOS7.2(i386/32bit)にPHP7.0.5を導入してみる。

ちょっとしたフレームワークを利用したかったため、5.6以上のバージョンのPHPが必要となったのですが、今後のことを考えると最新の7系を使うことにしたので、PHP7.0.5をtarボールからインストールすることにしました。yumで出来ないかいろいろ試したのですが、i386(32bit)バイナリが見つからなかったので、さくっとビルドすることにします。

まずは、tarボールをゲットしてきます。

$ wget -O php-7.0.5.tat.gz http://jp2.php.net/get/php-7.0.5.tar.gz/from/this/mirror

 

そんでもって解凍。ディレクトリ内にはいります。

$ tar zfx php-7.0.5.tat.gz
$ cd php-7.0.5/

 

configureします・・・。最近はどんなオプション付ければ良いのかさっぱりなのでGoogle先生に訊いてきました。

こちら様の記事がとても参考になります。

[参考]PHP7.0.0をCentOS7な仮想環境にTarballからインストールしてみた話 – グロージェントの中の人

で、configureする前に必要なライブラリとかを入れないとこけます。

# yum -y groupinstall base
# yum -y groupinstall development
# yum -y groupinstall network-tools
# yum -y install systemtap-sdt-devel
# yum -y install gmp gmp-devel gmp-status
# yum -y install net-snmp
# yum -y install net-snmp-devel
# yum -y install net-snmp-utils

 

あと、—with-imapをつかうと、libc-clientとlibc-client-develが必要となるので何とかして導入します。まぁ、rpmデータベース当たりからダウンロードしてインストールすれば大体OKみたいな感じでしょうか(;^ω^)。

それでは、./configureの中身。

$ ./configure \
--enable-phpdbg \
--enable-phpdbg-webhelper \
--enable-libgcc \
--disable-short-tags \
--enable-dtrace \
--with-libxml-dir \
--with-openssl \
--with-system-ciphers \
--with-pcre-regex \
--without-sqlite3 \
--with-zlib \
--with-zlib-dir \
--enable-bcmath \
--with-bz2 \
--enable-calendar \
--with-curl \
--enable-exif \
--with-pcre-dir \
--enable-ftp \
--with-openssl-dir \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-native-ttf \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--with-icu-dir \
--enable-mbstring \
--with-libmbfl \
--with-onig \
--with-mysqli \
--enable-embedded-mysqli \
--enable-pcntl \
--with-pdo-mysql \
--with-zlib-dir \
--without-pdo-sqlite \
--with-readline \
--enable-shmop \
--with-snmp \
--enable-soap \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-xmlrpc \
--with-libxml-dir \
--with-iconv-dir \
--with-xsl \
--enable-zip \
--with-zlib-dir \
--with-pcre-dir \
--enable-mysqlnd \
--enable-zend-signals \
--with-tsrm-pthreads \
--with-imap \
--with-imap-ssl \
--with-kerberos \
--with-apxs2=/usr/bin/apxs

そのあとは、お約束。

$ make
$ make test
# make install

 

ちゃんと動いているかコマンドラインから確認します。

・・・。なのですが、make testで12799で止まってしまいます。何度やっても、rootでやっても止まるので何かあるのかも知れません(;^ω^)。どうしようもないので、観なかったことにして、make installをすると普通に入ってくれます(;^ω^)。

あとは、apacheの設定をするだけです。これはまた別のお話ということで。

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

CentOS7.2でRedMine3.1を動作させる。

参考URIの通りにするだけなのですが・・・(;^ω^)。でも、以前設定したときにはドツボにはまってしまいましたので、ステップ・バイ・ステップで進めていきましょう(・∀・)。

パッケージのインストール

まず、ひたすら必要なパッケージを入れていきます。

開発ツール(Cコンパイラ等)のインストール

# yum -y groupinstall "Development Tools"

RubyとPassengerのビルドに必要なヘッダファイルなどのインストール

# yum -y install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel libffi-devel

MariaDBとヘッダファイルのインストール

# yum -y install mariadb-server mariadb-devel

Apacheとヘッダファイルのインストール

# yum -y install httpd httpd-devel

ImageMagickとヘッダファイル・日本語フォントのインストール

# yum -y install ImageMagick ImageMagick-devel ipa-pgothic-fonts

Rubyの導入

RubyのオフィシャルサイトのダウンロードページからRuby2.2の最新のソースコードをダウンロードします。現時点(2015年11月8日)では2.2.3が最新でした。

http://www.ruby-lang.org/ja/downloads/

# curl -O https://cache.ruby-lang.org/pub/ruby/2.2/ruby-2.2.3.tar.gz

とします。

Rubyのソースコードを展開してビルドします。

# tar xvf ruby-2.2.3.tar.gz
# cd ruby-2.2.3
# ./configure --disable-install-doc
# make
# make install
# cd ..

続いて、ちゃんとインストールされているか確認です(・`ω´・ )。

# ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [i686-linux]

Ruby用のパッケージ管理ツールであるbundlerのインストールをします。これはRedmineが使用するgemパッケージをインストールするのに使用するものです。

# gem install bundler --no-rdoc --no-ri

MariaDBの設定をする

# vi /etc/my.cnf

でファィルを開きます。中の[mysqld]セクションに

character-set-server=utf8

を、 [mysql]セクションに

default-character-set=utf8

を、追加します。[mysql]セクションは無かったので「[mysql]」の一行も追加して書きました。

MariaDBの起動と自動起動設定をします。コマンドプロンプトから

# service mariadb start
# systemctl enable mariadb

を叩きます。

実際設定が反映されているか、確認します。

# mysql –uroot

でMariaDBに入ります。コンソールから次のコマンドを叩きます。

show variables like 'character_set%';

次のようにValueが設定されていればOKです(・∀・)。

キャプチャ

 

初期設定ツール「mysql_secure_installation」を実行してrootパスワードの設定や不要なユーザー・データベースの削除を行います。

# mysql_secure_installation

あとは指示通りにサクサク進めるだけです。

次にようやくRedmine用のデータベースなどの設定に入ります。

# mysql -uroot -p
MariaDB [(none)]> create database db_redmine default character set utf8;
MariaDB [(none)]> grant all on db_redmine.* to user_redmine@localhost identified by 'pwd_redmine';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

先ほど設定したrootパスワードを入力して、処理に移ります。ここでは、redmineのデータベースユーザはuser_redmine、パスワードはpwd_redmineに設定しています。ポリシーに合わせて設定しましょう。

Redmineのインストール

SubversionのリポジトリからRedmineの3.1.xの最新のファイル一式をダウンロードします。

# svn co http://svn.redmine.org/redmine/branches/3.1-stable /var/lib/redmine

Redmineのインストールディレクトリ(今回は/var/lib/redmine)以下にデータベース接続設定ファイル「config/database.yml」を作成します。データベース名、ユーザ名、パスワードはMariaDBの設定した内容です。ymlファイルの字下げは「半角スペース2個ずつ」です。1個でも3個で目駄目です。今回は次のような内容になります。

production:
  adapter: mysql2
  database: db_redmine
  host: localhost
  username: user_redmine
  password: pwd_redmine
  encoding: utf8

続いて設定ファイル「config/configuration.yml」を作ります。内容は次の通りですね。ymlファイルの字下げは「半角スペース2個ずつ」ですから、注意しましょう。ドメインはFQDNですので環境に合わせて設定してください。

production:
  email_delivery:
    delivery_method: :smtp
    smtp_settings:
      address: "localhost"
      port: 25
      domain: FQDN

  rmagick_font_path: /usr/share/fonts/ipa-pgothic/ipagp.ttf

最後に、gemパッケージをbundlerを使用して必要な物を全部入れてしまいます。

# bundle install --without development test --path vendor/bundle

 パーミッションの変更をします。

# chown -R apache:apache /var/lib/redmine/

 

Redmineの初期設定をする

セッション改ざん防止用秘密鍵の作成

# bundle exec rake generate_secret_token

データベースのテーブル作成

# RAILS_ENV=production bundle exec rake db:migrate

デフォルトデータの登録

# RAILS_ENV=production REDMINE_LANG=ja bundle exec rake redmine:load_default_data

Passengerのインストール

# gem install passenger --no-rdoc --no-ri

PassengerのApache用モジュールのインストール

# passenger-install-apache2-module --auto

 

 

Apacheの設定

今回は、http://fqdn/redmineというアドレスでアクセスするように設定していきます。専用サーバではなく、サブディレクトリ運用になりますね。

Passenger用の設定を表示させる

# passenger-install-apache2-module --snippet

をコマンドプロンプトとから叩きます。そのときに表示される情報をApacheの設定ファィルに記載しますのでコピーしておきます。内容は環境によって異なるので「必ずインストールした環境の情報」で設定しましょう。私の環境では次のように表示されました。

LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.23/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.23
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

confファイルを作る

設定ファィルを作ります。

2.0以降あたりから、conf.d/の中を自動で読み込んでくれるようになっています。

# vi /etc/httpd/conf.d/redmine.conf

に、次のような内容を記述します。

# Redmineへのアクセス権の設定
<Directory "/var/lib/redmine/public">
  Require all granted
</Directory>

# Passengerの基本設定。
LoadModule passenger_module /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.23/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
  PassengerRoot /usr/local/lib/ruby/gems/2.2.0/gems/passenger-5.0.23
  PassengerDefaultRuby /usr/local/bin/ruby
</IfModule>

# Passengerが追加するHTTPヘッダを削除するための設定
Header always unset "X-Powered-By"
Header always unset "X-Runtime"

# 必要に応じてPassengerのチューニングのための設定を追加(任意)。
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 864000
PassengerHighPerformance on
PassengerStatThrottleRate 10
PassengerSpawnMethod smart
PassengerFriendlyErrorPages off

# Apacheのサブディレクトリで動かすための設定
# http://fqdn/itsでアクセスする場合は次のようにする。
RackBaseURI /redmine

これで、Apacheの設定は終わりです。

続いて、シンボリックリンクを張って、サブディレクトリで運用できるようにします。

# ln -s /var/lib/redmine/public /var/www/html/redmine

設定が全部終わりましたので設定を反映させます。

# service httpd configtest

設定に誤りが無いか確認します。問題なければ「Syntax OK」と表示されます。

次に、サーバの再起動です。自動起動が設定されていない場合は、自動起動の設定もします。

# service httpd restart
# systemctl enable httpd

 

サーバにアクセスして、Redmineの画面が表示されれば完了です(・∀・)。

【参考URI】

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

CentOS7でrootのメールを転送設定したい。(GmailのSMTPサーバを使う)

 エンジニアのたしなみ、グラス片手にサーバ構築ですよ(・∀・)。

さて、昨日はボジョレー・ヌーボー解禁日でしたね。

というわけで、

IMG_20151119_154940

 今宵は、ボジョレー・ヌーボーとカマンベールチーズと茎わかめ(三陸産)と共に

( ^_^)/□☆□\(^_^ )。

 

サーバのインストールが終了すると、いろいろと設定することになります。

cron jobの結果とか、ログイン失敗の重要なメールはrootに届きますが、それはいつも使っているメールアドレスで確認するのが楽かな・・・と思います。

というわけで、rootのメールの転送設定をしていきます。

転送はGMail経由、転送先アドレスは別のGMailアドレスにします。

1.Postfixの設定をしよう

まずはPostfixの設定ファイルを編集します。

# vi /etc/postfix/main.cf

の中に「relayhost」の項目があります。

relayhost = [smtp.gmail.com]:587

とします。[]は付けましょう。

続いて、最終行に次の項目を記載します。

smtp_sasl_auth_enable=yes
smtp_sasl_password_maps = hash:/etc/postfix/authinfo
smtp_sasl_security_options =
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = login
 
smtp_tls_eccert_file =
smtp_tls_eckey_file =
smtp_use_tls = yes
smtp_enforce_tls = no
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtpd_tls_received_header = yes
tls_random_source = dev:/dev/urandom

認証情報を作ります。

# vi /etc/postfix/authinfo

をコマンドプロンプトから叩き、送信元のGmailのユーザ名とパスワードを記述します(2行に見えますが1行に記述します)。

[smtp.gmail.com]:587 username@gmail.com:user_password

パスワードがそのまま保存されていますのでroot以外は読み書きできないように設定します。

# chmod 600 /etc/postfix/authinfo

ファイルをhash形式に変換します。

# postmap /etc/postfix/authinfo

これで/etc/postfix/authinfo.dbファイルが出来上がります。

Postfixの設定を反映させるために、再起動します。

# systemctl reload postfix

これでPostfixの設定が完了します。

2.rootのメール転送設定をしよう

では、rootのメール転送設定をします。

# sed –i  ’^root:/d’ etc/aliases
# echo”root: receive_user@gmail.com”>> /etc/aliases
# newaliases

これで完了します。receive_user@gmail.comは転送先アドレスになります。

 

3.GMailのセキュリティの設定をしよう

この設定のままでは現在(2015年11月1日)では送信できません。「セキュリティの低いクライアントからのアクセスはだめぽ」と怒られてしまいます。

したがって、これを許可するようにGMail側の設定を変えます。送信元アカウントでログインして「ログインとセキュリティhttps://myaccount.google.com/intro/security#connectedapps」を開きます。下の方に、「安全性の低いアプリの許可」というものがありますので「許可」に変更します。

キャプチャ

これで準備が完了します。

4.送信テストをしよう

最後に送信テストを行います。

# echo test|mail root

と入力してメールが転送されることを確認します。転送されない場合は、「/var/log/maillog」の情報をもとに設定を見直します。迷惑メールフォルダなども確認するようにしましょう。

 

【参考URI】

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

CentOS7.1でSELinuxとファイアーウォールを無効にする。

今宵はジブリベースのジャズと焼酎の水割りと共に
( ^_^)/□☆□\(^_^ )。

あったら便利だけど、内部サーバとして運用すると以外と面倒なのは、こんな事いうと怒られそうですが、SELinuxとファイアーウォールです。外部に公開せず、限られた運用や単純な開発環境ならば無効にした方が楽です。ステージングや本番環境はそれなりの設定が必要になりますが(;^ω^)。

1.SELinuxを無効にする。

内部サーバなのでSELinuxを無効にします。

# getenforce
Enforcing

で「Enforcing」と表示されていると有効になっています。

まずは、無効にします。

# setenforce 0
# getenforce
Permissive

で「Permissive」と表示されていると無効になっています。

# vi /etc/sysconfig/selinux

で「SELINUX=enforcing」を「SELINUX=disabled」と書き換えます。

 

2.ファイアーウォールを無効にする。

内部からアクセスするので、ファイアーウォールも停止します。

# systemctl stop firewalld
# systemctl disable firewalld

くれぐれもこのような設定のサーバを公開しないようにしてくださいね。

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

CentOS7.1のsshの設定をする。

インストールした後は、Windows7からssh接続で設定をしていきます。好きに場所で好きなように設定できるのはいいですね(・∀・)。

基本的な設定は次のような感じです。

コマンドプロンプトから、

#vi /etc/ssh/sshd_config

を叩きます。

その中の、「PermitRootLogin」の項目を次のようにします。

PermitRootLogin no

これで、sshでrootのログオンが出来なくなります。設定が終わったら、保存して、コマンドプロンプトから

#systemctl restart sshd

で設定を反映します。

その設定のまま外部へ公開するのは危険ですので、ユーザのアクセス権などを適宜設定する必要があります。

後は定番のTeraTermから一般ユーザでログインすることが出来ます。

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

CentOS7.1のネットワークの設定をする。

ネットワークの設定が終わっていないので完了させてしまいます。

自宅では、メディアコンバータを経由することで有線接続を実現しています。

まずは、正常なLANケーブルでメディアコンバータに接続し、有線LANのMACアドレスを控えて、無線LANルータに設定しました(無線LAN MACアドレスフィルタリングをしているため)。

次にコマンドプロンプトから、

nmtui

コマンドを実行します。CentOS7からは、ネットワーク設定はこのコマンドで設定できるようになっています。手打ちしていた時代とは違うようです(;^ω^)。

キャプチャ2

こんな画面が出てきます。

キャプチャ3

認識されてるデバイスがあれば表示されるので選択します。

キャプチャ4

IPアドレスなどを設定します。家ではIPv4だけなので、簡単に済ませました。

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?

Pentium4 マシンにCentOS7.1をインストールした(・∀・)

 ひょんな事で自作サーバ熱が出てきたので、家にある余ったPCでサーバを立ててみることにしました。ディスプレイも本体ももらい物です(;^ω^)。

DSC_0390 

エンジニアのお遊びっぽく、お酒片手に進めていきます(;^ω^)。今日は気になっていた「澄みわたる柚子酒」です。

 さて、順番がメチャクチャですが、導入するマシンはこれ。

 

DSC_0381

 IBM Intelistaion E Proです。Pentium 4 / 512MB / 40G HDD のマシンです。当時は優秀な機械だったのですよー。

ここからは失敗談。

 CentOS 7にもx86向けISOイメージと64向けiSOイメージがあります。もし、x86_64イメージでインストールすると次のような画面が出て先に進むことは出来ません。

DSC_0385

ということで、i386用イメージをDVDに焼いてインストールします。「SpecialInterestGroup/AltArch/i386 – CentOS Wiki https://wiki.centos.org/SpecialInterestGroup/AltArch/i386」からISOイメージのリンクがありますのでたどればOKです。私が確認したときはi386イメージはミラーサイトになく、本家からダウンロードすることになりました。

 DVDの作成はWindows 7で行いました。ISOイメージを右クリックして、「プログラムから開く」で「Windows ディスク イメージ書き込みツール」で開くと次のような画面になります。空のDVD-Rを挿入して書き込みます。

0003

0004

0005

 書き込みが完了したら、InteliStationで起動する準備に取りかかります。

 この、InteliStation。CD-ROMドライブのため、DVDを読むことが出来ません。そこで、USB外付けDVDドライブを接続してインストールすることになります。

 InteliStationはシステム起動画面でF12を押すとブートドライブを選択することが出来ます。ここで、「3.CD-ROM」を選択すると、USB外付けDVDドライブからブートすることが可能です。

DSC_0383

 ブートすると、CentOS7のインストール画面が出てきますので、指示に従って進めます。

DSC_0388

 キーボードセレクト画面からはマウス操作もできますが、キーボードしかつなげていないため、ここからは全部キーボード操作ですね。

 あとは画面の指示通りに進めておけば解決します。ネットワークについては、無線LAN接続も考えてケーブルは這わさなかったのでここでは割愛します。

Monacoinを投げる
モナゲ(tipmona)ってなに?
そもそもMonacoinってなに?