ホームページ >バックエンド開発 >PHPチュートリアル >LAMP Web サーバー Web サーバーを構築するためのクイック スタート

LAMP Web サーバー Web サーバーを構築するためのクイック スタート

WBOY
WBOYオリジナル
2016-06-20 12:36:061029ブラウズ

はじめに...

LAMP は、Linux + Apache + MySQL + PHP の略語で、Web サイトサーバーの組み合わせであり、それぞれ

  1. の動作を表します。システム
  2. httpサーバー
  3. データベース
  4. Webバックエンド言語

LAMPは非常に広く使われているWebサイト構築環境の組み合わせと言えます。また、Linux を FreeBSD や Windows の FAMP、WAMP に変更したり、Apache を NGINX の LNMP に変更したりするなど、同じ機能で別の製品の組み合わせに置き換えられる組み合わせもあります。この記事ではデモとして Ubuntu / Debian を使用しますが、基本的には Debian および Ubuntu をベースとするすべての GNU/Linux ディストリビューションに適用できます。

W3Techs の統計によると、Web サーバー オペレーティング システムにおける Linux の市場シェアは 36.2% (Unix が全体の 68%、Linux が 53.2%)、そのうち Linux は Debian/Ubuntu がそれぞれ占めています。 32.6% / 31.1%:

Aapache の Web サーバー分野は 55% 以上の驚異的な市場シェアを持っています:

を参照してください。情報 W3Techs:

  • Web サーバー:
    • http://w3techs.com/technologies/overview/web_server/all
  • オペレーティング システム
    • http://w3techs.com/technologies/overview/operating_system/all
    • http://w3techs.com/technologies/details/os-linux/all/all
    • http://w3techs.com/technologies/details/os-unix/all/all

この記事を書いた理由と言えば、主に次のような理由からです。少し前

多くの人がブログやメモを書くために WordPress を使用することを推奨しています。WordPress は現在、Web ページの最大 26% の市場シェアを占めています。 WordPress が使用されているかどうかに関係なく、コミュニティとエコシステムはすでにかなり成熟していると考えられます。WordPress.com

の既製のサービスを直接使用するよりも、WordPress を自分でセットアップする方がより柔軟で強力であると同時に、技術を学ぶことはできますが、初心者にとっては、問題に遭遇することへの恐怖が常に最大の障害でした。そこで、初心者向けの簡単な LAMP インストール ノートを書きました。これは基本的に、PHP 言語を使用する他の Web サイト プラットフォームにも適用できます。

W3Techs の統計によると、Web ページ市場における WordPress の市場シェアは 26% に達し、コンテンツ管理システム (CMS) を使用して管理される Web サイトの市場シェアは 60% (59.2%) にも達します。 ):

W3Techs:

  • http://w3techs.com/technologies/overview/content_management/all

PHP は現在最新です。バージョンは 7.0 ですが、PHP 7 はリリースされてから時間が経っていないため、Debian/Ubuntu の公式パッケージ ライブラリには含まれておらず、安定版ディストリビューションで使用されるパッケージ ライブラリには含まれていません(ただし、今後リリースされる Ubuntu Xenial Xerus には含まれていません)。 16.04 LTS になります!)、現在市場の主流で使用されている PHP バージョンは 5 です。PHP 7.0 はこの記事の焦点では​​ないため、必要ありません。また、実際、古い PHP プログラムは必ずしも互換性があるわけではないため、別の記事で説明する可能性があります。この記事では、最も簡単に入手できる PHP 5.0 を使用します。

本文の始まり

この記事は、基本的な Unix 操作をすでに理解しており、Ubuntu 14.04 サーバー バージョンをインストールしていることを前提としています。まだインストールしていない場合は、次の記事を参照してください。 🎜>

ステップバイステップで VirtualBox に Ubuntu 14.04 サーバーをインストールする仮想マシンのインストール記録

すでに Ubuntu / Debian (Linux) を持っている場合に LAMP をインストールする最速かつ簡単な方法これを行う方法は、次の行に要約できます (長い議論を無視したい場合は、この記事には次の行のみがあります):

Shell

$ sudo apt-get install apache2 libapache2-mod-php5 php5 php5-mysql php5-json mysql-server
$ sudoapt-get installapache2libapache2-mod-php5php5php5-mysqlphp5-jsonmysql-server

プロセス中に、確認のためにデータベースのパスワードを設定するよう求められますが、通常は設定が完了するまで待つ必要があります。長い手順に興味がある場合は、難しくありませんが、Tasksel を使用して Ubuntu ベースの Linux にランプ サーバーをインストールしてみてください。 Webサーバーはありますが、mysqlは含まれていません。データベースのインストールには、apt-getを使用して直接インストールを完了することをお勧めします。特にtaskselを使用する必要はありません。

実際、tasksel については以前にも言及しましたが、これはさまざまなバリアント バージョン (Lubuntu、Kubuntu など) と一般的に使用されるパッケージの組み合わせを記録しており、ユーザーが必要な機能をすばやくインストールしたり切り替えたりできるようにします。この記事を読むことができます:

デスクトップからサーバーなど、異なるバージョン間で Ubuntu/Debian を変換します

Ubuntu の項目の 1 つは、以下を介してランプサーバーです。このコマンドはすぐにインストールでき、プロセス中にデータベースのパスワードも設定されます。

シェル

$ sudo tasksel install lamp-server
$ sudotaskselinstalllamp-server
実行後、インストールはキットの準備を開始する画面:

詢問資料庫密碼:

確認資料庫密碼:

安裝套件:

因為基本要用到的套件並不多,所以最簡易的架設到這邊就完成了,接下來會進行依些基本的驗證工作,確認有成功安裝並啟動相關服務。

安裝完了,接下來開始驗收/驗證

1. 確認 apache 運作

透過 curl 這個命令向本機 (127.0.0.1) 送 http request 並使用 -I 參數只取得回應的標頭 (header) :

Shell

$ curl -I 127.0.0.1
$ curl -I 127.0.0.1

Ubuntu 14.04.4 LTS:

Shell

$ curl -I 127.0.0.1HTTP/1.1 200 OKDate: Thu, 25 Feb 2016 17:11:41 GMTServer: Apache/2.4.7 (Ubuntu)Last-Modified: Thu, 25 Feb 2016 15:33:31 GMTETag: "2cf6-52c99e79eb044"Accept-Ranges: bytesContent-Length: 11510Vary: Accept-EncodingContent-Type: text/html
$ curl -I 127.0.0.1HTTP/1.1 200 OKDate: Thu, 25 Feb 2016 17:11:41 GMTServer: Apache/2.4.7 (Ubuntu)Last-Modified: Thu, 25 Feb 2016 15:33:31 GMTETag: "2cf6-52c99e79eb044"Accept-Ranges: bytesContent-Length: 11510Vary: Accept-EncodingContent-Type: text/html

Debian 8.3:

Shell

$ curl -I 127.0.0.1HTTP/1.1 200 OKDate: Fri, 26 Feb 2016 11:57:22 GMTServer: Apache/2.4.10 (Debian)Last-Modified: Fri, 26 Feb 2016 11:43:55 GMTETag: "2b60-52caad05f4514"Accept-Ranges: bytesContent-Length: 11104Vary: Accept-EncodingContent-Type: text/html
$ curl -I 127.0.0.1HTTP/1.1 200 OKDate: Fri, 26 Feb 2016 11:57:22 GMTServer: Apache/2.4.10 (Debian)Last-Modified: Fri, 26 Feb 2016 11:43:55 GMTETag: "2b60-52caad05f4514"Accept-Ranges: bytesContent-Length: 11104Vary: Accept-EncodingContent-Type: text/html

有看到 HTTP/1.1 200 OK 的訊息就表示成功了! 關於 http 代碼代表的含義可以參考維基百科: List of HTTP status codes

同時我們也可以透過瀏覽器開啟對應的網頁畫面,如果是在本機上架設可以開啟 http://localhost/ 、 http://127.0.0.1/ 或 http://0.0.0.0/ ,如果不是在本機架設的伺服器,則請輸入對應的 IP 位置或是網域名稱 (虛擬機會需要設定 連接埠轉送/port redirect ),成功的話應該會看到下面這樣的畫面(Apache2 Ubuntu / Debian Default Page),如果你使用的不是 Ubuntu / Debian ,畫面可能不盡相同,但大同小異,通常都會有 It works! 的字樣,到這邊就確認完 Apache 有正常運作了:

上面的 Apache2 Ubuntu / Debian Default Page 還帶有一些設定檔、檔案目錄結構等說明資訊,建議新手可以把他們看懂!確認完 apache 能夠獨立正常運後,接下來要確認的是 apache 的 php 模組是否能正常運作。

2. 確認 apache 搭配 php 正常運作,作法是寫一個簡單的 php 涵式,將檔案存檔為副檔名 php 的檔案,送出要求到 apache ,透過回應結果來確認程式是否有被正常執行。

剛剛上面的 Apache2 Ubuntu / Debian Default Page 有提到,預設的網頁伺服器檔案根目錄(document root) 為 /var/www/html ,以本篇的範例環境來說,這個檔案目錄預設的擁有者及群組會是 root ,所以編輯、存檔的時候別忘了使用 sudo 來提升權限,這邊要做的事情是把下面這段 php 程式碼 放到 /var/www/html 底下:

PHP

<?php phpinfo();
<?php phpinfo();

Shell

$ echo '<?php phpinfo();' | sudo tee /var/www/html/phptest.php
 $ echo '<?php phpinfo();' | sudotee /var/www/html/phptest.php 

接著就像前面確認 apache 是否正常運作一樣從瀏覽器打開對應的位置,但記得在網址最後面加上對應的檔名,例如 http://localhost/phptest.php

成功的話應該會看到這樣的畫面:

3. 確認資料庫正常運作

資料庫的確認比較簡單,執行下面這樣的指令後,輸入密碼,按下 enter 鍵,確認是否能成功登入:

Shell

$ mysql -u root -p
$ mysql -u root -p

登入成功的畫面:

確認登入後可以按 Ctrl + d 或是 輸入 exit 按下 enter 離開 (用 quit 也行!)

4. 最後是確認 Web server 透過 php 可以正常存取資料庫 ,我們這邊透過知名的資料庫工具  phpmyadmin 來測試,下載頁面網址: https://www.phpmyadmin.net/downloads/ ,截至目前最新的穩定版本為 4.5.5,這邊示範下載  phpMyAdmin-4.5.5-all-languages.tar.xz 這個檔案

下載後將檔案解壓縮到前面所提到的 /var/www/html/ 目錄:

Shell

$ sudo tar -xvf phpMyAdmin-4.5.5-all-languages.tar.xz -C /var/www/html/
$ sudotar -xvfphpMyAdmin-4.5.5-all-languages.tar.xz -C /var/www/html/

接著一樣從瀏覽器存取對應的位置,例如 : http://localhost/phpMyAdmin-4.5.5-all-languages/

打開後沒想到出現了錯誤訊息:

如果看到這樣的畫面,表示有模組沒有啟用、或沒安裝到,以上圖為例,缺的是 json 模組,但前面不管是用 apt-get 還是 tasksel 兩種方法,我們都有安裝到 php5-json套件,所以原因應該是套件沒有被啟用。Debian / Ubuntu 底下有一個好用的工具叫作 php5enmod (安裝完 php5-common 這個套件後才有的,前面因為套件相依性的關係會被安裝到),我們可以透過這個命令來啟用 php 的 json 模組:

Shell

$ sudo php5enmod json
$ sudophp5enmodjson

啟用後重新啟動 apache

Shell

$ sudo service apache2 restart
$ sudoserviceapache2restart

ここで php を再起動するのではなく、apache を再起動する理由は、上記のインストール方法が php を apache モジュールにパッケージ化するアーキテクチャを採用しているためです。これは、この 2 つを結び付けるアーキテクチャに似ており、その利点は簡単です。インストールして使用することができますが、パフォーマンスが低く、より多くのリソースを必要とするという欠点があります。 (Ubuntu を例に挙げます。現在システムにどのモジュールがインストールされ、利用可能であるか知りたい場合は、このディレクトリを参照してください: /etc/php5/mods-available/)

再起動後に再構成できます。 Web ページを確認すると、ログイン画面が正常に表示されるはずです。

データベースのインストール時に設定したデフォルトのルートとパスワードを入力してください。おそらく次のようになります:

この時点で、LAMP サーバーの最も基本的なセットアップは基本的に完了しています。

追記

LAMP のセットアップは実際には難しくありません。LAMP のセットアップ後の WordPress のインストールについてメモを書きます。

セキュリティに関しては、この記事ではヘッダー情報の非表示と https/ssl 暗号化については説明しません。これは、ユーザーが HTTP ヘッダー、バージョン、および Web ページにアクセスするときに、システム構築関連のパッケージを簡単に取得できることを意味します。アカウントのパスワードを含む情報は暗号化されていないプレーン テキストであり、関連ツール (Wireshark や tcpdump など) によって簡単に「抽出」される可能性があります。これら 2 つの点に興味がある場合は、簡単に言うと、セキュリティが十分ではありません。

Apache、nginx、PHP を使用して Web サイトを構築する場合に注意すべきセキュリティ事項

nginx を使用して Web サイトを構築するA+ グレードの https Web サーバー

なお、前述したように、この記事を書いた時点では、実際には PHP 7.0 がリリースされていました。 PHP 7.x と PHP 5.x についてのパフォーマンスの違いについては、こちらをご覧ください。ここのパフォーマンス テストを参照してください:

Roseapple Pi パフォーマンスの簡単なテスト (ベンチマーク)

最後に言いたいのは...上記は方法のみを示しています。機能が正常に動作していることを確認することはできますが、正常に動作していない場合の対処方法は示されていません。まあ、何と言うか、デバッグとデバッグの難易度は比較的高いです (実際にはかなり高いです)。 1 つずつリストするのは難しいため、問題が発生した場合は、エラー メッセージを書き留め、エラー メッセージのスクリーンショットを撮り、エラー メッセージによって提供される情報を使用して確認することをお勧めします。操作手順が正しいかどうか、および実行後に各手順が成功したかどうか。他にエラーメッセージはありますか?最後に、どのステップで行き詰まっているかなどの関連情報を待って、ゆっくりと問題を見つけてください。本当に原因がわからない場合にのみ、この「重要な情報」を使用して他の人に助けを求めることができます。

LAMP 画像のオリジナル http://www.programmableweb.com/news/what-mean-stack-and-why-it-better-lamp/analysis/2015/12/22 より

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。