Apache 2.4 PHP7.X MariaDB をインストール (CentOS 6.8)
CentOS 6.8 で PHP 7.X MariaDB 10.1.X をインストールにトライしました。
サーバーの確認
cat /etc/redhat-release # CentOS & RHLE バージョン確認
arch
Sudo user を追加
add user [ユーザー名]
usermod -aG wheel [ユーザー名] # wheel サブグループに追加
vi /home/[ユーザー名]/.ssh/authorized_keys #アクセスする側の pub キーを追加
vi /etc/sshsshd_config # 下記「/etc/ssh/sshd_config」の説明を参照
visudo # 下記「visudo」の説明を参照
/etc/init.d/sshd restart
# 現在のターミナルを閉じずに、きちんと root & 新ユーザーがアクセスできるか必ず確認!
cat /etc/redhat-release # CentOS & RHLE バージョン確認
arch
add user [ユーザー名]
usermod -aG wheel [ユーザー名] # wheel サブグループに追加
vi /home/[ユーザー名]/.ssh/authorized_keys #アクセスする側の pub キーを追加
vi /etc/sshsshd_config # 下記「/etc/ssh/sshd_config」の説明を参照
visudo # 下記「visudo」の説明を参照
/etc/init.d/sshd restart
# 現在のターミナルを閉じずに、きちんと root & 新ユーザーがアクセスできるか必ず確認!
config ファイルを書き換えていないと、アクセスできなくなる、非常に危険な作業なので、開いているターミナルを閉じる前にきちんと設定が変更されているか、確認してからターミナルを閉じましょう。間違っていたら開いているままのターミナルで設定をもとに戻したり出来るので安心。
/etc/ssh/sshd_config
- root がログインできないようにする
- 該当ユーザーはパスワード無し、秘密鍵のみでログインできるように設定
PermitRootLogin no
Match User [ユーザー名]
PasswordAuthentication no
visudo
- sudo をパスワードなしで実行できるように設定
- wheel グループに所属しているユーザーは sudo 可能にする
- visudo で下記のラインのコメントを外して実行する
## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL
サーバーのタイムゾーンを変更
UTC だったので、日本時間に変更
cp /etc/localtime /root/localtime.utc
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
# 確認
date
YUM のレポジトリをインストール
参考
http://qiita.com/soundws/items/cc84da42419f1ab3443b
cd
wget http://ftp.riken.jp/Linux/fedora/epel/RPM-GPG-KEY-EPEL-6
rpm --import RPM-GPG-KEY-EPEL-6
rm -f RPM-GPG-KEY-EPEL-6
vi /etc/yum.repos.d/epel.repo
# 以下の内容で新規作成
#--------
[epel]
name=EPEL RPM Repository for Red Hat Enterprise Linux
baseurl=http://ftp.riken.jp/Linux/fedora/epel/6/$basearch/
gpgcheck=1
enabled=0
#--------
yum install epel-release
rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
rpm -Uvh http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
libmycrypt のインストール
yum --enablerepo=epel install libmcrypt
PHP のインストール
yum --enablerepo=epel install libmcrypt
参考
https://tecadmin.net/install-php-7-apache-2-4-mysql-on-centos-rhel/
cd
yum install php71w
yum install php71w-common
yum install php71w-devel
yum install php71w-pecl-memcached
yum install php71w-mysqlnd
yum install php71w-soap
yum install php71w-opcache
yum install php71w-xmlrpc
yum install php71w-mbstring
yum install php71w-intl
yum install php71w-gd
yum install php71w-pecl-imagick
yum install php71w-mcrypt
Apache のインストール
yum --enablerepo=epel,remi install httpd
/etc/rc.d/init.d/httpd configtest
/etc/rc.d/init.d/httpd start
yum install mod_ssl
yum install openssl
- ServerName を設定
- ServerAdmin を設定
- log ファイルを /var/logs/httpd/ 内に保存するよう変更
- conf.d ディレクトリの中に追加の設定ファイルを追加するように設定
- IP 直接アクセスを防ぐために Dummy ファイルを作成 (下記参照)
- - /etc/httpd/conf.d/vhost_XXXXX.com.conf に vhost 設定を追加
/etc/httpd/conf/httpd.conf
yum --enablerepo=epel,remi install httpd
/etc/rc.d/init.d/httpd configtest
/etc/rc.d/init.d/httpd start
yum install mod_ssl
yum install openssl
チューニング。
サーバーのスペックにもよりますが、下記とかに設定
Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 120
<IfModule prefork.c>
StartServers 10
MinSpareServers 5
MaxSpareServers 10
ServerLimit 512
MaxClients 512
MaxRequestsPerChild 10
</IfModule>
PHP 71 の設定を LoadModule のあとぐらいに追加
#
# PHP is an HTML-embedded scripting language which attempts to make it
# easy for developers to write dynamically generated webpages.
#
# Cannot load both php5 and php7 modules
<IfModule !mod_php5.c>
<IfModule prefork.c>
LoadModule php7_module modules/libphp7.so
</IfModule>
</IfModule>
<IfModule !mod_php5.c>
<IfModule !prefork.c>
LoadModule php7_module modules/libphp7-zts.so
</IfModule>
</IfModule>
# PHP7
#
# The following lines prevent .user.ini files from being viewed by Web clients.
#
<Files ".user.ini">
<IfModule mod_authz_core.c>
Require all denied
</IfModule>
<IfModule !mod_authz_core.c>
Order allow,deny
Deny from all
Satisfy All
</IfModule>
</Files>
#
# Allow php to handle Multiviews
#
AddType text/html .php
#
# Add index.php to the list of files that will be served as directory
# indexes.
#
DirectoryIndex index.php
# mod_php options
<IfModule mod_php7.c>
#
# Cause the PHP interpreter to handle files with a .php extension.
#
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
#
# Uncomment the following lines to allow PHP to pretty-print .phps
# files as PHP source code:
#
#<FilesMatch \.phps$>
# SetHandler application/x-httpd-php-source
#</FilesMatch>
#
# Apache specific PHP configuration options
# those can be override in each configured vhost
#
php_value session.save_handler "files"
php_value session.save_path "/var/lib/php/session"
php_value soap.wsdl_cache_dir "/var/lib/php/wsdlcache"
php_value opcache.file_cache "/var/lib/php/opcache"
</IfModule>
OPcache のファイルキャッシュを保存する用のディレクトリを念のために作成
cd /var/lib/php/
mkdir opcache
chown root:apache opcache/
chmod 770 opcache/
Apache の実行ユーザーとグループを変更 (Git 用に)
User git-user
Group apache
デフォルトのサーバー名を追加
ServerAdmin [email protected]
ServerName www.example.com:80
.git 関連のファイルにアクセスされないように<Files ~ "^\.ht">
な設定ぐらいの後に config を追加
# .git から始まるファイルへのアクセスを禁止
<Files ~ "^\.git">
Order allow,deny
Deny from all
</Files>
# .git/ フォルダ以下のファイル・ディレクトリへのアクセスを禁止
<Directorymatch "^/.*/\.git/">
Order deny,allow
Deny from all
</Directorymatch>
エラーメッセージに出てくる、サーバーの OS や Apache バージョン表示などを非表示に
ServerSignature Off
VirtualHost を使えるようにする設定を
最後あたりの Virtual Host で追加。
NameVirtualHost *:80
NameVirtualHost *:443
を追加
/etc/httpd/conf.d/00_vhost_dummy.conf
IP アドレスで直接叩かれたら、何も出ないように設定
- /var/log/httpd ディレクトリが存在している必要あり
- /var/www/vhosts/dummy ディレクトリを作成し、空の index.html ファイルを作成
<VirtualHost *:80>
ServerName dummy
DirectoryIndex index.php index.html
CustomLog /var/log/httpd/dummy-access_log combined
ErrorLog /var/log/httpd/dummy-error_log
DocumentRoot /var/www/vhosts/dummy
<Directory "/var/www/vhosts/dummy">
AllowOverride All
Options -Indexes
# Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
<VirtualHost *:443>
ServerName dummy
DirectoryIndex index.php index.html
CustomLog /var/log/httpd/dummy-access_log combined
ErrorLog /var/log/httpd/dummy-error_log
DocumentRoot /var/www/vhosts/dummy
<Directory "/var/www/vhosts/dummy">
AllowOverride All
Options -Indexes
# Require all granted
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
/etc/httpd/conf.d/10_vhost_ドメイン.conf
本番環境の vhost 設定
<VirtualHost *:80>
ServerName example.co.jp
ServerAlias www.exampleu.co.jp
DirectoryIndex index.php index.html
CustomLog /var/log/httpd/example.co.jp-access_log combined
ErrorLog /var/log/httpd/example.co.jp-error_log
DocumentRoot /var/www/vhosts/example.co.jp
<Directory "/var/www/vhosts/example.co.jp">
AllowOverride All
Options FollowSymLinks
Options -Indexes
#Require all granted
</Directory>
</VirtualHost>
/etc/rc.d/init.d/httpd configtest
# エラーがないことを確認して、再起動
/etc/rc.d/init.d/httpd restart
Apache を OS 再起動時も自動的に起動するように設定
chkconfig httpd on
MariaDB をインストール
執筆q時点の安定版は 10.1.22
rpm --import https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
vi /etc/yum.repos.d/mariadb.repo
# vi
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1.21/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
enabled=1
# baseurl のところを安定版や自分の OS などに合わせる
yum install MariaDB-devel MariaDB-client MariaDB-server
エラーが出たら
rpm -qa | grep -i mysql
で残っている MySQL のパッケージを調べます。
yum remove [出てきたパッケージ名]
MariaDB をスタート
/etc/init.d/mysql start
しようとしてもエラーが有る場合は、昔のデータが残っているかも。
/var/lib/mysql
の中が昔のデータなので、必要なければ、一旦、MariaDB のインストールを削除して、データを削除してから、インストールし直してください。
Root ユーザーのパスワードをつけましょう。
/usr/bin/mysqladmin -u root password 'new-password'
vi /etc/my.cnf.d/server.cnf
文字コードを UTF8 にセット
[mysqld]
character-set-server = utf8
/etc/init.d/mysql restart
MariaDB のユーザー & DB を作成
mysql -uroot -p[パスワード]
# -u と -p の後のユーザー名とパスワードの間にはスペース無し
CREATE USER 'concrete5'@'127.0.0.1' IDENTIFIED BY 'パスワード';
CREATE USER 'concrete5'@'localhost' IDENTIFIED BY 'パスワード';
CREATE DATABASE [データベース名] DEFAULT CHARACTER SET=utf8;
GRANT ALL PRIVILEGES ON [データベース名].* TO 'concrete5'@'127.0.0.1' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON [データベース名].* TO 'concrete5'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit;
Git を 1.7.x から最新のにインストール
cd /usr/local/src
yum remove git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
# 最新版を https://www.kernel.org/pub/software/scm/git/ から確認
wget https://www.kernel.org/pub/software/scm/git/git-2.12.0.tar.gz
tar -zxf git-2.12.0.tar.gz
cd git-2.12.0
make prefix=/usr/local all
make prefix=/usr/local install
etckeeper のインストール
cd /usr/local/src
yum remove git
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-ExtUtils-MakeMaker
# 最新版を https://www.kernel.org/pub/software/scm/git/ から確認
wget https://www.kernel.org/pub/software/scm/git/git-2.12.0.tar.gz
tar -zxf git-2.12.0.tar.gz
cd git-2.12.0
make prefix=/usr/local all
make prefix=/usr/local install
参考
https://heartbeats.jp/hbblog/2013/09/etckeeper.html
yum --enablerepo=epel install etckeeper
etckeeper init
# 結果が
# fatal: Not a git repository (or any of the parent directories): .git
# だったら
etckeeper init
etckeeper commit "initial commit"
sudo su -
ssh-keygen -t rsa -b 4096 -C "[email protected]"
# デフォルト設定で SSH Key を生成
vi .ssh/id_rsa.pub
# SSH 公開鍵をリモートレポジトリ(origin/master)に登録
cd /etc
git remote add origin ssh://【git のリモートレポジトリURL】
git push origin master
sed -i -e 's/PUSH_REMOTE=""/PUSH_REMOTE="origin"/g' /etc/etckeeper/etckeeper.conf
Let's encrypt をインストール
参考
http://qiita.com/hirohiro77/items/8506493e042ddfbe6e1f
https://blog.doizaki.com/entry/2016/02/07/152141
yum install centos-release-SCL
yum update
yum install scl-utils python27 python27-scldevel
scl enable python27 bash
cd /usr/local/
git clone https://github.com/letsencrypt/letsencrypt
cd letsencrypt
./letsencrypt --help
./letsencrypt-auto -d XXXXXX.co.jp --apacheP
Author And Source
この問題について(Apache 2.4 PHP7.X MariaDB をインストール (CentOS 6.8)), 我々は、より多くの情報をここで見つけました https://qiita.com/katzueno/items/7933cd64a50cc59b4382著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .