What one likes, one will do well.

ブログ名は日本語で「好きこそものの上手なれ」、でも俺滑舌悪いから「すきこそももも」って言っちゃう///

パーフェクトPHP 勉強 1日目(その3)

f:id:takamk2:20110213104328j:plain

勉強環境のスペック

PHPのアンインストール

「パーフェクトPHP」様のいうことにゃ次はPHPのインストールなんだけど、すでにインストールされているのでまずは削除をします。

apacheが動いていたのでとりあえず止める

$ sudo /etc/init.d/httpd stop
httpd を停止中:                                            [  OK  ]

yumでインストールしたphpを調べる

$ sudo yum list installed | grep php
php.x86_64              5.3.3-22.el6    @base
php-cli.x86_64          5.3.3-22.el6    @base
php-common.x86_64       5.3.3-22.el6    @base
php-gd.x86_64           5.3.3-22.el6    @base
php-mbstring.x86_64     5.3.3-22.el6    @base
php-mysql.x86_64        5.3.3-22.el6    @base
php-pdo.x86_64          5.3.3-22.el6    @base
php-pear.noarch         1:1.9.4-4.el6   @base
php-pgsql.x86_64        5.3.3-22.el6    @base

phpを削除

$ sudo yum remove php php-cli php-common php-gd php-mbstring php-mysql php-pdo php-pear php-pgsql

mysql-serverもインストールしていたので一緒に削除。

$ sudo /etc/init.d/mysqld stop
$ sudo yum remove mysql-server

これでよし…。やっと本題!

PHPのインストール

$ sudo yum install php php-pear php-devel php-mbstring php-mysql php-pdo php-xml
$ sudo yum install mysql-server

ドキュメントルートの設定

ドキュメントルートを/var/www/study.localhostに設定する

$ sudo mkdir /var/www/study.localhost
$ sudo chown ユーザ名:ユーザ名 /var/www/study.localhost

バーチャルホストの設定

$ sudo vi /etc/httpd/conf.d/vhosts.conf
NameVirtualHost *:80

<VirtualHost *:80>
        ServerName study.localhost
        DocumentRoot /var/www/study.localhost
        DirectoryIndex index.php index.html

        <Directory "/var/www/study.localhost">
                AllowOverride All
                Allow from All
        </Directory>
</VirtualHost>

hostsにドメインを設定

$ sudo vi /etc/hosts

以下の1行を追加

127.0.0.1 study.localhost

apacheを起動してCentOSFireFoxからstudy.localhostにアクセスする

$ sudo /etc/init.d/httpd start

あれ?「Forbidden」エラーになってしまった。

You don't have permission to access / on this server.

だってなんで?

原因

  • study.localhost配下にファイルが一つもなかったから。

とりあえず、index.htmlを作成

$ vi /var/www/study.localhost/index.html
<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body>
   なんでやねん。 めっちゃ焦ったやん。
</body>
</html>

VMwareを動かしていているマシン(Windows8)からstudy.localhostでアクセスしたい

状況

  • ローカルで動かしている。
  • DNSサーバを立てていない。

やること

  • Windows8の設定ファイルをいじちゃえ!(邪道)

C:\Windows\System32\Drivers\etc\hostsファイルを管理者権限で開き、以下の1行を追加する

192.168.0.110   study.localhost

これでWindows8のブラウザからstudy.localhostを指定してアクセスできるようになります。(やったね!)

なお、本マシン(Windows8)以外の端末(例えばiPadとか)からstudy.localhostにアクセスしようとしても名前解決ができないのでアクセスできない。IPアドレス直接指定なら可能。

※ここで指定しているローカルのIPアドレスは既に固定IPに設定しています。
IPアドレスの固定方法を書くとかなり脱線するので別のエントリで書きます。(そのうち)

バーチャルホストを追加する

$ sudo vi /etc/httpd/conf.d/vhosts.conf
NameVirtualHost *:80

<VirtualHost *:80>
        ServerName study.localhost
        DocumentRoot /var/www/study.localhost
        DirectoryIndex index.php index.html

        <Directory "/var/www/study.localhost">
                AllowOverride All
                Allow from All
        </Directory>
</VirtualHost>

# ↓新たに追加
<VirtualHost *:80>
        ServerName takamk2.localhost
        DocumentRoot /var/www/html
        DirectoryIndex index.php index.html

        <Directory "/var/www/html">
                AllowOverride All
                Allow from All
        </Directory>
</VirtualHost>

hostsにtakamk2.localhostを追加

$ sudo vi /etc/hosts

以下の1行を追加

127.0.0.1 takamk2.localhost

C:\Windows\System32\Drivers\etc\hostsにtakamk2.localhostを追加

192.168.0.110   takamk2.localhost

apacheを再起動する

$ sudo /etc/init.d/httpd restart

CentOS上のブラウザでtakamk2.localhostにアクセスできればOK!

次回はついにPHPを使うぜ!乞うご期待!!

パーフェクトPHP 勉強 1日目(その2)

f:id:takamk2:20101127131303j:plain

さっきの茶番の続きです。
メモ書きながら勉強すると覚えはするけど全然読み進められないっていう。

PHPの歴史

  • 2000年5月に公開されたPHP4.0から「Zend Engine」とうエンジンが搭載されパフォーマンスが大幅に向上した。
  • PHP5.0は2004年7月から。

コーディングスタイル

(Zend Framework PHP 標準コーディング規約をベース)

変数名

  • 英数字からなる単語をアンダースコアで区切ったスタイル。すべて小文字。
$string, $base_url

関数名

  • 英数字からなる単語をアンダースコアで区切ったスタイル。すべて小文字。
delete_null_byte(), is_admin()

クラス名

  • 単語の1文字目を大文字、それ以外を小文字にして連結したスタイル。
AccountController, ClassLoader

メソッド名

  • 先頭以外の単語の1文字目を大文字、それ以外を小文字にして連結したスタイル。
runAction()
getRequest()

インデント

  • 半角スペース4つ

今まで半角2つでインデントしていたよ。家では「パーフェクトPHP」様に従うことにしよう。

関数/クラス/メソッド定義の波括弧

  • 波括弧はそれぞれ独立した行に記述する。

今まで開始の括弧は関数/クラス/メソッド名の隣に書いていたから違和感。でもあまり自分ルールにこだわりすぎると壁にぶち当たるのでここも従います。

class Router
{
    public function resolve()
    {
    }
}

番外

インデントを半角スペース4つにするのでvimの設定もちょっと変える。

 $ vi ~/.vimrc

以下の設定を記述。

setlocal tabstop=4                                                             
setlocal shiftwidth=4

これでTabキーを押した時に半角スペース4つ挿入することができるようになった。

…。


よーし、次はPHPのインストールだ!
といっても僕の今の環境(VMWareにCentOS6.4ぶち込み)にはすでにPHPをインストールしていた。

折角なので「再インストール」しよう。(パーフェクトPHP様の仰せのままに)

PHPのインストール&設定は次回のエントリで書きます。

ではまた。

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP 勉強 1日目

f:id:takamk2:20130612204417j:plain

さぁ!遂に始まってしまいました。「パーフェクトPHP」実況!!

はい、司会は私、新渡戸?否、「象」がお送りいたします。

では早速…。おーっと早くも最初の難関 P003「はじめに」だー!
ここで脱落する自称プログラマは数知れず、私も例に漏れずここで脱落するのか!?

だ、大丈夫なようです!大丈夫なようでーーーっす!

しかしっ、わたくしもう疲れたので今日はここまでにするそうです!
次回の実況をお楽しみに!(近日公開)

パーフェクトPHP (PERFECT SERIES 3)

パーフェクトPHP (PERFECT SERIES 3)

【サーバーエラーに悩まされ】さくらインターネットのレンタルサーバーのお試し期間を使って

こんにちわ。僕は今すごく落ち込んでます。

なぜかというと、さくらインターネットにおいているwordpressのページが「Internal Server Error」になりまともに動かないからです。

考えられる原因は以下の通り

1.公開ディレクトリ以下のファイルまたはディレクトリで、ファイル所有者以外に書き込み権限がある
2..htaccessの記述エラー
3.自分がメモリの使い過ぎ
4.サーバーが悪い

1.公開ディレクトリ以下のファイルまたはディレクトリで、ファイル所有者以外に書き込み権限がある。

さくらインターネットapacheの設定で、ファイル所有者以外に書き込み権限があると「Internal Server Error」が出るようになっているそうです。
推奨のパーミッションは「705」または「755」とのこと
もちろん僕はパーミッションを「705」にしていました。
それでもだめだったので見落としがあるんじゃなかろうかということで明示的にパーミッションを変更
 
$ cd [公開ディレクトリ(www)のあるディレクトリ]
$ chmod -R go-w www

これでも駄目だった。

2..htaccessの記述エラー

www配下には.htaccessを置いていない
とりあえず、wwwディレクトリ配下にindex.phpを置いてアクセスする。
index.phpの中身は以下の通り


10回に1回の頻度で「Internal Server Error」が発生
(wordpressの管理画面では5回に4回はエラーになる)

3.自分がメモリの使い過ぎ

さくらインターネットのサーバコントロールパネルにある「リソース情報」で確認
メモリ使用率0.1のプロセスが5個あるだけ。
とてもメモリを圧迫しているとは思えない。

4.サーバーが悪い

これかな~。昨日まではエラーなくアクセスできていたから、どこかの誰かがサーバに負荷をかけているかもしれないね。

sshで接続できるのが個人的には良かったけどちょっと不安だから契約するのやめようかな。
とりあえず当分ははてなブログを使うか~。久しぶりすぎて使い方わからないな~。

ほげー('∀`)