備忘録

開発の日々の備忘録

apache,mysql,phpをソースからインストールしたメモ


LAMP環境構築の備忘録。

構築環境


PHP7つかうよおおおおおほおおおお

apacheインストール


依存パッケージやらインストール準備

$ sudo yum install pcre-devel

2.4からapache本体に同梱されなくなったapr,apr-util

$ cd /usr/local/src
$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//apr/apr-1.5.2.tar.gz
$ tar xvzf apr-1.5.2.tar.gz
$ cd apr-1.5.2
$ ./configure --prefix=/usr/local
$ make
$ sudo make install

$ cd /usr/local/src
$ wget http://ftp.meisei-u.ac.jp/mirror/apache/dist//apr/apr-util-1.5.4.tar.gz
$ tar xvzf apr-util-1.5.4.tar.gz
$ cd apr-util-1.5.4
$ ./configure --prefix=/usr/local --with-apr=/usr/local
$ make
$ sudo make install

apache本体DL

$ cd /usr/local/src
$ wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//httpd/httpd-2.4.18.tar.gz

インストール
2.4からmpmがevent-mpmに変わったけど、phpが推奨してるprefork指定
event-mpm使うならFastCGI使う
参考:http://php.net/manual/ja/faq.installation.php#faq.installation.apache2

$ ./configure --with-mpm=prefork --enable-mods-shared=all
$ sudo make install

起動&確認

$ sudo /usr/local/apache2/bin/apachectl start
$ curl http://localhost/

mysqlインストール


mysqlユーザー作成

$ sudo groupadd mysql
$ sudo useradd -g mysql -s /sbin/nologin mysql

依存パッケージやらインストール準備
CentOS7からデフォルトのDBになったmariadbも競合するので消しとく

$ sudo yum install cmake
$ sudo yum install ncurses-devel
$ sudo yum -y remove mariadb-libs

mysql本体インストール

$ cd /usr/local/src
$ wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.10.tar.gz
$ tar xvzf mysql-5.7.10.tar.gz
$ cd mysql-5.7.10
$ cmake . -DDEFAULT_CHARSET=utf8mb4 \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/src
$ make
$ sudo make install

my.cnfに追加

$ sudo cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
$ sudo vi /etc/my.cnf
[client]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
explicit_defaults_for_timestamp = 1
default_password_lifetime = 0

初期化(5.7からmysql_install_dbはdeprecated)

$ sudo chown -R mysql:mysql /usr/local/mysql
$ sudo /usr/local/mysql/bin/mysqld --initialize-insecure \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--user=mysql

起動&ログイン

$ sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
$ /usr/local/mysql/bin/mysql -u root

MYSQL rootパスワード設定

mysql> use mysql; 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'すきなぱすわーど'
mysql> exit

phpインストール


依存パッケージ入れる

 $ sudo yum install libxml2-devel
 $ sudo yum install curl-devel

PHP本体インストール

$ cd /usr/local/src
$ wget http://jp2.php.net/get/php-7.0.1.tar.gz/from/this/mirror -O php-7.0.1.tar.gz
$ tar xvzf php-7.0.1.tar.gz 
$ cd php-7.0.1
$ ./configure  --with-pdo-mysql=/usr/local/mysql \
--with-apxs2=/usr/local/apache2/bin/apxs \
--enable-mbstring \
--without-gd \
--with-zlib \
--with-curl
$ make
$ sudo make install
$ sudo cp php.ini-development /usr/local/lib/php.ini

apcheにPHPmime type追加

$ sudo vi /usr/local/apache2/conf/httpd.conf
#追加
AddType application/x-httpd-php .php

再起動してphpinfo表示確認

$ sudo /usr/local/apache2/bin/apachectl stop
$ sudo /usr/local/apache2/bin/apachectl start
$ sudo chmod 777 /usr/local/apache2/htdocs
$ echo "<?php phpinfo();?>" > /usr/local/apache/htdocs/test.php
$ curl http://localhost/test.php

apache,mysql,phpのセキュリティ関連の設定は端折ってるので調べて設定する
オワリ