作業メモ。すっげー長いよ。
VMWareに設定。
CentOSのインストール
CentOSのイメージファイルを手に入れる
参考:http://www.server-world.info/query?os=CentOS_7&p=download
最小構成(minimal)ではなくDVD.iso入れます。
のでDL。
VMWareにインストール
普通に新規作成でやる。
やってみてわかんなかったこと↓
- Linuxのパーソナライズの「フルネーム」がよくわからん。(とりあえずユーザー名と同じにした)
- rootは使えない(rootユーザーは存在するので、別ユーザーを入れないといけないっぽい)
- 仮想ディスクは単一ファイルとして格納
- キーボードは「日本語」がいい
これで起動してみる。
VMwareから起動する。
できた。
※追記
フルネームはWindowsでいうところのアカウント名みたいなやつだそうです。
(人から聞きました)
追記
Linuxのパーソナライズについて
http://linux.oboe-gaki.com/archives/000372.html
フルネームはユーザー名につけられる名前っぽい。
ユーザー名で設定できるのは一般ユーザーだそうな。
なるほど。
仮想ディスクの単一ファイル
分けるとコピーするときコピー漏れが出ちゃったりして大変なのでこっちを選ぶ方がいいらしい。
分割のメリットまでは不明。
Apacheのインストール
参考:http://weblabo.oscasierra.net/installing-apache-with-yum/
yum install httpd
問題発生?(CentOSの問題)
一旦パワーオフ、それで続きをやろうとしてこんなメッセージが出る
対応するデバイスがホストに存在しないため仮想デバイスide1.0に接続できません
よくわからないので「いいえ」→もっかい起動し直す→起動時にカーネルを選択する画面が出てくる。
とりあえず適当に選択したら前まで英語表記だったのに日本語で出るようになったよ!
しかもなんか知らんけど前まで英語名でしか表示しなかったのに
エラーメッセージについて
参考:http://ameblo.jp/hitomazu-kyuukei/entry-10958890508.html
どうやら光学ドライバにつながらないよ!ってことらしい。
まあ使わないし「いいえ」でいいか……。
使うことになったら調べる。
カーネルの選択画面について
参考:http://knowledge4linux.blogspot.jp/2014/11/centos7rhel7kernel.html
参考サイトの一番上と下のカーネルだけあるっぽい。
たぶん下の方が英語のカーネル……??
→起動してみたらそんなこともなかった
resqueモードのやつっぽいな…。
これは毎回出るのかな??
でもほかのVM(人からもらったやつ)だと出ないなあ。
とりあえず起動はできるので放置。
あとでまた調べる機会あったら調べる。
→やってみたけどまだ選択画面出る。
httpdの自動起動設定
とりあえず続き!
起動時に自動で起動できるようにする。
chkconfig httpd on
再起動して確認→自動起動OK!
細かい設定はあとで。
Apacheをソースコードからビルドする
参考:http://weblabo.oscasierra.net/install-apache24-1/
そういえば**「Apachはソースコードからビルドしてね」**って指示だったんだ。
てへへ。
yumでインストールしたApacheをアンインストール
yum remove httpd
で一旦インストールしていない状態に戻す。
インストールに必要なモノをインストール
yum install gcc make pcre pcre-devel wget
APRのインストール
APR (Apache Portable Runtime) というものをインストールする必要があります。 APR は OS の違いを吸収してくれるライブラリです。
というわけで入れてみましょう。
今は1.5.2が最善のバージョンっぽい。
# cd /usr/local/src
# wget http://ftp.yz.yamagata-u.ac.jp/pub/network/apache//apr/apr-1.5.2.tar.gz
# tar -xvzf apr-1.5.2.tar.gz
# cd apr-1.5.2
# ./configure --prefix=/opt/apr/apr-1.5.2
# make
# make test
# make install
cd /usr/local/src
→インストールしたいディレクトリへ移動
wget
→URLからデータをダウンロード
tar -xvzf
→解凍して展開
./configure
→インストール時のMakefile作成スクリプト
make
→Makefileとかのコンパイルとか自動でしてくれる
make test
→動作検証
make install
→インストール
APR-utilのインストール
1.5.4が最新ぽい。
# cd /usr/local/src
# wget http://ftp.jaist.ac.jp/pub/apache//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=/opt/apr-util/apr-util-1.5.4 --with-apr=/opt/apr/apr-1.5.2
# make
# make test
# make install
コマンドの詳細は前項でやったので略。
Apacheのインストール
ソースコードのダウンロード
最新版は2.4.20な模様。
# cd /usr/local/src
# wget http://ftp.jaist.ac.jp/pub/apache//httpd/httpd-2.4.20.tar.gz
# tar -xvzf httpd-2.4.20.tar.gz
コンパイルとインストール
# cd /usr/local/src/httpd-2.4.9
# ./configure --prefix=/opt/httpd/httpd-2.4.20 --with-apr=/opt/apr/apr-1.5.2 --with-apr-util=/opt/apr-util/apr-util-1.5.4
# make
# make install
この時make test
はできない。→よくわからず??
起動
/opt/httpd/httpd-2.4.20/bin/apachectl start
→これでできた!
が、↓のメッセージが出る。
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
確実にサーバー設定してないからlocalhost.localdomainが取れないよ!設定して!みたいなことか。
/opt/httpd/httpd-2.4.20/conf/httpd.conf
で設定する。
httpd.configの設定
参考:http://kazmax.zpp.jp/apache/apache1.html
①UserとGroupを設定する
デフォルトだとUser, Groupにdeamon
が設定されている。
セキュリティ的には専用のものを用意した方が良いらしい。
(他のシステムでもdeamonを使う可能性があるので)
※deamonグループ:Linuxのサーバー用グループ
作ろうとしたらapache
さんが既にいるみたいなので、設定。
②ServerNameを設定する。
localhost:80
と設定してみる。
③Options Indexesの設定
Directory "/うんちゃら/htdocs/"
の下にあるOptions
から'Indexes'を削除する。
ディレクトリにアクセスしたときに中身が見えちゃうApacheのアレを抑制するため。
CentOSをDLするときに見えるやつ。
あれApacheだったんか。
-Indexes
でもよい模様。今回は消しました。
wget -d localhost:80
で確認できる。
④ServerTokensの設定
サーバーの応答ヘッダに表示する内容の設定。
ServerTokens Prod
を追加。(ファイルになかったので)
これを追加すると、Apacheであることぐらいしか相手に伝わらなくなる。
wget -d localhost:80
で確認できる。
confファイルがちゃんと書けたか確認
/opt/httpd/httpd-2.4.20/bin/apachectl configtest
これでSyntax OK
が出たらOK。
Serviceへの登録
長いの打つの大変じゃね?
service うんちゃら
でやりたい。
参考:http://kazmax.zpp.jp/apache/apache2.html
shell作るのか…。
cd /etc/init.d/
vim apache ※shell作成は別途
chmod 755 apache
chkconfig --add apache
最終的に作ったshell
# !/bin/sh
#
# chkconfig: 35 85 15
# descripution: apache 2.4.20
apachectl="/opt/httpd/httpd-2.4.20/bin/apachectl"
case "$1" in
start|stop|restart|graceful|graceful-stop|configtest|help)
$apachectl $@ ;;
*)
;;
esac
status系とstartsslは後で調整するので入れてない。
chkconfig: 35 85 15
の部分はデーモン制御スクリプトの実行順らしいです。
→あとで調べる。
mysqlインストール
yumを使ってインストール
yum install mysql-server
で入らない。
理由判明→http://www.kakiro-web.com/linux/mysql-install.html
CentOS7になり、標準リポジトリからMySQLはインストールできなくなっています。MySQLの公式サイトからRPMをダウンロードすることで、新しいバージョンのインストールを行うことができます。
マジですか。ないんですね。
これはまたソースコードから取り込むやつっぽい。
ソースコードからインストール
参考:http://eeggs.hatenablog.com/entry/2015/12/21/111438
rootユーザーで実施。
ユーザー作る
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
実はこの方法に至るまで七転八倒してたので、cmake
、ncurses-devel
、mariadb-libs
は既に入れてた。
この辺入れてないと次の工程でエラーになるだけなので、まあめんどくさいけどエラー見ながら後で入れてもいい。
インストールする
cd /usr/local/src
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.12.tar.gz
tar xvzf mysql-5.7.12.tar.gz
cd mysql-5.7.12
cmake . -DDEFAULT_CHARSET=utf8mb4 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/src
make
make install
この手順を基に別のものを作成してたんだけど、make
の前にこんなエラーが発生した。
CMake Error: your CXX compiler: “CMAKE_CXX_COMPILER-NOTFOUND” was not found. Please set CMAKE_CXX_COMPILER to a valid compiler path or name.
yum install gcc-c++
でかいけつした。
my.cnfの設定
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
viよりvimが好き。
下記設定追記。
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
explicit_defaults_for_timestamp = 1
default_password_lifetime = 0
初期化
mysql_install_db
は5.7から非推奨。
元々5.7から使ってるのでむしろmysql_install_db
使ったことない。
chown -R mysql:mysql /usr/local/mysql
/usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
--user=mysql
パスワード変更
--initialize-insecure
がパスワードを設定しないオプションなので、パスワード設定する。
su mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &
/usr/local/mysql/bin/mysql -u root
ここでmysqlユーザーにsuしてからやってみたけど、rootでも普通に起動できるの確認したった。
mysql> use mysql;
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password'
mysql> exit
エラーでた
解決策:http://certate.dip.jp/?p=478
[root@localhost mysql-5.7.12]# /usr/local/mysql/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
[Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
[Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
[ERROR] --initialize specified but the data directory has files in it. Aborting.
[ERROR] Aborting
自動起動できるようにする
参考:http://qiita.com/dribble13/items/20c769f1e94eceac0186
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chkconfig mysql on
chkconfig --list
を打って下みたいになればOK
mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
または、service mysql status
と打って下みたいになってればOK
SUCCESS! MySQL running (XXXX)
パスワード設定後は下記のコマンド入力後、パスワードを入力する。
/usr/local/mysql/bin/mysql -u root -p
リブートで確かめる。
失敗。起動しない。
手動起動するとこうなる
Starting MySQL.The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid).
/etc/my.cnf
に下記内容追加
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
もっかいリブートして確認!→できた☆
PHPのインストール
現時点でsymfony3.0.5が最新の安定バージョンみたいなので、これに合わせてPHPをインストールしようず!
https://packagist.org/packages/symfony/symfonyで確認すると、
phpは5.5.9以上ならOKらしい。
7.0.6をいれてみまんぼ。
以下、参考:http://docs.hatenablog.jp/entry/php7
ソースダウンロード→展開
/usr/local/src
へ。
wget http://jp2.php.net/get/php-7.0.6.tar.gz/from/this/mirror -O php-7.0.6.tar.gz
tar zxvf php-7.0.6.tar.gz
いまいちこういうURLってどうやって知るのかわからんぞう。
移動。
cd php-7.0.6/
http://www.phppro.jp/phpmanual/install_linux.php
今回は、Apacheのモジュールとして組み込む、日本語環境が使用できて、PostgreSQLとMySQLが使用できるようにします。下の例はApache2がインストールされている場合のものです。
とりあえず最低限はこれでいいのかな?
下記コマンドを打つ
./configure --with-apxs2 --enable-mbstring --enable-zend-multibyte --with-pgsql --with-mysql
エラー
Configuring SAPI modules
checking for Apache 2.0 handler-module support via DSO through APXS...
Sorry, I cannot run apxs. Possible reasons follow:
1. Perl is not installed
2. apxs was not found. Try to pass the path using --with-apxs2=/path/to/apxs
3. Apache was not built using --enable-so (the apxs usage page is displayed)
The output of apxs follows:
./configure: line 6208: apxs: command not found
configure: error: Aborting
APXS
がないって出る。
[http://tazakazushi.net/apache_no_apxs.html]
(http://tazakazushi.net/apache_no_apxs.html)
http-devel
入れればよいぽい。
yum install httpd-devel
もう一回./configure
やります。
はいエラー。
configure: error: xml2-config not found. Please check your libxml2 installation.
(http://d.hatena.ne.jp/yohei-a/20100426/1272275098)
[http://d.hatena.ne.jp/yohei-a/20100426/1272275098]
より、
libxml2-devel
を入れればよいぽい。
yum install libxml2-devel
もっかい。
はいエラー。
configure: error: Cannot find libpq-fe.h. Please specify correct PostgreSQL installation path
そもそも元のコマンドで--with-pgsql
いらんやん。
と気づく。
./configure --with-apxs2 --enable-mbstring --enable-zend-multibyte --with-mysql
うまくいったけど、警告で
WARNING: unrecognized options: --enable-zend-multibyte, --with-mysql
と出る。
mysqlないのん?
[http://php.net/manual/ja/configure.about.php]
(http://php.net/manual/ja/configure.about.php)
調べたら
./configure --with-apxs2
でいいっぽい?
後で追加できる。→後でコンパイルすればOK
でもこのときは、すべてのオプションを書く必要あり。
削除の場合はmake clean
でキャッシュ消してからもっかいやる。
成功するとconfig.nice
ができる。
追加する場合はconfig.nice [オプション]
で追加できちゃったりする。
make
make test
make install
こういう書き方できるらしい。
てかmake test
飛ばしても問題ないそうな。
./configure && make && make install
&&
使うと失敗すると止まるらしい。
パイプは標準出力だけど、これはコマンドの実行結果をみてやってくれる。
確認する。
php -v
おk
PHP 7.0.6 (cli) (built: May 9 2016 02:39:54) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
設定が抜けてる場合→iniファイルを変更してApache再起動
ライブラリが抜けてる場合→コンパイルをし直す。
symfony3のインストール
公式:http://symfony.com/download#symfony1
参考:http://qiita.com/ma2saka/items/2cd6cb3a8007fdf9fe2e
sudo curl -LsS http://symfony.com/installer -o /usr/local/bin/symfony
sudo chmod a+x /usr/local/bin/symfony
symfony --verion
エラー。
Fatal error: Uncaught PharException: zlib extension is required for gz compressed .phar file "/usr/local/bin/symfony" in /usr/local/bin/symfony:9
Stack trace:
# 0 /usr/local/bin/symfony(9): Phar::mapPhar('default.phar')
# 1 {main}
thrown in /usr/local/bin/symfony on line 9
必要な物が足りないようだ……。
yum search zlib
読み込んだプラグイン:fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
===================================== N/S matched: zlib =====================================
jzlib.noarch : Re-implementation of zlib in pure Java
jzlib-demo.noarch : Examples for jzlib
jzlib-javadoc.noarch : API documentation for jzlib
perl-Compress-Raw-Zlib.x86_64 : Low-level interface to the zlib compression library
perl-IO-Zlib.noarch : Perl IO:: style interface to Compress::Zlib
zlib-devel.i686 : Header files and libraries for Zlib development
zlib-devel.x86_64 : Header files and libraries for Zlib development
zlib-static.i686 : Static libraries for Zlib development
zlib-static.x86_64 : Static libraries for Zlib development
zlib.i686 : The compression and decompression library
zlib.x86_64 : The compression and decompression library
調べてみたら入ってた。(zlib-devel.x86_64
)
オプションどうつければいいかチェック
./configure --help | grep zlib
--with-zlib=DIR Include ZLIB support (requires zlib >= 1.0.9)
--with-zlib-dir=<DIR> Define the location of zlib install directory
--with-zlib-dir=DIR GD: Set the path to libz install prefix
--with-zlib-dir=DIR PDO_MySQL: Set the path to libz install prefix
--with-zlib-dir=DIR ZIP: Set the path to libz install prefix
--with-zlib-dir=DIR mysqlnd: Set the path to libz install prefix
こんな感じに。
どれやねん……。
とりあえずこうしてみる。
ちなみにこれな、phpがあるディレクトリの下じゃないとアカンねんて!
てかmakeコマンドとかその辺めっちゃわけわからん。
ちな、ここな→/usr/local/src/php-7.0.6
./configure --with-apxs2 --with-zlib --with-zlib-dir=/usr
make && make install
確認
symfony --verion
Symfony Installer (1.5.1)
=========================
This is the official installer to start new projects based on the
Symfony full-stack framework.
To create a new project called blog in the current directory using
the latest stable version of Symfony, execute the following command:
symfony new blog
Create a project based on the Symfony Long Term Support version (LTS):
symfony new blog lts
Create a project based on a specific Symfony branch:
symfony new blog 2.3
Create a project based on a specific Symfony version:
symfony new blog 2.5.6
Create a demo application to learn how a Symfony application works:
symfony demo
Updating the Symfony Installer
------------------------------
New versions of the Symfony Installer are released regularly. To update your
installer version, execute the following command:
symfony self-update
できた?
ここから新規プロジェクトとか作るときにインストールされる?っぽい。
これはインストーラっぽい。
ここから新しいの作るよーって感じか
あ、でもdemo以外だとバージョン指定できるぽいね。
それはおいおい。
追記
別サーバーで構築しようとしてたらこんなエラー
[GuzzleHttp\Exception\RequestException]
Error creating resource: [message] fopen(): Unable to find the wrapper "https" - did you forget t
o enable it when you configured PHP?
[file] phar:///usr/local/bin/symfony/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php
[line] 406
[message] fopen(https://get.symfony.com/symfony.version): failed to open stream: No such file or
directory
[file] phar:///usr/local/bin/symfony/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php
[line] 406
[message] Undefined variable: http_response_header
[file] phar:///usr/local/bin/symfony/vendor/guzzlehttp/ringphp/src/Client/StreamHandler.php
[line] 407
openssl入れる。
develってのが足りない場合がおおいらしい。
yum install openssl-devel
make && make install
追記2
pdoが足りなかった。
php -i | grep configure | sed -e 's/ /\n/g'
これでチェックしたけどやっぱり足りなかった。
もっかい。
./configure --with-apxs2 --with-zlib --with-zlib-dir=/usr --with-openssl --with-pdo-mysql
これでまたmake
する。