しろログ

日々巡り会ったものの感想・レビュー

Category: IT・コンピューター (page 1 of 14)

CentOS 7 nginx PHP7 MySQLなどメモ

毎度の個人的なメモ

■基本設定
SELINUX無効化

setenforce 0

vi /etc/selinux/config

SELINUX=disabled

ホスト名

vi /etc/hostname

ifconfigはなくなった

nicの確認など
ip a

■初回のyum関連
minimalでインストールした場合

yum update
LANG=C yum groups list
yum groups install base
yum groups install "Compatibility Libraries"
yum groups install "Development Tools"
yum install ntp

■ネットワーク周り

nmcli device
nmcli device show eno1
nmcli con up eno1
nmcli con down eno1
IPアドレスを192.168.1.10、GWを192.168.1.1に変更
nmcli con mod eno1 ipv4.addresses "192.168.1.10/24 192.168.1.1"

DNSサーバを192.168.1.11、192.168.1.12に変更
nmcli con mod eno1 ipv4.dns "192.168.1.11 192.168.1.12"

自動起動
nmcli con mod eno1 connection.autoconnect "yes"

systemctl restart NetworkManager

■iptablesはfirewallになった

現在の設定確認
firewall-cmd --list-service --zone=public

dhcpv6-clientを削除
firewall-cmd --remove-service=dhcpv6-client --zone=public --permanent

httpdなどを追加
firewall-cmd --add-service=http --zone=public --permanent

反映
firewall-cmd --reload

メジャーなものはここにある。無ければ追加
ls /usr/lib/firewalld/services/

■chkconfigはsystemctlになった

一覧
systemctl list-unit-files -t service

自動起動on
systemctl enable sshd.service

自動起動off
systemctl disable sshd.service

起動や停止、再起動など
systemctl restart sshd.service

■nginxとか
yumで済ませる

vi /etc/yum.repos.d/nginx.repo

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

yum install nginx
vi /etc/nginx/nginx.conf
vi /etc/nginx/conf.d/default.conf

起動
systemctl start nginx.service
systemctl enable nginx.service

PHP
yumで済ませる

yum install epel-release
yum localinstall http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
yum install --enablerepo=remi,remi-php70 \
php \
php-devel \
php-mysqli \
php-pdo \
php-openssl \
php-mbstring \
php-opcache \
php-fpm \
php-intl

Laravelとか入れるなら

php-pecl-zip

pear(pecl)

yum install libxslt
yum install --enablerepo=remi,remi-php70 php-pear

php-fpm

vi /etc/php-fpm.d/www.conf

user = nginx
group = nginx

systemctl start php-fpm.service
systemctl enable php-fpm.service

MySQL
yumのrepoをDLしてyumで済ませる

yum remove mariadb-libs
yum localinstall mysql57-community-release-el7-8.noarch.rpm 
yum install mysql-community-server

起動
systemctl start mysqld.service

初期パスワード表示
grep 'temporary password' /var/log/mysqld.log

初期パスワードでログイン後、パス変更
(デフォルトでは大文字、小文字、数字、記号が1つ以上、かつ8文字以上の必要がある)
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'; 

CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'password'; 
GRANT ALL ON *.* TO 'root'@'127.0.0.1';

■Node.js

$ curl -sL https://rpm.nodesource.com/setup_8.x | bash -
$ yum install nodejs

■覚書
apache2.4系をsystemctlで使うには、mod_systemdをロードする必要があるらしい。

開発用サーバーの証明書

いわゆるオレオレ証明書の作り方メモ

openssl genrsa -des3 -out server.key 2048
openssl req -new -key server.key -out server.csr
openssl rsa -in server.key.org -out server.key
openssl x509 -req -days 3650 -in server.csr -signkey server.key -out server.crt

apacheの場合、作成したserver.crtと、server.keyをこんな感じで設定。

SSLCertificateFile /etc/cert/server.crt
SSLCertificateKeyFile /etc/cert/server.key

参考
Nginxにオレオレ証明書を設定する

余談
こんな感じで、割と簡単なんですけど、iOSアプリのATS対応のためにはオレオレだと結局引っかかってしまうので、debugビルドの時はATSを無効にするような切り分けとかしたほうが楽っていう・・

Plistを操作するPlistBuddyでiOS9のApp Transport Securityの煩わしさから開放される

Let’s EncryptでSSL

Appleが2017年の1月から全てのアプリでATSを必須にするっぽい、ということで今更ながらSSL対応することに。
以前から目をつけていた、Let’s Encryptを使ってみようということで、そのメモです。

Let’s EncryptはInternet Security Research Group (ISRG) が提供している無料の認証局です。

すでに独自ドメインにてwebサーバーが稼働しているサーバー(CentOS6+apache2.2)を対象に一気にSSL化します。

cd /usr/local/
git clone https://github.com/certbot/certbot

cd certbot/
./certbot-auto

./certbot-auto certonly --webroot \
-w /path/to/www \
-d example.com \
-m info@example.com \
--agree-tos

これで
/etc/letsencrypt/
以下に必要なファイルができるので、httpd.confに

SSLCertificateFile /etc/letsencrypt/live/example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem

などと加えて完了。後は、
・ファイヤウォール等で443を開けてやる
・apacheにmod_ssl等が無ければ加える
・httpd.confで443をLISTENする
あたりを忘れずに。

あと、証明書の有効期限が90日程度なので、定期的に更新する必要があるようです。

更新のテスト

/usr/local/certbot/certbot-auto renew --force-renew --dry-run

crontabに登録

crontab -e

00 05 01 * * /usr/local/certbot/certbot-auto renew --force-renew && /etc/init.d/httpd2 restart

割と簡単♪

安全性のチェックなど
SSL Server Test – QUALYS SSL LABS

メジャーなHTTPサーバー向けに最適なSSL configを生成してくれる
Mozilla SSL Configuration Generator

参考
Let’s Encrypt サーバー証明書の取得と自動更新設定メモ – あぱーブログ
Let’s Encrypt で手軽に HTTPS サーバを設定する – Qiita
Let’s Encrypt の使い方
Webに接続するiOSアプリは2017年1月からHTTPSの使用が絶対条件になる、デベロッパーはご注意を = TechCrunch

PHP7 + cake

なんとなくPHP7とcake phpを用意するだけのメモ

環境
CentOS 6.7
apache2系
mysql5系

ICU(intl用)

yum install libicu libicu-devel

PHP7

./configure \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-openssl \
--enable-mbstring \
--enable-opcache \
--enable-intl \
--with-zlib-dir

composer(無い場合)

curl -s https://getcomposer.org/installer | php
cp /usr/local/src/php-7.0.0/composer.phar /usr/local/bin/composer

cake

composer create-project --prefer-dist cakephp/app /path/to/app_name

Apache Cordovaを試す

クロスプラットフォーム開発ツールCordova。前身はPhoneGap。

いわゆる側アプリ・ハイブリッドアプリと呼ばれるタイプで、アプリに埋め込んだブラウザ内でHTML5/CSS/JavaScriptを動かすよー、というものです。
出た当初は当然もっさり感しかなくて、使い物にならないという印象しか無かったのですが、その後も開発が続けられていて、パフォーマンスが改善してきたようなので、また試してみようと思った次第。
macで試します。

nodebrewのインストール

$ curl -L git.io/nodebrew | perl - setup
$ export PATH=$HOME/.nodebrew/current/bin:$PATH
$ source ~/.bash_profile

Node.jsのインストール

$ nodebrew install latest
$ nodebrew use latest

確認

$ node -v
$ npm -v

Cordova

$ npm install -g cordova
$ cordova -v

Cordova導入は以上でOK。

プロジェクトを作って、対応プラットフォームを追加(ここではAndroid/iOS/Webに対応。他にもFireOSなどいろいろ)

$ cordova create /path/to/projectDir/MyApp com.example.MyApp MyApp
$ cd /path/to/projectDir/MyApp
$ cordova platform add android
$ cordova platform add ios
$ cordova platform add browser

なお、androidなどは事前にSDKをインストールし、パスなどを通しておく必要があるかと思います。
cocos2d-xなどを導入していれば、このあたりは問題なさそう。

全部ビルド
$ cordova build
Androidだけビルド
$ cordova build android
リリースビルド
$ cordova build --release

iOSを、シミュレーターで確認したい場合は入れておく

$ npm install -g ios-sim

実行

$ cordova run android
$ cordova run ios
$ cordova run browser

プロジェクトディレクトリにある
platoforms/android
platforms/ios
の中が、Android StudioやXcodeで開ける構成になっているようです。
iOSなどは普通にMyApp.xcodeprojをXcodeで開いて実行すれば実機確認が可能。

この辺のテイストはcocos2d-xなんかともかなり似てますね。
2〜3年前と比べて手軽になったなぁ。

参考:
nodebrew で Mac の Node.js 環境をスッキリさせた
Macにnodebrew(node.js, npm)をインストールする手順
よく使うCordovaコマンド

Older posts

© 2017 しろログ

Theme by Anders NorenUp ↑