サマリー
ゼロから始めるLinuxより。ApacheサーバーとLAMPの立ち上げについて述べる。Webサーバー全般に関しては”Webサーバー概要“にて述べているのでそちらも参照のこと。
Apaceサーバー
Linuxで使われているWebサーバーとしてもっとも高いシェアを持っているのがApache HTTP Serverとなる。
Apacheには、いくつかのバージョン系統がある。大きく分けて2.0系、2.2系、2.4系となり最近のOS(CentOS7や8)ではバージョン2.4系が採用されている。バージョン系統が異なると設定や機能が異なる場合があるが同じ系列であれば、大きな違いはないと考えて良い。
Apacheのインストール
Linux系にApacheをインストールするには、Apacheのwebサイトから最新版をダウンロードしてインストールすることもできるが、RPMパッケージが提唱されていないので、ソースをコンパイルし、セキュリティやバージョン管理、他のソフトの連携等を行う必要があり煩雑となる。ここでは関連パッケージを含めてシンプルにインストールができるyumコマンドを用いて行うケースについて述べる。Apacheのパッケージ名はhttpdとなる。
>sudo yum -y install httpd
(省略)
Installed:
httpd.x86_64:2.4.6-4.0.e17.centos
Dependency Installed
httpd-tools.x86_64 0:1.4.6-40e17.centos. …
Complete!
macの場合は標準でApache httpdがインストールされている。確認するには以下のコマンドをターミナルで打つとhttpdがインストールされているパスが確認できる。
> which httpd
/usr/sbin/httpd
さらにApache httpdを起動したり停止したりするためのコントローラーとなる”apachectl”のパスも以下で確認する。
> which apachectl
/usr/sbin/apachectl
バージョンは以下で確認することができる。
> /usr/sbin/httpd -version
Server version: Apache/2.4.54 (Unix)
Server built: Aug 18 2022 20:00:37
バージョンとしては2.4.54がインストールされていることが確認できる。
また、home bewを使って”brew install httpd”で別途インストールすることも可能となる。
windowsの場合は、前述のApacheのウェブサイトからダウンロードページに飛び、「Files for Microsoft Windows」を選んでインストールする。
Apacheを動作させる
Webで公開するトップディレクトリをドキュメントルートと呼ぶ。デフォルトでは、ドキュメントルートは”/var/www/html”ディレクトリとなっている。(macの場合は”/Library/WebServer/Documents/”)、つまり”/var/www/html/index.html”というファイルを作成すると「http://サーバー名/index.html」として外部からアクセスできる。
ドキュメントルート以下は、ファイルの書き込みにrootユーザー権限が必要となる。
Apacheの設定ファイルは”/etc/httpd/conf/httpd.conf”にある(macの場合は”/etc/apache2/httpd.conf“にある)
内容(の一部)は以下のようになる。
ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path. If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used. If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
ServerRoot "/usr"
「#」で始まる行は、設定ではなく説明が書かれたコメントになっている。
まず設定として「ディレクティブ 設定値」がある。主なディレクティブとしては以下のものがある。
Apacheの起動
Apacheの起動はLinuxでは以下のようになる。
> sudo systemctl start httpd.service
LinuxのApacheではデフォルトではwebアクセスできない設定になっているためファイアーウォールの設定を行う。
> sudo firewall-cmd -permanent --add-service=http
success
> sudo firewall-cmd --reload
success
これでWebブラウザからアクセスできるようになる。ブラウザに”http://VPSのIPアドレス/」を入力すると以下のようなテストページが表示される。
ドキュメントルートに以下のようなHTMLファィルを作成する。
# /var/www/html/htmltest.html
<html>
<head>
<title>Test Page</title>
</head>
<body>
<p>Apache test page</p>
</body>
<html>
Webブラウザで”http://VPSのIPアドレス/htmltest.html”にアクセスすると以下のように表示される。
macの場合は以下のようになる。
> sudo apachectl start
動作が成功するとブラウザで”http://localhost”を表示すると以下を見ることができる。
あとは設定ファイル部で「パスワード認証」「アクセスログ」等の設定を行うことで利用が可能となる。
LAMP
Webアプリケーションをサーバー上で動かすには、Apacheだけでは不十分で、Web上でやり取りするデータを格納するデータベースが必要となる。Webアプリケーションには、OS(Linux or Mac)、Webサーバー(apache)、プログラミング言語(の実行環境)、データベース(データベース管理システム)が必要となる。
これらをまとめてインストールするツールであるXAMPPやMAMPがあり、を以前”MAMPとmedia wikiの立ち上げと簡単な使い方“にて紹介したが今回は個別にインストールする方法について述べる。
データベースは、検索や管理がやりやすいように、一定のルールにしたがって蓄積されたデータの集合となる。そのデータベースを管理するソフトウェアがデータベース管理システム(DBMS:DataBse Management System)となる。DBMSには、Oracle Databse、Microsoft SQL Serverなどの商用製品と並んで、MySQL、MariaDB、PostgreSQLといったオープンソースがよく知られている。
Linuxの世界ではMySQLが世界的に使われてきており、CentOSに搭載されているMariaDBは、MySQLから枝分かれして開発が進められているデータベース管理システムとなる。
Webアプリケーションを作成するプログラミング言語として様々なものが用いられているが、軽量言語(Lightweight Language:LL)と呼ばれるスクリプト言語が一般的に使われている。プログラミング言語は大きく分けて、ソースコードをコンパイルして実行形式にするコンパイラ型と、ソースコードのまま実行可能なインタープリター型がある。インタープリター型の言語をスクリプト言語と呼ぶことがあり、スクリプト言語の中でもWebアプリケーションの作成によく使われるのが、PHP、Pyhton、Perl、Ruby等になる。
MariaDBのインストール
MariaDBのインストールについて述べる。Linuxの場合はyumコマンドを使って2つのパッケージをインストールする。
> sudo yum -y install mariadb-server mariadb
上記で、MariaDB本体と、MariaDBクライアントソフトがインストールされる。次に設定ファイル/etc/my.cnfを変更して日本語が正しく扱えるようにする。
> sudo nano /etc/my.cnf
unix用のエディタであるnanoを使ってファイルにアクセスする。以下のような部分に4行目を追加して保存する。
………
[mysql]
datadir=/var/lib/mysql
socket=/vqr/lib/mysql/mysql.sock
character-set-server=utf8. ← この行を追加
mariaDBを起動する。
> sudo ststemctl start mariadb
> (sudo systemctl enable mariadb. ←システム起動時の自動立ち上げ)
mariaDBの初期設定を行う。初期設定コマンドmysql_secure_installationを実行すると最初に行うべき設定が対話的に行える。
>sudo mysql_secure_installation
基本的には”yes”を入力し、New pasword:とRe-enter new passwordの部分でMariaDBの管理パスワードを入力する。
macの場合は、homebrewの”brew install mariadb”でインストールし、パスワードの設定は”sudo mysql_secure_installation”で行う。
PHPのインストール
PHPのインストールは、PHP本体であるphpパッケージと合わせて、日本語などのマルチバイト文字を扱うためのphp-mbstringパッケージ、PHPで画像ライブラリを扱うphp-gdパッケージ、PHPとMariaDB/MySQLを連携させるphp-mysqlパッケージほインストールす。
linuxの場合は以下のように行う
> sudo yum -y install php php-mbstring php-gd php-mysql
PHPがインストールされた確認は”php -version”で行える。
Apacheよりも後にPHPをインストールしたので、Apacheを再起動させてPHPと連携できるようにする。
sudo systemctl restart httpd.service
PHPプログラムが動作するどうかを確認する。テスト用のファイルを/var/www/html/phptest.php”として作成し
sudo nano /var/www/html/phptest.php
以下のコードを記入する。
<?php echo phi9nfo(); ?>
Webブラウザから”http://VPSのIPアドレス/phptest.php”にアクセスし、PHPの情報が表示されていれば動作している。動作が確認できたら、ファイルは消去する。
sudo rm /var/www/html/phptest.php
macの場合は、hombrewを用いて”brew install php@8.0″でインストールしパスを通す(zshrc等のファイルに以下を書き込む)
> echo 'export PATH="/opt/homebrew/opt/php@8.0/bin:$PATH"' >> ~/.zshrc
> echo 'export PATH="/opt/homebrew/opt/php@8.0/sbin:$PATH"' >> ~/.zshrc
上記のコマンドを実行後、パスを読み込ませるため一旦シェルを再起動させ、”php –version”でPHPのバージョンが出力されればパスは通っている。
パスが通ったら、シェルのプロファイル内(zshrc)に以下のコードを追加する。
> export LDFLAGS="-L/opt/homebrew/opt/php@8.0/lib"
> export CPPFLAGS="-I/opt/homebrew/opt/php@8.0/include"
後は、MariaDB/MySQLのクライアントコマンドを使ってMAriaDの管理者としてMAriDBに接続し、”CREATE DATABASE”でデータベースを作成することで利用できるようになる。
コメント
[…] ApacheサーバーとLAMPのインストールと動作 […]