Laravelフレームワークの下準備をVirtualBox + CentOS7で行う
はじめに
Laravelを初めて使ってみることにしました。一番選ばれている印象が勝手にあります。
時間が許せばPhalconも使ってみる予定です。
ちなみに、私はSymfonyばかり使ってきた人間です。
バージョンはLTS(Long Term Support)の5.5を採用します。
5.5のドキュメントのGetting Startedに従って進めていきます。
https://laravel.com/docs/5.5/installation
手順
前提条件
必要なPHPの機能として、下記が要求されています。
Homesteadを使えば別なのですが、今回は使いません。
However, if you are not using Homestead, you will need to make sure your server meets the following requirements: PHP >= 7.0.0 OpenSSL PHP Extension PDO PHP Extension Mbstring PHP Extension Tokenizer PHP Extension XML PHP Extension
現在のモジュールを見たい場合は、下記のどちらかのコマンドでみることができます。
$ php -m $ php --modules
それと、Composerを使うことになるので、ない場合はインストールしましょう。 hrroct.hatenablog.com
Laravelのインストール
参照元に書いてあるとおりですが、下記を実行します。
$ composer global require "laravel/installer"
エラーが出たら随時対応しましょう。
私の場合はPHP extensionのzipがないよと言われました。
Problem 1 - laravel/installer v2.0.1 requires ext-zip * -> the requested PHP extension zip is missing from your system. - laravel/installer v2.0.0 requires ext-zip * -> the requested PHP extension zip is missing from your system. - Installation request for laravel/installer ^2.0 -> satisfiable by laravel/installer[v2.0.0, v2.0.1].
これは普通にyumでインストール可能です。
$ sudo yum install php-zip
私の場合は、PHP7をremiレポジトリを使って入れたので、指定が必要でしたが。
$ sudo yum install --enablerepo=remi,remi-php70 php-zip
改めて実行すると、成功のようでした。
$ composer global require "laravel/installer" Changed current directory to /home/${USER}/.config/composer Using version ^2.0 for laravel/installer ./composer.json has been updated Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files
そして指定通り、PATHを通しておきます。
$ vim /home/${USER}/.bash_profile export PATH=$PATH:$HOME/.config/composer/vendor/bin
ここでようやくインストールが完了です。
$ laravel --version
Laravel Installer 2.0.1
Laravelアプリケーションを作成する
パーミッションの関係もあって、rootで下記を実行してみたのですが。
# pwd /var/www/html # laravel new blog
Laravel 5.5系を想定していましたが、5.7系で作成されようとしているようで、エラーが頻発しました。
そこでもう一つの方法でインストールすることに。
composer create-project --prefer-dist laravel/laravel blog "5.5.*"
こちらならバージョンが指定できますし、問題なく成功しました。
ログは長いので省略で…。
php artisan serve
でサーバーを立てることが可能ですが、私の場合は仮想サーバーに立てたApache経由でアクセスさせることに。
そして下記にアクセス。
http://localhost:8080/blog/public/index.php
(私の場合は8080->80になるようポートフォワーディング設定をしております)
※ポートフォワーディングの設定についてはこちらをどうぞ。
hrroct.hatenablog.com
blog/public/.htaccessがきちんと動いていれば、index.phpはつけなくともアクセスできます。
http://localhost:8080/blog/public/
画面左上にこんなエラーが出ていたので、
The stream or file "/var/www/html/blog/storage/logs/laravel.log" could not be opened: failed to open stream: Permission denied
file_put_contents(/var/www/html/blog/storage/framework/sessions/tEHcnx2EJlGPRhLX4dH1zzrxxs3YXlWTVFY6NTHi): failed to open stream: Permission denied
file_put_contents(/var/www/html/blog/storage/framework/views/e96dfdf9e620607c1c331f2ec0b144a5937ac771.php): failed to open stream: Permission denied
それぞれこんなコマンドで対応。
# chmod 777 /var/www/html/blog/storage/logs/ # chmod 777 /var/www/html/blog/storage/framework/sessions/ # chmod 777 /var/www/html/blog/storage/framework/views/
SELinux関連の可能性もあります。
切り分けのために、下記コマンドで一時的に無効化してみるといいと思います。
setenforce 0
完了
こんな超絶シンプル画面が表示されます。
背景が現在白なので全然境目がわからなさそう…。
最後に
この先はLaravelの自体の話になるので、また別の機会に回します。
以上でした!
CentOS 7にComposerをインストール
はじめに
CentOS 7にcomposerをインストールします。 getcomposer.org
"Dependency Manager for PHP" とある通り、PHPをインストールしていることが前提です。
また、私はVirtualBox上のCentOS 7に対して実行します。が、直インストールされている場合と大差ないと思われます。
手順
公式サイトにあるとおりに実行していきます。
まずはダウンロードから。
特にインストール場所やバージョンを指定しないなから、書いてある通りです。
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');"
実行ファイルなのでbin配下に移動しておきます。
ユーザーによるインストールなので、/usr/local/bin/へ。
# mv composer.phar /usr/local/bin/composer # composer --version Composer version 1.8.0 2018-12-03 10:31:16
最後に
あっさり終わってしまったので、これにておしまいです。 以上でした!
Wikipediaのデータからプレーンテキストを出力
はじめに
Wikipediaのデータを出力する方法はいろいろあります。
その中のひとつ、Wikipedia Extractorを試してみました。
Wikipedia Extractor - Medialab
やり方
データはここから取得しました。
Index of /jawiki/latest/
jawiki-latest-pages-articles.xml.bz2
そして、データのあるディレクトリにPythonファイルをダウンロード。
$ curl -O http://medialab.di.unipi.it/Project/SemaWiki/Tools/WikiExtractor.py
バージョンを確認。
$ python WikiExtractor.py --version
WikiExtractor.py 2.55
オプションは公式ページにある通りです。
-h, --help show this help message and exit -o OUTPUT, --output OUTPUT output directory -b n[KM], --bytes n[KM] put specified bytes per output file (default is 1M) -B BASE, --base BASE base URL for the Wikipedia pages -c, --compress compress output files using bzip -l, --links preserve links -ns ns1,ns2, --namespaces ns1,ns2 accepted namespaces -q, --quiet suppress reporting progress info -s, --sections preserve sections -a, --article analyze a file containing a single article --templates TEMPLATES use or create file containing templates -v, --version print program version
引用元: http://medialab.di.unipi.it/wiki/Wikipedia_Extractor
私は下記の通りに実行しました。
$ python WikiExtractor.py --output ./text --bytes 500K jawiki-latest-pages-articles.xml
こんなディレクトリ構成になります。
$ ls -alR text/ text/: 合計 4 drwxrwxr-x. 3 user group 16 12月 30 20:27 . drwxr-xr-x. 3 user group 111 12月 30 21:11 .. drwxrwxr-x. 2 user group 4096 12月 30 21:11 AA text/AA: 合計 19764 drwxrwxr-x. 2 user group 4096 12月 30 21:11 . drwxrwxr-x. 3 user group 16 12月 30 20:27 .. -rw-rw-r--. 1 user group 500699 12月 30 21:08 wiki_00 -rw-rw-r--. 1 user group 489585 12月 30 21:08 wiki_01 -rw-rw-r--. 1 user group 510798 12月 30 21:08 wiki_02
内容はこんな感じ。docタグに囲まれて1記事が出力されています。
url属性にあるURLが元記事のURLなのですが、h2タグに当たる部分が省かれていることがわかります。
<doc id="56" url="https://ja.wikipedia.org/wiki?curid=56" title="地理"> 地理 地理(ちり、英: Geography) 「地理」という表現は古くからあり、有名なところでは漢書の『地理志』がある。 地理学とは、地球の表面と住民の状態、その相互関係を研究する学問である。 「地理」は、日本の学校で設置されている、「人間の生活に影響を与える地域的、社会的な構造」を学ぶための科目である。自然環境や産業環境などを含む環境を学習対象としている。小学校および中学校においては、歴史や公民と並び、社会科の一分野である。高等学校においては、最近は「地理歴史科」という教科の中の一科目となっており、「地理A」「地理B」に細分されている。 </doc>
気になる点
私はヘッダタグ部分もほしかったので、ちょっと残念。
そして、私の環境では、なぜか処理が途中で中断してしまいます。
食わせるファイルのサイズが大きかったからでしょうか。
$ python WikiExtractor.py --output ./text --bytes 500K jawiki-latest-pages-articles.xml INFO: Loaded 0 templates in 0.0s INFO: Starting page extraction from jawiki-latest-pages-articles.xml. INFO: Using 1 extract processes. zsh: killed python WikiExtractor.py --output ./text --bytes 500K
さいごに
なかなか自分がほしい形式で出力してくれるものが見つかりませんね。
自分で作るのが一番なのかも…と思いました。
以上でした!
WikipediaのデータをMySQLに突っ込んだ話
はじめに
Wikipediaのデータを、VitualBoxで立ち上げたCentOS7のMySQLに入れてみました。
クローラーでのコンテンツの取得は禁じられているので、要注意です。
Wikipedia:データベースダウンロード - Wikipedia
クローラを用いてコンテンツを収集しないでください。
その代わり、Wikipediaのデータは圧縮されたXMLファイルで提供されています。
ここでは、そのデータを取り込む方法を書いていきます。
ただし、DBに格納されるデータは、MediaWiki形式で書かれた文字列なので、そのまま他に流用は厳しいです。
(ということがわかりました)
作業の流れ
上記の通り、このXMLのファイルを取り込むのですが、そのためのPHPファイルも提供されています。
Wikipedia:データベースダウンロード - Wikipedia
これらのXMLファイルをMySQLデータベースにインポートするには、MediaWiki配布物に含まれるimportDump.phpスクリプトを使用します。
$ bunzip2 -c pages-articles.xml.bz2 | php maintenance/importDump.php
コマンドを叩くだけなら簡単、と思いますが…これを動かすには、最終的には「LocalSettings.php」というファイルが必要です。
このファイルには、主にDBへの接続情報が書かれています。
接続情報なしにデータベースにはデータを入れることはできないで、当たり前といえばそれまでですが。
そしてその「LocalSettings.php」は、MediaWikiのインストールの過程で作成されるものです。
つまり…
必要があるということです。ちょっと遠回り。
Wikipediaのデータ
日本語のデータについては、こちらに入っています。
Index of /jawiki/
XML形式のファイルで、UTF-8です。
欲しいデータはWkipediaのごく一部のページでも、どこにあるかはわかりづらくなっています。
記事が入っているデータは、
Index of /jawiki/latest/
jawiki-latest-pages-articles.xml.bz2
これになります。圧縮された状態で2.8GBくらいありますね。 分割されたデータもあり、それは
jawiki-latest-pages-articles1.xml.bz2 jawiki-latest-pages-articles2.xml.bz2 jawiki-latest-pages-articles3.xml.bz2 ...
のように連番になっています。
データを取り込むには?
Wikipedia:データベースダウンロード - Wikipedia
上にも書きましたが、下記コマンドを実行することを目指します。
$ bunzip2 -c pages-articles.xml.bz2 | php maintenance/importDump.php
データを取り込むまでに必要な準備
bzip2のインストール
人によっては入っていないと思いますので、まずはここから…。 CentOSならyumですぐにインストールできます。
$ sudo yum search bzip2 $ sudo yum install bzip2.x86_64 $ bzip2 -V bzip2, a block-sorting file compressor. Version 1.0.6, 6-Sept-2010. Copyright (C) 1996-2010 by Julian Seward. This program is free software; you can redistribute it and/or modify it under the terms set out in the LICENSE file, which is included in the bzip2-1.0.6 source distribution. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the LICENSE file for more details. bzip2: I won't write compressed data to a terminal. bzip2: For help, type: `bzip2 --help'.
解凍時は、こんなふうに使います。 特別難しいことはありません。
$ bunzip2 jawiki-latest-pages-articles.xml.bz2
記事のダウンロード
$ curl -O https://dumps.wikimedia.org/jawiki/latest/jawiki-latest-pages-articles.xml.bz2
importData.php のダウンロード
といいますか、MediaWikiのソースコードのダウンロードです。
importData.phpは、MediaWikiのソースコード内にある maintenance/importData.php
です。
メンテナンスツールの一部なのでしょう。
今回はgit cloneで入手します。
MediaWiki · mediawiki
$ git clone https://phabricator.wikimedia.org/source/mediawiki.git
この時点で試しに実行
私が実行したときは、書かれたコマンドの準備ができたということで、(LocalSettings.phpはないものの)実行してみたのでした。
そうしましたら、
$ php mediawiki/maintenance/importDump.php < jawiki-latest-pages-articles.xml Error: You are missing some external dependencies. MediaWiki now also has some external dependencies that need to be installed via composer or from a separate git repo. Please see https://www.mediawiki.org/wiki/Download_from_Git#Fetch_external_libraries for help on installing the required components.
私の場合「LocalSettings.php」がないという以外のエラーが出ました。
「いくつかの外部依存が足りていない。MediaWikiはいくつかの外部依存が必要で、それはcomposerで取ってくるか、gitから取ってきてくれ。詳しくはこのURLを見てね(超意訳)」
とのことなので、URL先を見てみる。
やり方はcomposerを使うか、gitで落としてきてもいいらしい。 composerがなかったので、私はgitで取得することにしました。
vendor/のダウンロード
MediaWikiの vendor/
ディレクトリをgit cloneしてくるだけなので楽です。
$ cd mediawiki/ $ git clone https://gerrit.wikimedia.org/r/p/mediawiki/vendor.git
そして改めて実行するわけですが、
$ php mediawiki/maintenance/importDump.php < jawiki-latest-pages-articles.xml Error: Missing one or more required components of PHP. You are missing a required extension to PHP that MediaWiki needs. Please install: * xml <https://secure.php.net/xml>
Errorが出ましたが、私の場合はPHPのモジュールとしてのxmlがインストールされてませんでした。
人によって足りないものが異なるでしょうから、一度実行してみるのがよいと思います。
phpの足りない拡張機能をインストール
ここは他のサイトに説明を譲ります。
そして再実行
$ php mediawiki/maintenance/importDump.php < jawiki-latest-pages-articles.xml A copy of your installation's LocalSettings.php must exist and be readable in the source directory. Use --conf to specify it.
ここで「LocalSettings.php」が必要だと言われます。
冒頭に書いたとおり、ここで諦めてMediaWikiをインストールして、その過程で生成しようと思います。
MediaWikiをインストール
ということで、まずはMediaWikiをブラウザから見れるように、ソースコードをドキュメントルートに持っていきます。
私の場合、ホームディレクトリに置いていたので移動します。
# cp -rp mediawiki/ /var/www/html/
下記にアクセスして、
http://localhost:8080/mediawiki/index.php
下記の画面が表示されれば、いったん成功になります。
こんなエラーがCentOSで出る場合はSELinux関連の可能性があります。
[Sun Dec 16 23:21:25.810925 2018] [:error] [pid 12818] [client 10.0.2.2:60328] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 [Sun Dec 16 23:21:25.810984 2018] [:error] [pid 12818] [client 10.0.2.2:60328] PHP Fatal error: Unknown: Failed opening required '/var/www/html/mediawiki/index.php' (include_path='.:/usr/share/pear:/usr/share/php') in Unknown on line 0
MediaWikiの設定を行う
長い。道のりが長くて記事を分割したくなりますが、まだタイトルに行き着いていないのでがんばります。
基本的にはポチポチクリックして進めていきます。
ここは日本語そのままでよいでしょう。
ここでDBの接続情報、ユーザーの情報を入れます。
MySQLなので、ストレージエンジンの選択を行います。
データ取得が目的なので、私の場合は何でもよかったです。
飽きたので、とにかくインストールしてもらいます。
これでインストールが完了します。
ここでようやく、LocalSettings.phpをゲットできます。
ようやく実行
$ php mediawiki/maintenance/importDump.php < jawiki-latest-pages-articles.xml
したのですが…
私の環境では3日経ってもimportが終わりませんでした…
(メモリ8G、Core i5(第8世代)のノートPC)
Wikipediaのデータ量、恐るべし。
私のときは、下記エラーがたくさんできるので、設定しておいたほうが無難かも、です。
PHP Notice: Undefined index: SERVER_NAME in /var/www/html/mediawiki/includes/GlobalFunctions.php on line 1374
もうひとつのやり方?
xml2sqlを使う手段もあるそうですが、どうやら非推奨のようです。
最後に
次はデータベースの中身の話ですが…
長くなるので、続きは別記事で。
以上でした!
TeraTermのカラーテーマをSolarizedに変更する
はじめに
私はWindowsを使う機会が多く、ターミナルエミュレータにはTera Termを使用しております。
マクロが便利で、手放せません。
https://ja.osdn.net/projects/ttssh2/
そんなTera Termにもカラースキーム、カラーテーマを変更する手段があります。
そのご紹介です。
変更の仕方
設定ファイルに、手でカラーコードを指定することになります。
これだとどう数字を設定したらいいかがわかりにくいですが…
Solarizedについては、コメントアウトされて既に書いてあります。
DarkもLightもいけます。
Tera Termの設定ファイルは「TERATERM.INI」です。
場所は、Windows7もWindows10も、同じだと思います。
C:\Program Files (x86)\teraterm\TERATERM.INI
2021/07/06 追記:
ないぞという方は、こちらにあるかも知れません。
%LOCALAPPDATA%\VirtualStore\Program Files (x86)\teraterm
このファイルを開いて、「Solarized」を検索してみてください。
コメントアウトされているところが複数あるので、全部Solarizedの設定と入れ替えてください。
例えば…
Before:
; Text and background colors ; for Normal characters VTColor=255,255,255,0,0,0 ; Solarized Dark ;VTColor=131,148,150,0,43,54 ; Solarized Light ;VTColor=101,123,131,253,246,227
After:
; Text and background colors ; for Normal characters ;VTColor=255,255,255,0,0,0 ; Solarized Dark VTColor=131,148,150,0,43,54 ; Solarized Light ;VTColor=101,123,131,253,246,227
こんな感じです。
ちょっとわかりづらいとは思いますが…
最後に
以上、小ネタでした。
Tera Termをご利用の方は、ぜひ一度試してみてください。
以上でした。