SSブログ

使わんかもしれないけどPHPを使ってみた。 [プログラミング]

よくプログラミング言語的にPHPはクソだという話は聞いていました。だけど、その成り立ちから言語というよりHTMLジェネレーターという側面が大きいような気がしています。

https://note.mu/shimakaze_soft/n/n03992e2e8c22

Rubyのまつもとさんも苦言を述べていますが、確かに初心者でも扱えるツールではあるけど、Webアプリケーションをなめるな、という言葉はわからんでもないです。確かに言語という前提から言うと、一貫性というものは欲しいものですし、そこまで厳密にやられたところで書きにくかったら本末転倒な気もします。本当の言語は割合いい加減で例外も多いですが、プログラミング言語はそうも言っていられません。

C言語は高級言語と言えないほど低級の(低レベルで使える)言語ですが、それほどボロカスに言われることは稀です。だけどPHPが貶されるのは、他でも代替が利くところでしょう。C言語はOSを開発したり、言語を開発したり、プアな環境でも動いたりしますが、PHPは別に使わなくて大丈夫というところにあるんじゃないでしょうか。単純な言語仕様でいろいろな書き方ができるという点に於いては、C言語もPHPもそんなに違いはない気はします。

C/C++は代替がないと言いましたが、それは一部の話で普通のツールは別に言語を使っても問題ありません。GolangもRustも今ではあるので、代替はできないわけではないでしょう。そういう意味ではPHPと同じなのかもしれません。ただ言語の素養の悪さは生まれの悪さに影響されていて、作った人も簡易言語にそんなことを言われてもねぇ、という感じではあるようです。まぁ言語を建て増しすると文句を言う人は出てくるものです。Visual Basicでもそんなのあった気がしたな。


とりあえず、Macに入っているか見てみたらデフォルトで入っていました。

$ php -v
PHP 7.1.32 (cli) (built: Oct  2 2019 02:04:02) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2018 Zend Technologies

$ which php
/usr/bin/php


というか、/usr/binに入っているなんて、システムの何かに使っているのかな?
まぁよくわからんですが新しいPHPは入っているようなので、別途Homebrewなどで入れる必要はないと。

このphpにスクリプトを食わせると、HTMLを出力するのでしょうが、Webサーバとして使うというところまでやらないとやった気になりません。なんか言語仕様だけを示したページがあったけど、それじゃお手軽にページを作れるという利点を体験できません。

つらつらと読んでいると、懐かしいLAMPという言葉が出てきました。Linux, Apache, MySQL, PHPということですね、PHPを使う場合。今回はMacでやろうと思っているので、ApacheとPHPは元から入ってますね。DBを入れるだけでいいんだけど、MAMPというものが揃えてくれるってどこかに出てた。

MAMP
https://www.mamp.info/en/mamp/

ううむ、立ち上がるのはいいが、PHPのスクリプトをどうやって喰わせるのとか英語でわからん。どこにphpのスクリプトを入れればいいのだろうか…。

DB使わないでいいから試せないかな?

https://qiita.com/shuntaro_tamura/items/bdabcb77926dc92617b1

そこそこ面倒臭い。XAMPPを使おう。これならどこに入れるのかとか書いてあったし。

https://www.apachefriends.org/jp/index.html

XAMPPの"Go to Application"からphpMyAdminを開こうとしたら

アクセス禁止!

新しいXAMPPのセキュリティコンセプト:
は、要求のディレクトリへのアクセスは、ローカルネットワークから入手可能です。
この設定は、ファイル"で設定することができますのhttpd - xampp.conf " 。

と出てきて良くわからなかった。MAMPの方はphpMyAdminを開けていた気がするなぁ。

やっぱMAMPにすることにして、「アプリケーション>MAMP>htdocs」にphpファイルを入れればいいことを知る。Launch Padじゃディレクトリ出てこんのかな?

https://web-camp.io/magazine/archives/5661

上のサイトのようにやってもダメだった。
http://localhost/ にアクセスしてもエラーが出る。

それは http://localhost:8888/ に変わっているみたいだ。MAMPで起動されるページがそうだから、それと同じようになっている。まぁ80ポートだと管理者権限で動かさないといけないだろうからな。

「phpinfo.php」は、以下の内容をコピーしてください。
<? phpphpinfo(); ?>

って書いてあるのでファイルを作って
http://localhost:8888/MAMP/phpinfo.php にアクセスしたんだけど、自分が作ったものと違うページだった。ただのテキストファイルを入れてもそれが出てこなかったから罠に引っかかるところだった。

自分が作ったファイルはこっちのURLでした。
http://localhost:8888/phpinfo.php
というか、そういうのどこかに書いてあるのかなぁ。

でもそこにアクセスするも何も表示されない。エラーとかならわかるんだが何も出ないのはおかしいと思い、ソースを見ると、上の文字列がそのまま出てくる。何がおかしいのかと言うと

<? php phpinfo(); ?>

とphpの後に空白を入れるだけでした。というか、そういう凡ミスを何もわからない初心者のページでやるのかよ。クソサイトも甚だしいなw。バージョンとかで動かないならまだしも、これは単なるタイポでは? 最悪である。よくありがちなんだけどな。

そんなわけでphpファイルをインタプリタさせるだけでかなり試行錯誤をしなければなりませんでした。初心者は何が悪いのかがわからないから、とりあえず確実に動くことを書いておいてもらわないとハマるに決まっているじゃないですか。それなら公式サイトに書いてある方法を一からやったほうがいいような気がするんですがどうなんでしょうね。

この先、MySQLを絡めてやっていこうとすると、さらに面倒臭くなりそう。どうしようかなぁ。どこまでやろうかなぁ…。

タグ:PHP
コメント(0) 

Twitterまとめ投稿 2019/11/17 [Twitter]


コメント(0)