mazeltov7のweb断片

備忘録的なテキトーなことを書きます。(技術記事はQiitaに移行しました http://qiita.com/mazeltov7 )

さくらVPSにApache, PHP環境作る

こちらの続き さくらVPSにCentOS入れたらすること - mazeltov7のweb断片

Apacheのインストール

$ sudo yum install httpd
$ httpd -v #確認
$ sudo chkconfig httpd on #サーバー起動時に同時に起動するようにする
$ chkconfig --list httpd # 2~5onでおk
httpd     0:off  1:off  2:on  3:on  4:on  5:on  6:off

Apacheの初期設定

$ sudo cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org  #バックアップ
$ sudo vim /etc/httpd/conf/httpd.conf

httpd.confファイルはデカ過ぎワロタ状態なので、:set numberで行数打って飛ばないとしぬ この辺りはこちらに詳しいので設定箇所はこちらを。
さくらVPSサーバにLAMP環境(Apache,PHP,Mysql)を設定する | NEZU.log

hostnameを変更してた場合は、$ apachectl configtestしたときにCould not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerNameと出るかもしれない。
Apacheのエラー:Could not reliably determine the server’s fully qualified domain name〜とメッセージが出たときの対応 - yummy-yummy
まさにこの通りなので設定する。

これでIPアドレスでアクセスするとapacheテストページが表示される!yay

PHPを入れる

yumで入れると古いのが入るようなので、phpenvかphpbrewで入れる検討をする。と思ったらphpbrewがcentosサポートしてなくてふいた。てことで、phpenv。

phpenv入れる

$ mkdir -p repos/git
$ cd repos/git
$ git clone https://github.com/CHH/phpenv.git
$ cd phpenv/bin
$ ./phpenv-install.sh

bashrcに

$ vim ~/.bashrc
export PATH="/path/to/.phpenv/bin:$PATH"
eval "$(phpenv init -)"

で、

$ source ~/.bashrc

でおk。

php-build入れる
phpenv入れたときに.phpenvできてるので、その中のプラグインに入れる。

$ git clone git://github.com/CHH/php-build.git $HOME/.phpenv/plugins/php-build
$ phpenv install --list #確認でおk

phpを入れる

$ phpenv install ヴァージョン #何はともあれインストール

と思ったら、

configure: WARNING: You will need re2c 0.13.4 or later if you want to regenerate PHP parsers.  
configure: error: xml2-config not found. Please check your libxml2 installation.  

これこれいるねんと案の定出たので、しゃあなしに先人の知恵を借りる。
phpenvで複数のPHPのバージョンを管理する - Qiita
ここ通りに必要なもの入れる。 epel先生ありがとう!tsukubaありがとう! で、phpenv global OOでセットして確認しておk!

からの、とりあえず、/var/www/htmlでphp使えるようにするの以下。

$ vi /etc/httpd/conf/httpd.conf

こちらを参考にphp使えるようにする。
Apache2 PHP5 インストール | CentOSサーバー構築マニュアル
http://dotinstall.com/lessons/basic_sakura_vps/8015

で、やってphpは入ったけど、ページアクセスで、phpinfo() が出ないという状況にはまった。。
/etc/httpd/conf.d/にphp.conf無いし、httpd.confにmod_phpについてかかれてなくておかしいな??となってて、もっかい以下で入れなおすとちゃんと上記反映されて表示できた。

yum install --enablerepo=remi --enablerepo=remi-php55 php php-opcache php-devel php-mbstring php-mcrypt php-mysqlnd php-phpunit-PHPUnit php-pecl-xdebug

あと、403エラーや500エラーが出たりして、/var/www/htmlの権限を変えたり、/home/usernameのホームの権限を変えたりしてちゃんと反映された。

ふぃ

追記(2016/10/17): ここにあるようにphpenvで再度やったけど、cliapacheサーバーのphpがちょとややこしいので、phpenv消して、普通にyumとepel, remiで入れた。
参考はこの辺り。 CentOS6.4(6.5)のPHPを5.6にアップデートする方法 - Qiita