ラベル Apache の投稿を表示しています。 すべての投稿を表示
ラベル Apache の投稿を表示しています。 すべての投稿を表示

2017/07/21

Laravel 5.1 の quickstart を Laravel 5.4 で実行する

Laravel には tutorial 的な quickstart があるのですが、ドキュメントは 5.1 までしか提供されていない。
5.4 の tutorial 的なものは laracast という形で動画で提供されています。
動画を見てコードを書くのが性に合わなかったので 5.4 で 5.1 の quickstart をやってみたログ。
ちなみに作るものは所謂 TODO リストというやつで、よくチュートリアルで作るやつですね。
index, create, delete があるだけ、って感じ。


環境

  • Scientific Linux release 7.2 (Nitrogen)
  • PHP 5.6.30
  • Laravel 5.4.22
  • Apache httpd 2.4.26


5.1 -> 5.4 変更点

具体的な変更点は実は1つしかなくて、Routing の `app/Http/routes.php` の内容を `routes/web.php` に置くだけ。
どうやら Laravel 5.4.22 は api/web/console/channel ごとに routes を分けられる構成になっているっぽい。
書いてて思ったけれど割とモダン。
OR-mapper も extends するだけて使えるタイプっぽいし。
個人的には Routing 部分に処理が出てきたりするのは Sinatra っぽいな、と感じました。
あと html template の名前が blade でかっこ良い。が、宿命的に書きづらい。
ということで作った Repository はこちら。5.4 環境でも何ら問題無く動きます。



Apache 2.4.26 で動かす

Apache 2.4.26 で動かすためには `public` を DocumentRoot にする必要があります。
例えば
DocumentRoot "/home/atton/quickstart/public/"
<Directory "/home/atton/quickstart/public/">
とか。 permission もきちと整えておくこと。
あと DirectoryIndex は index.php にしておいた方が良いかも。
それと AllowOverride All と Requite all granted を書いておくこと必要があります。
加えて LoadModule rewrite_module modules/mod_rewrite.so をコメントインしておく。
.htaccess とかは Laravel が用意してくれるので問題無し。

さらに言えば、使うDatabase が MySQL なら MySQL の PDO が必要なので ./configure の段階で
  • ./configure --with-openssl --with-zlib --enable-mbstring --enable-zip --with-apxs2=/usr/local/apache2/bin/apxs --with-pdo-mysql
とかしておく必要があります。つまり前記事の段階ではオプションが足りていなかったってことですね。
ということで 5.1 の quickstart を 5.4 で動かしたログでした。


参考

2017/07/06

php 5.x + apache httpd 2.4.x を make する

php 5.x 系の最新版と httpd 2.4.x 系の最新版を make したログ


環境

  • Scientific Linux release 7.2 (Nitrogen)
  • Apache httpd 2.4.26
  • php 5.6.30



httpd 2.4.26 の make

  • # yum install -y wget apr apr-devel apr-util apr-util-devel gcc pcre pcre-devel perl perl-devel libtool libtool-devel systemd-devel
  • # wget http://ftp.tsukuba.wide.ad.jp/software/apache//httpd/httpd-2.4.26.tar.gz
  • # tar xzf httpd-2.4.26.tar.gz
  • # cd httpd-2.4.26
  • # ./configure --enable-rewrite
    • とりあえず rewrite くらいで。
    • 必要なものは ./configure --help にあるものから確認して追加していけば良い
  • # make
  • # make install
ちなみに /usr/local/apache2 の下に bin とかが入ります。


httpd を systemd 管理下に置く

このままだと起動するのが面倒なので systemd 経由で起動できるように。
この記事を参考に service を作る。
私は apr も apr-util も pcre も yum にあるものを作ったのでこんな感じ。


こいつで systemd に認識させてやるといつも通りの
  • # systemctl status httpd
  • # systemctl start httpd
とかできるようになります。

  • $ curl http://localhost
して It Works! が出たら httpd が動いています。



php 5.x を make する

  • # yum install -y libxml2 libxml2-devel
  • # wget http://jp2.php.net/get/php-5.6.30.tar.gz/from/this/mirror -O php-5.6.30.tar.gz
  • # tar xzf php-5.6.30.tar.gz
  • # cd php-5.6.30
  • # ./configure --with-apxs2=/usr/local/apache2/bin/apxs
    • ポイントはここ。
    • libphp5.so を作るために apx を指定します。
    • これを書いておくと httpd.conf で LoadModule できる場所に libphp5.so ができる。
  • # make
  • # make test
  • # make install
これで php が入りました。
/usr/local/apache2/modules/libphp5.so とかができているはずです。


httpd に php を認識させる

両方とも make できたのであとは設定。
httpd の DocumentRoot はデフォルトでは /usr/local/apache2/htdocs/ なので
  • # vi /usr/local/apache2/htdocs/hoge.php
    • <?php phpinfo() ?>
    • とか。
  • # vi /usr/local/apache2/conf/httpd.conf
    • LoadModule php5_module modules/libphp5.so
    • <FilesMatch \.php$>
    •     SetHandler application/x-httpd-php
    • </FilesMatch>
    • あたりを追記。
    • LoadModule は勝手に追記されてたりします。
  • # systemctl restart httpd
  • $ curl http://localhost/hoge.php
大量の html が流れてきたら php が動いています。
ブラウザからアクセスすると php の情報が見られるはずです。やったね。



参考