とりあえずPHPでHelloWorld
やっと環境ができたので、
プログラムで最初にやるのはHelloWorldの表示させることでしょうか
<?php echo "HelloWorld"; ?>
まあ、表示するだけなら上ので終わりなんですよね
なので練習問題的なのを探してそれをやってみました
<?php /** * * ループでHello World!5回表示する * * http://vipprog.net/wiki/exercise.html#eb2c4338 * */ for ($i=0; $i<5; $i++) { echo "HelloWorld!".nl2br("\n"); } ?>
classを使うとこんな感じ?
<?php /** * * ループでHello World!5回表示する * * http://vipprog.net/wiki/exercise.html#eb2c4338 * */ class HelloWorldObj { private $count = 0; private $text = "HelloWorld!"; public function getText() { return $this->text; } public function setCount($count) { $this->count = $count; } public function loopEcho() { for ($i=0; $i<$this->count; $i++) { echo $this->getText().nl2br("\n"); } } } $HelloWorld = new HelloWorldObj(); $HelloWorld->setCount(5); $HelloWorld->loopEcho(); ?>
次は順番で行くとfizzbuzzかな
あとnl2brがnewline to breakって意味だってわかった
Vagrantの共有フォルダで403Forbiddenエラーがでる
Vagrantの共有フォルダをhttpdのDocumentRootとして扱う
これならWindows上でファイル編集できるからやりやすそうと思ってVagrantfileを編集してみた
config.vm.synced_folder "../data/var/www/html", "/var/www/html"
これで/html/index.htmlとか作って表示をさせたかった
アクセスしてみると403エラー
アクセスしてみると次の403エラーで表示できなかった
Forbidden You don't have permission to access /index.html on this server.
表示させるには?
SELinuxを無効にすればとりあえずは表示するようになった
SELinuxの操作
SELinuxの確認
# getenforce Enforcing
SELinuxを一時的に有効、無効にする
SELinuxを一時的に無効にする
# setenforce 0
SELinuxを一時的に有効にする
# setenforce 1
上の設定はサーバー再起動すると元に戻る
SELinuxの設定
サーバーを再起動させても設定を保持したい場合は設定ファイルを変更しないといけない
;; 設定ファイルの場所 # vi /etc/selinux/config
でファイルを開いたあとSELINUX=***の箇所を変更する
;; 有効 SELINUX=enforcing
;; 無効 SELINUX=disabled
変更したあとサーバーを再起動させる
ps
SELinuxを有効のまま表示させる方法は結局わからなかった
Vagrant1.9.1でprivate_networkを設定しても有効にならない現象
Vagrantの記事をみると当たり前のようにprivate_networkの設定をやってます。
私の記事では設定は飛ばしてました。
それは、設定ができなかったから・・・
過去記事から延々と探しても探しても
config.vm.network “private_network”, ip: “192.168.33.10” これでOK
としか書いてなくて、どうししたらええんや (ノ`Д´)ノ.:・┻┻)`з゜)・:゙;
このエントリーはprivate_networkの設定までのメモです。
Vagrant1.9.1でprivate_networkを設定しても有効にならない現象
Vagrantfileのprivate_networkを設定しても指定したIPで接続できない
#Vagrantfileの変更箇所 config.vm.network "private_network", ip: "192.168.33.10"
CentOSに接続してIPを確認してもVagrantfileで設定したIPがない
[vagrant@localhost ~]$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:22:5b:53 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0 valid_lft 86390sec preferred_lft 86390sec inet6 fe80::5054:ff:fe22:5b53/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000 link/ether 08:00:27:05:e3:07 brd ff:ff:ff:ff:ff:ff
次のコマンドでVagrantfileのprivate_networkが有効になる
[vagrant@localhost ~]$systemctl restart network
有効になってるか確認 private_networkで指定したIPが表示されてればつながるはず
[vagrant@localhost ~]$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 52:54:00:22:5b:53 brd ff:ff:ff:ff:ff:ff inet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic eth0 valid_lft 86387sec preferred_lft 86387sec inet6 fe80::5054:ff:fe22:5b53/64 scope link valid_lft forever preferred_lft forever 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 08:00:27:05:e3:07 brd ff:ff:ff:ff:ff:ff inet 192.168.33.10/24 brd 192.168.33.255 scope global eth1 valid_lft forever preferred_lft forever inet6 fe80::a00:27ff:fe05:e307/64 scope link valid_lft forever preferred_lft forevre
原因
Vagrant1.9.1でのバグっぽい
https://github.com/mitchellh/vagrant/issues/8096
対応
下のどれかでしのぐ
- ログインしたあとコマンドでsystemctl restart networkする
- Vagrantfileに
config.vm.provision "shell", inline: "systemctl restart network.service", run: "always"
を追加する - 1.9.2がでるまで1.9.0を使う
ですかねー
はてなブログにGoogleアナリティクスを設定する
ブログやってる人はほぼ設定してるとおもうGoogleアナリティクス
ブログ開始して一ヶ月たったけど設定してませんでした
なので、Googleアナリティクスを設定までのメモです
googleアナリティクスを登録する
1. googleアカウントを作る
googleアカウントは作成済みとしてすすむ
2. googleアナリティクスを登録する
にアクセスして作ったgoogleアカウントでログインします。
ログインしたら「お申し込み」を選択します
次に
を設定して「トラッキングIDを取得」を選択します。
次の画面に移ったら「UA-******」がトラッキングIDになります。
wordpressとかの場合はそのしたのトラッキングコードを使うようですが
はてなブログなトラッキングIDを設定するだけでいいみたいです
はてなブログにgoogleアナリティクスを設定する
はてなブログの管理画面に移動して
「設定」ー>「詳細設定」に移動して下にスクロールすると 「解析ツール googleAnalytics埋め込み」があるのでそこにトラッキングIDを設定すれば完了
難しそうだなーって、さぼってましたが結構簡単にできました
CentOSにPHPをいれる
気づいたら一週間近く立ってたよ・・・
このエントリーはCentOSにPHPをインストールするメモです
PHPをインストールする
コマンドは次になります
yum -y install php
インストールされてか確認
[vagrant@localhost ~]$ php -v PHP 5.4.16 (cli) (built: Nov 6 2016 00:29:02) Copyright (c) 1997-2013 The PHP Group Zend Engine v2.4.0, Copyright (c) 1998-2013 Zend Technologies
インストールされました。
5.4.xでいいという人はこれでインストールは完了です
だけど最新は5.6.x、7.xで新しいのを使いたいって場合は追加手順が必要になります
yumリポジトリを追加する
EPELとRemiリポジトリを追加します
PHP7.xインストールするのに必要なのはremiリポジトリだからepel必要ないじゃんって飛ばしてやったら失敗した
remi入れるのにepelが必要ってことだった
なのでepelをいれてからremiをいれます
# epelのインストール yum -y install epel-release
# remiのインストール rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
PHPがインストール済みなら一旦けしてインストールし直す
次のコマンドで古いPHP関連のものを全部けします
# 古いPHP関連を削除 yum remove php-*
# phpのインストール yum -y install --enablerepo=remi,remi-php70 php
必要な機能があるなら追加で php-devel php-mbstring php-pdo php-gd
念のため確認
[vagrant@localhost ~]$ php -v PHP 7.0.15 (cli) (built: Jan 17 2017 17:10:58) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
7.0.15がインストールされました
ページを表示させる
確認ページのファイルを作ります
cd /var/www/html/ vi phpinfo.php <?php phpinfo(); ?>
とhtml内にphpinfo.phpファイルを作り
内容をphpinfo();を呼び出す処理を書いてそれを表示するもの
httpdを再起動させます。
systemclt restart httpd
127.0.0.1:8080/phpinfo.phpにアクセスします
php情報が表示されたら成功です
CentOSにhttpdを入れてテストページを表示する
Vagrantから動かしたCentOSにhttpdをいれてテストページを表示するまでのメモです
Vagrantfileの編集
まずVagrantfileを編集します
次の行のコメント(#)をはずします
はずしたらvagrant upで起動させます
# config.vm.network "forwarded_port", guest: 80, host: 8080 ↓ config.vm.network "forwarded_port", guest: 80, host: 8080
httpdのインストール
次のコマンドでhttpdをインストールします
Completeと表示されればインストールは完了です
sudo yum -y install httpd
httpdの起動
インストールしたhttpdを起動します
systemctl start httpd.service
httpdの 停止
systemctl stop httpd.service
httpdの状態の確認
Active: active (running) が表示されれば動いてる状態です
systemctl status httpd.service
httpdの自動起動の設定
必要ならCentOSを起動させたのと同時にhttpdが起動するようにします。
systemctl enable httpd.service
httpdの自動起動の設定の確認
STATEがenabledなら自動起動有効、disabledなら自動起動無効、staticなら単体では有効/無効にできないものになります
enableになっていれば自動起動が有効になってます
systemctl list-unit-files | grep httpd
テストページの確認
ゲスト(CentOS)のhttpdを起動したあとホスト(winsows)のブラウザから次にアクセスします
127.0.0.1:8080
テストページが表示されれば成功です
次はPHP入れて動かすまでやりたいです
TeraTermのマクロを使ってログインする
前回、TeraTermを使ってCentOSにログインできるところまでやりました
ただ、毎回ユーザー名と秘密鍵を指定するのは手間です
なので簡単にする方法を調べてみました。
TeraTermのマクロを使う
TeraTermにはTeraTerm用マクロ(TTPMACRO.exe)があります
これでオートログインを実現することができます
やることは
- 拡張子ttlのファイルを作成します
- 作成したファイルを編集します
拡張子ttlのファイルを作成します
新規作成からテキストファイルを作り拡張子を.ttlにします
作成したファイルの編集します 作成したファイルを次のように書き換えます
;; ユーザー名 username = 'vagrant' ;; 秘密鍵 keyfile = '<privaet_keyの場所>' ;; ホスト名 hostname = '127.0.0.1' ;; パスワード password = '' msg = hostname strconcat msg ':2222 /ssh2 /auth=publickey /user=' strconcat msg username strconcat msg ' /keyfile=' strconcat msg keyfile connect msg
コピペで秘密鍵の箇所だけ変更でよいはずです
細かな変更があるとしたら
- ユーザー名
- 秘密鍵のパス
- ホスト名
- パスワード
- ポート番号
あたりでしょうか
編集したあと.ttlファイルをTTPMACR.exeに関連付けをすれば完了です
デフォルトのインストール場所は(私が使ってるPCはwindows8です)
C:\Program Files (x86)\teraterm
ログインは.ttlファイルをダブルクリックでいけます