[LAMP]Linux(Centos)LAMP環境構築、LAMPソースコードインストール及びLAMPアーキテクチャ原理詳細
本章blogでは、[LAMP]Linux(Centos)LAMP環境構築、LAMPソースコードインストール、LAMPアーキテクチャの原理を詳しく説明し、phpとapacheの異なる組み合わせ方式のLAMPケースをそれぞれ配置した.
LAMP Server LAMP概要 LAMPウェブサイトのフレームワークは現在国際的に流行しているWebサービスアーキテクチャであり、このフレームワークはGNU/Linuxオペレーティングシステム、Apache HTTPサーバーを含む.MySQLクラス関係型データベース(RDBMS)およびPHPプログラミング言語.すべての構成製品はオープンソースクラスソフトウェアに属し、それ自体はそれぞれ独立したプログラムであるが、よく一緒に使用されるため、ますます高い互換性を持ち、動的なウェブサイトの構築やWebアプリケーションの開発に適しており、現在は国際的に流行しているフレームワークアーキテクチャとなっている.
現在多くの流行の商業応用はすべてこのアーキテクチャを採用して、Java/J 2 EEアーキテクチャと比較して、LAMPはWeb資源が豊富で、軽量で、急速に開発するなどの特徴を持って、マイクロソフトのと.NETアーキテクチャに比べて、LAMPは汎用、プラットフォーム間、高性能、低価格の優位性を持っているため、LAMPは性能、品質、価格にかかわらず企業がウェブサイトを構築する第一選択プラットフォームである. LAMPコンポーネント GNU/Linuxオペレーティングシステム:
LinuxはUnixのようなコンピュータオペレーティングシステムで、LinuxオペレーティングシステムにはRed Hat、SUSE、FreeBSD、Debian、CentOSなど、多くの異なるリリース版があります.
Apache HTTPサーバー:
LAMPのHTTPサーバの役割はApacheによって提供されるほか、nginxなどのWebサーバも含まれている.このうち、ApacheはPHPやcgiなどの動的言語の伝達を担当し、Nginxは負荷の均衡、逆解析、フォールトトレランス機能を提供し、互いに協力して使用し、HTTPサーバーの配置の第一選択モードとなっている.
MySQLクラス関係型データベース(RDBMS):
MySQLはLAMPの関係データベース管理システム(RDBMS)の元の役割として他のRDBMS(MariaDBなど)やNoSQLデータベースから(MongoDBのように)徐々に取って代わります.MariaDBはMySQLの創始者Michael Wideniusが主導して開発して、それはMySQLの1つの分岐に属して、主にオープンソースコミュニティが維持して、GPL授権許可を採用して、しかもMariaDBは完全にMySQLに互換します;MongoDBは1つのWeb規模のオープンソースNoSQLデータライブラリです.
phpプログラミング言語:
PHPはLAMPのアプリケーションプログラミング言語の元の役割として、他の言語から(PerlとPythonのように)共同で実行する.PHPはサーバー側のスクリプト言語であり、Web開発のために設計されている.PHPコードはwebサーバーが提供するPHPモジュールによってコンパイルされ、PHPコマンドをHTMLソースドキュメントに直接埋め込んで実行することをサポートし、実行効率はHTMLタグを完全に生成するCGIよりずっと高い.Perlは一連の高級、汎用、解釈の動的プログラミング言語である.PythonはPythonは、オブジェクト向け、コマンド、機能、プロセスのモデルなど、さまざまなプログラミング例をサポートしています.
キャッシュまたはアクセラレータ:
Apacheは独自のキャッシュモジュールを提供し、追加のSquidモジュールを使用してキャッシュすることもでき、いずれもApacheのアクセス応答能力を効果的に向上させることができます.PHPの加速はxcacheアクセラレータを使用し、phpダイナミックコンテンツを最適化し、キャッシュすることができ、PHPスクリプトのキャッシュ性能を向上させることができます.Memcachedは分散型メモリオブジェクトキャッシュシステムであり、通常、データベース負荷を軽減するために動的Webアプリケーションに使用される. LAMPアーキテクチャ原理 クライアントはhttp request要求を送信し、サーバ(Apache)はweb要求を受け入れる.
Apacheは、クライアント要求のリソースが静的要求であるかどうかを判断する.静的要求の場合、Apacheはクライアントが要求した静的リソース(.html,.html.html.shtmlなどのファイル)を、Http responseの形式でクライアントに直接転送する.
php動的要求の場合、クライアントのphp要求はCGIプロトコルによってPHPプログラムに転送され、phpプログラムによってphp解析器が呼び出されてphp要求が実行される.
PHPは、php要求を実行する際にmysqlデータベースに依存するか否かを判断する.mysqlデータベースに依存するなければ、php解析器によりphp関連スクリプトを直接実行し、解析後のスクリプトを再びCGIプロトコルによりApacheに返送する.サーバは、「静的リクエスト」のプロセスを実行します.
mysqlデータベースに依存する場合、phpプログラムはphp-mysqlドライバを介してmysqlに関連付けられ、関連データを取得してphp解釈器に戻し、再び「mysqlデータベースに依存しない」プロセスを実行します. apacheとphpの組み合わせ Moduleメカニズム:phpは直接httpdのモジュール拡張で実行され、phpはhttpd機能の一部として機能します.httpプロセスを開始するとphp機能もオンになります.ここでpreforkモードはlibphp 5に依存する.soライブラリ、worker、eventモードはlibphp 5-ztsに依存する.soライブラリ
CGIメカニズム:phpは独立したプロセスで動作し、php要求を解析する必要がある場合、httpdによってphpプロセスを起動します.複数のphpリクエストにより、複数のphpプロセスが開始され、リソースが消費され、全体的なパフォーマンスがmoduleメカニズムに及ばない
Fast-CGIメカニズム:php-fpmサービスを生成し、phpプロセスをサービスphp-fpmによって管理する.ソケットに基づいてapacheと連絡し、apache workメカニズムと類似しており、親プロセス、サブプロセス、アイドルプロセスなどがあり、php処理能力を大幅に向上させた. LAMPサーバ(server)実験構築 apacheとphpの組み合わせの違いに基づいて,LAMPコンパイル実装実験を実証する:実験1,phpはmoduleモードでアクセスし,実験2,apacheとfpm方式のphpを構成する.
システム:Centos 6.6
ソフトウェア:httpd-2.4.34 + mysql-5.5.61 + php-5.6.36
コンパイル環境:LAMP関連の依存環境をインストールし、「Server PlatForm Development」、「Development tools」、「selinuxとiptables機能をオフにする
実験目的:インストールLAMPをコンパイルし、phpをmodeule方式でアクセスし、Fast-GIメカニズムで実行する.
LAMPコンパイルインストール、phpをmoduleモードでアクセスするように構成
一、コンパイル環境を構成し、「Server PlatForm Development」、「Development tools」をインストールし、selinuxとiptablesを閉じる
二、コンパイルインストールApacheコンパイルインストールapr(apr-1.6.3) ダウンロード先:http://download.nextag.com/apache//apr/apr-1.6.3.tar.gz コンパイルインストールapr-util(apr-util-1.6.1) ダウンロード先:http://download.nextag.com/apache//apr/apr-util-1.6.1.tar.gz コンパイルインストールhttpd(httpd-2.4.34) ダウンロード先:http://mirror.reverse.net/pub/apache//httpd/httpd-2.4.34.tar.gz Apacheサービスを開始し、検証し、apacheのプロファイルを変更し、PidFileパスを設定します(デフォルトは/usr/local/apache/logs/http.pid) .
三、コンパイルインストールMysqlハードraidでlvmを作成することを推奨し、mysqlデータ格納ディレクトリとして独立したlvmディスクを使用し、mysqlデータ のバックアップを容易にするコンパイルインストールmysql ダウンロード先:https://mirrors.163.com/mysql/Downloads/MySQL-5.5/mysql-5.5.61.tar.gz mysql初期化、サービス開始 mysqlデータベースの管理、匿名ユーザーの削除、パスワードの作成、testデータベースの削除などの操作 mysqlに対してユーザーとパスワード、ホストプロファイルを作成し、パスワードを使用せずに にログインすることができる.
四、PHPのコンパイルインストール php-5.6をコンパイルインストールする.36
ダウンロード先:http://at2.php.net/distributions/php-5.6.36.tar.gz php をサポートするためにapacheを構成する php機能とapache、phpとmysql接続 を検証
五、php加速器xcacheを取り付ける xcache をインストール
ダウンロード先:http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz検証xcacheインストール 六、phpMyAdmin-4.8をインストールする.2,mysqlの管理 phpMyAdmin-4.8をインストールする.2,php 5をサポートする.5-php 7.2,mysql-5.5以上 ダウンロード先:https://files.phpmyadmin.net/phpMyAdmin/4.8.2/phpMyAdmin-4.8.2-all-languages.tar.xz phpMyadminログインhttp://192.168.4.160/pmyadmin検証 エラー障害解決
七、圧力テスト abツールテスト
LAMPコンパイルインストール、php-fpmモードを実現
一、コンパイル環境を構成し、「Server PlatForm Development」、「Development tools」をインストールし、selinuxとiptablesを閉じる.
二、コンパイルインストールApache、上記の構成と同じ
三、コンパイルインストールMysql、上記の構成と同じ
四、コンパイルインストールPHPはFast-Giをサポートする php-5.6をコンパイルインストールする.36
ダウンロード先:http://at2.php.net/distributions/php-5.6.36.tar.gz php-fpmサービス を構成して起動する apacheはfast-CCI をサポートするように構成されている. php機能とapache、phpとmysql接続 を検証
五、php加速器xcacheを取り付け、上記の構成と同じ
六、phpMyAdmin-4.8をインストールする.2、mysqlを管理し、上記の構成と同じ
七、圧力テスト、上記の構成と同じ
これでLAMPコンパイル実装実験を完了し,phpがmoduleモードでapacheとfpm方式のphpにアクセスし構成することをそれぞれ実現した.
転載は出典を明記してください.https://blog.51cto.com/itwish/2161699
転載先:https://blog.51cto.com/itwish/2161699
LAMP Server
現在多くの流行の商業応用はすべてこのアーキテクチャを採用して、Java/J 2 EEアーキテクチャと比較して、LAMPはWeb資源が豊富で、軽量で、急速に開発するなどの特徴を持って、マイクロソフトのと.NETアーキテクチャに比べて、LAMPは汎用、プラットフォーム間、高性能、低価格の優位性を持っているため、LAMPは性能、品質、価格にかかわらず企業がウェブサイトを構築する第一選択プラットフォームである.
LinuxはUnixのようなコンピュータオペレーティングシステムで、LinuxオペレーティングシステムにはRed Hat、SUSE、FreeBSD、Debian、CentOSなど、多くの異なるリリース版があります.
Apache HTTPサーバー:
LAMPのHTTPサーバの役割はApacheによって提供されるほか、nginxなどのWebサーバも含まれている.このうち、ApacheはPHPやcgiなどの動的言語の伝達を担当し、Nginxは負荷の均衡、逆解析、フォールトトレランス機能を提供し、互いに協力して使用し、HTTPサーバーの配置の第一選択モードとなっている.
MySQLクラス関係型データベース(RDBMS):
MySQLはLAMPの関係データベース管理システム(RDBMS)の元の役割として他のRDBMS(MariaDBなど)やNoSQLデータベースから(MongoDBのように)徐々に取って代わります.MariaDBはMySQLの創始者Michael Wideniusが主導して開発して、それはMySQLの1つの分岐に属して、主にオープンソースコミュニティが維持して、GPL授権許可を採用して、しかもMariaDBは完全にMySQLに互換します;MongoDBは1つのWeb規模のオープンソースNoSQLデータライブラリです.
phpプログラミング言語:
PHPはLAMPのアプリケーションプログラミング言語の元の役割として、他の言語から(PerlとPythonのように)共同で実行する.PHPはサーバー側のスクリプト言語であり、Web開発のために設計されている.PHPコードはwebサーバーが提供するPHPモジュールによってコンパイルされ、PHPコマンドをHTMLソースドキュメントに直接埋め込んで実行することをサポートし、実行効率はHTMLタグを完全に生成するCGIよりずっと高い.Perlは一連の高級、汎用、解釈の動的プログラミング言語である.PythonはPythonは、オブジェクト向け、コマンド、機能、プロセスのモデルなど、さまざまなプログラミング例をサポートしています.
キャッシュまたはアクセラレータ:
Apacheは独自のキャッシュモジュールを提供し、追加のSquidモジュールを使用してキャッシュすることもでき、いずれもApacheのアクセス応答能力を効果的に向上させることができます.PHPの加速はxcacheアクセラレータを使用し、phpダイナミックコンテンツを最適化し、キャッシュすることができ、PHPスクリプトのキャッシュ性能を向上させることができます.Memcachedは分散型メモリオブジェクトキャッシュシステムであり、通常、データベース負荷を軽減するために動的Webアプリケーションに使用される.
Apacheは、クライアント要求のリソースが静的要求であるかどうかを判断する.静的要求の場合、Apacheはクライアントが要求した静的リソース(.html,.html.html.shtmlなどのファイル)を、Http responseの形式でクライアントに直接転送する.
php動的要求の場合、クライアントのphp要求はCGIプロトコルによってPHPプログラムに転送され、phpプログラムによってphp解析器が呼び出されてphp要求が実行される.
PHPは、php要求を実行する際にmysqlデータベースに依存するか否かを判断する.mysqlデータベースに依存するなければ、php解析器によりphp関連スクリプトを直接実行し、解析後のスクリプトを再びCGIプロトコルによりApacheに返送する.サーバは、「静的リクエスト」のプロセスを実行します.
mysqlデータベースに依存する場合、phpプログラムはphp-mysqlドライバを介してmysqlに関連付けられ、関連データを取得してphp解釈器に戻し、再び「mysqlデータベースに依存しない」プロセスを実行します.
CGIメカニズム:phpは独立したプロセスで動作し、php要求を解析する必要がある場合、httpdによってphpプロセスを起動します.複数のphpリクエストにより、複数のphpプロセスが開始され、リソースが消費され、全体的なパフォーマンスがmoduleメカニズムに及ばない
Fast-CGIメカニズム:php-fpmサービスを生成し、phpプロセスをサービスphp-fpmによって管理する.ソケットに基づいてapacheと連絡し、apache workメカニズムと類似しており、親プロセス、サブプロセス、アイドルプロセスなどがあり、php処理能力を大幅に向上させた.
システム:Centos 6.6
ソフトウェア:httpd-2.4.34 + mysql-5.5.61 + php-5.6.36
コンパイル環境:LAMP関連の依存環境をインストールし、「Server PlatForm Development」、「Development tools」、「selinuxとiptables機能をオフにする
実験目的:インストールLAMPをコンパイルし、phpをmodeule方式でアクセスし、Fast-GIメカニズムで実行する.
LAMPコンパイルインストール、phpをmoduleモードでアクセスするように構成
一、コンパイル環境を構成し、「Server PlatForm Development」、「Development tools」をインストールし、selinuxとiptablesを閉じる
[root@VM ~]# yum groupinstall "Development tools" -y #
[root@VM ~]# yum groupinstall "Server Platform Development" -y #
[root@VM ~]# vi /etc/selinux/config # , selinux
SELINUX=disabled # disabled
#SELINUXTYPE=targeted # , #
[root@VM ~]# chkconfig iptables off # iptables
[root@VM ~]# chkconfig ip6tables off
[root@VM ~]# service iptables stop # iptables
[root@VM ~]# service ip6tables stop
二、コンパイルインストールApache
[root@VM ~]# tar xf apr-1.6.3.tar.gz
[root@VM ~]# cd apr-1.6.3
[root@VM apr-1.6.3]# ./configure --prefix=/usr/local/apr
[root@VM apr-1.6.3]# make && make install
[root@VM ~]# tar xf apr-util-1.6.1.tar.gz
[root@VM ~]# cd apr-util-1.6.1
[root@VM apr-util-1.6.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
[root@VM apr-util-1.6.1]# make && make install
[root@VM ~]# yum install gcc gcc-c++ pcre pcre-devel #
[root@VM ~]# cd httpd-2.4.34 # httpd
[root@VM httpd-2.4.34]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable--ssl --enable-cgi --enable-rewrite --with-zlib\
--with-pcre --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/ --enable-modeles=most --enable-mpms-shared=all --with-mpm=event
[root@VM httpd-2.4.34]# make && make install
[root@VM bin]# vi /etc/profile.d/http.sh #
export PATH=/usr/local/apache/bin:$PATH
[root@VM bin]# . /etc/profile.d/http.sh #
[root@VM apache]# ln -sv /usr/local/apache/include/ /usr/include/httpd # httpd include
`/usr/include/httpd' -> `/usr/local/apache/include/'
[root@VM apache]# vi /etc/man.config # httpd man
MANPATH /usr/local/apache/man
:
# ./configure --help : ,
--prefix=PREFIX :
--sbindir=DIR:
--enable-so : DSO ,
--enable--ssl :SSL/TLS support (mod_ssl)
--enable-cgi : CGI
--enable-rewrite : ,
--with-zlib=DIR: zlib
--with-pcre=DIR : pcre lib
--with-apr=DIR : apr
--with-apr-util=DIR : apr-util
--enable-modules=most : DSO
--with-mpm=prefork|worker|event : MPM
--enable-mpms-shared=all : MPM DSO
configure , https://httpd.apache.org/docs/2.4/en/programs/configure.html
[root@VM ~]# vi /etc/httpd/httpd.conf
Pidfile "/var/run/httpd/httpd.pid" # , Pidfile httpd.pid
[root@VM ~]# apachectl start # apache
[root@VM ~]# ss -tunl | grep 80
tcp LISTEN 0 128 :::80 :::*
[root@VM ~]# curl # apache
It works!
三、コンパイルインストールMysql
[root@VM ~]# fdisk /dev/sda # /dev/sda4 , 8e(LVM)
Command (m for help): n #
Command action
e extended
p primary partition (1-4)
Command (m for help): p #
Selected partition 4
First cylinder (10976-16709, default 10976):
Using default value 10976
Last cylinder, +cylinders or +size{K,M,G} (10976-16709, default 16709):
Using default value 16709
Command (m for help): t #
Partition number (1-4): 4
Hex code (type L to list codes): 8e
Changed system type of partition 4 to 8e (Linux LVM)
Command (m for help): p # , /dev/sda4 Linux LVM
Device Boot Start End Blocks Id System
/dev/sda1 * 1 256 2048000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 256 10454 81920000 8e Linux LVM
/dev/sda3 10454 10976 4194304 82 Linux swap / Solaris
/dev/sda4 10976 16709 46051714+ 8e Linux LVM
Command (m for help): w #
The partition table has been altered!
[root@VM ~]# partx -a /dev/sda #
[root@VM ~]# kpartx -af /dev/sda
[root@VM ~]# cat /proc/partitions # /dev/sda4
major minor #blocks name
8 0 134217728 sda
8 1 2048000 sda1
8 2 81920000 sda2
8 3 4194304 sda3
8 4 46051714 sda4
[root@VM ~]# mke2fs -t ext4 /dev/sda4 # /dev/sda4
[root@VM ~]# pvcreate /dev/sda4 # pv
Physical volume "/dev/sda4" successfully created
[root@VM ~]# pvs # pv
PV VG Fmt Attr PSize PFree
/dev/sda2 vg0 lvm2 a--u 78.12g 2.92g
/dev/sda4 lvm2 ---- 43.92g 43.92g
[root@VM ~]# vgextend vg0 /dev/sda4 # vg0
Volume group "vg0" successfully extended
[root@VM ~]# vgs # vg
VG #PV #LV #SN Attr VSize VFree
vg0 2 4 0 wz--n- 122.03g 46.84g
[root@VM ~]# lvcreate -n data -L 20G vg0 # lvm data
Logical volume "data" created.
[root@VM ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
data vg0 -wi-a----- 20.00g
[root@VM ~]# mke2fs -t ext4 /dev/mapper/vg0-data #
[root@VM ~]# vi /etc/fstab # /dev/mapper/vg0-data
/dev/mapper/vg0-data /data ext4 defaults 0 0
[root@VM ~]# mount -a #
[root@VM ~]# mount #
/dev/mapper/vg0-data on /data type ext4 (rw)
[root@VM ~]# tar xf mysql-5.5.61.tar.gz # mysql
[root@VM ~]# useradd -s /sbin/nologin -r mysql # mysql
[root@VM ~]# id mysql
uid=498(mysql) gid=498(mysql) groups=498(mysql)
[root@VM ~]# cd /data/ # mysql /data/sqldata ,
[root@VM data]# mkdir sqldata
[root@VM data]# chown root:mysql sqldata/
[root@VM ~]# yum install ncurses-devel bison bison-devel # Epel yum , mysql
[root@VM ~]# cd mysql-5.5.61 # mysql
[root@VM mysql-5.5.61]# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/data/sqldata \
-DSYSCONFDIR=/etc \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \
-DMYSQL_TCP_PORT=3306 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_DEBUG=0
[root@VM mysql-5.5.61]# make && make install
[root@VM mysql]# vi /etc/profile.d/mysql.sh # mysql
export PATH=/usr/local/mysql/bin:$PATH
[root@VM mysql]# . /etc/profile.d/mysql.sh #
[root@VM mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql # mysql include
`/usr/include/mysql' -> `/usr/local/mysql/include/'
[root@VM mysql]# vi /etc/man.config # mysql
MANPATH /usr/local/mysql/man
[root@VM mysql]# vi /etc/ld.so.conf.d/mysql.conf # mysql lib ,
/usr/local/mysql/lib
[root@VM lib]# ldconfig -v | grep mysql # lib
/usr/local/mysql/lib:
libmysqlclient.so.18 -> libmysqlclient_r.so.18.0.0
/usr/lib64/mysql:
libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0
libmysqlclient.so.16 -> libmysqlclient.so.16.0.0
#
# cmake . \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql # MySQL
-DMYSQL_DATADIR=/data/sqldata # MySQL
-DSYSCONFDIR=/etc # MySQL
-DWITH_MYISAM_STORAGE_ENGINE=1 # MySQL
-DWITH_INNOBASE_STORAGE_ENGINE=1 # MySQL
-DWITH_ARCHIVE_STORAGE_ENGINE=1 # MySQL
-DWITH_MEMORY_STORAGE_ENGINE=1 # MySQL
-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock # MySQL sock
-DMYSQL_TCP_PORT=3306 # MySQL
-DWITH_PARTITION_STORAGE_ENGINE=1
-DEXTRA_CHARSETS=all # MySQL
-DDEFAULT_CHARSET=utf8 # MySQL utf8
-DDEFAULT_COLLATION=utf8_general_ci # MySQL
-DWITH_DEBUG=0 #
。
[root@VM mysql]# chown -R root:mysql /usr/local/mysql # /usr/local/mysql
[root@VM mysql]# ./scripts/mysql_install_db --datadir=/data/sqldata/ --user=mysql # mysql
Installing MySQL system tables...
180819 14:21:16 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
180819 14:21:16 [Note] ./bin/mysqld (mysqld 5.5.61) starting as process 65052 ...
OK
Filling help tables...
180819 14:21:17 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
180819 14:21:17 [Note] ./bin/mysqld (mysqld 5.5.61) starting as process 65059 ...
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
[root@VM mysql]# ln -sv /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld #
`/etc/init.d/mysqld' -> `/usr/local/mysql/support-files/mysql.server'
[root@VM run]# vi /etc/my.cnf # mysql
[mysqld]
datadir=/data/sqldata # data
socket=/var/run/mysql/mysql.sock # sock
user=mysql # mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid # pid
[root@VM run]# mkdir /var/run/mysql # /var/run/mysql , pid sock
[root@VM run]# chown -R mysql.mysql /var/run/mysql #
[root@VM run]# chkconfig --add mysqld # mysqld
[root@VM run]# chkconfig mysqld on
[root@VM run]# service mysqld start # mysqld
Starting MySQL SUCCESS!
[root@VM run]# ss -tunl | grep 3306
tcp LISTEN 0 50 *:3306 *:*
[root@VM mysql]# mysql # mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.61 Source distribution
mysql> select version();
+-----------+
| version() |
+-----------+
| 5.5.61 |
+-----------+
1 row in set (0.00 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| test |
+--------------------+
4 rows in set (0.00 sec)
mysql> drop database test;
Query OK, 0 rows affected (0.03 sec)
mysql> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| user |
+---------------------------+
mysql> select user,host,password from user;
+------+-----------+----------+
| user | host | password |
+------+-----------+----------+
| root | localhost | |
| root | vm | |
| root | 127.0.0.1 | |
| root | ::1 | |
| | localhost | |
| | vm | |
+------+-----------+----------+
6 rows in set (0.00 sec)
mysql> drop user root@'::1'; #
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ''@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> drop user ''@'vm';
Query OK, 0 rows affected (0.00 sec)
mysql> UPDATE user SET password=PASSWORD('Hello123abc.com') WHERE user='root'; # root
Query OK, 4 rows affected (0.01 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
[root@VM mysql]# vi /root/.my.cnf # ,
[mysql]
user = root
host = localhost
password = Hello123abc.com
: MySQL , my.cnf。
:/etc/my.cnf -->$MYSQL_Base/my.cnf --> --defaults-extra-file=/path/to/some_my.cnf -->.my.cnf
四、PHPのコンパイルインストール
ダウンロード先:http://at2.php.net/distributions/php-5.6.36.tar.gz
[root@VM ~]# yum -y install libxml2-devel openssl-devel openssl bzip2-devel libmcrypt libmcrypt-devel mcrypt
# Epel yum ,
[root@VM ~]# cd php-5.6.36
[root@VM php-5.6.36]# ./configure --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql --with-openssl \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring --with-freetype-dir \
--with-jpeg-dir --with-png-dir \
--with-zlib --with-bz2 \
--with-mcrypt --with-libxml-dir=/usr \
--enable-sockets --with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d \
--enable-maintainer-zts
[root@VM php-5.6.36]# make && make install
[root@VM php-5.6.36]# cp php.ini-production /etc/php.ini # php
[root@VM ~]# vi /etc/profile.d/php.sh #
export PATH=/usr/local/php/bin:$PATH
[root@VM ~]# ln -sv /usr/local/php/include/ /usr/include/php # php
`/usr/include/php' -> `/usr/local/php/include/'
;
--prefix=/usr/local/php # php
--with-mysql=/usr/local/mysql # mysql
--with-mysqli=/usr/local/mysql/bin/mysql_config # mysql php
--with-openssl # ssl
--enable-mbstring #
--with-freetype-dir # freetype ,
--with-jpeg-dir --with-png-dir # jpep , pnp
--with-zlib #
--with-libxml-dir=/usr # xml
--enable-sockets #
--with-mcrypt #
--with-config-file-path=/etc # php (/etc/php.ini)
--with-config-file-scan-dir=/etc/php.d # php (/etc/php.d/*.ini)
--with-bz2 # bz2
--enable-maintainer-zts # Apache mpm ,
[root@VM ~]# vi /etc/httpd/httpd.conf # httpd php
<1> php
LoadModule php5_module modules/libphp5.so
<2>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<3> DirectoryIndex index.html
:
DirectoryIndex index.php index.html
[root@VM ~]# apachectl stop # httpd
[root@VM ~]# apachectl start
[root@VM ~]# vi /usr/local/apache/htdocs/index.php # apache php
[root@VM ~]# vi /usr/local/apache/htdocs/mysql.php # php mysql
五、php加速器xcacheを取り付ける
ダウンロード先:http://xcache.lighttpd.net/pub/Releases/3.2.0/xcache-3.2.0.tar.gz
[root@VM ~]# tar xf xcache-3.2.0.tar.gz
[root@VM ~]# cd xcache-3.2.0
[root@VM xcache-3.2.0]# phpize # , yum install autoconfig 。
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
[root@VM xcache-3.2.0]# phpize # php
Configuring for:
PHP Api Version: 20131106
Zend Module Api No: 20131226
Zend Extension Api No: 220131226
[root@VM xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config #
[root@VM xcache-3.2.0]# make && make install # ,
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-zts-20131226/
[root@VM ~]# cp xcache.ini /etc/php.d/
[root@VM ~]# vi /etc/php.d/xcache.ini
extension = /usr/local/php/lib/php/extensions/no-debug-zts-20131226/xcache.so # ,
[root@VM ~]# apachectl stop # httpd
[root@VM ~]# apachectl start
[root@VM ~]# tar xf phpMyAdmin-4.8.2-all-languages.tar.xz
[root@VM ~]# mv phpMyAdmin-4.8.2-all-languages /usr/local/apache/htdocs/pmyadmin
1) :
: config.default.php 108 $cfg[‘blowfish_secret’] , 32 。
[root@VM pmyadmin]# vi libraries/config.default.php # phpMyAdmin libraries config.default.php
$cfg['blowfish_secret'] = '[email protected]@blog.51cto.com/itwish';
2)$cfg['TempDir'] (./tmp/) , phpMyAdmin .
: phpmyadmin tmp , 777
[root@VM pmyadmin]# mkdir -m 777 tmp
七、圧力テスト
[root@VM pmyadmin]# ulimit -n 3000
[root@VM pmyadmin]# ab -c 200 -n 2000 http://192.168.4.160/pmyadmin/index.php
This is ApacheBench, Version 2.3
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.4.160 (be patient)
Server Software: Apache/2.4.34
Server Hostname: 192.168.4.160
Server Port: 80
Document Path: /pmyadmin/index.php
Document Length: 14114 bytes
Concurrency Level: 200
Time taken for tests: 50.732 seconds
Complete requests: 68
Failed requests: 50
(Connect: 0, Receive: 0, Length: 50, Exceptions: 0)
Total transferred: 1237144 bytes
HTML transferred: 1115484 bytes
Requests per second: 1.34 [#/sec] (mean)
Time per request: 149211.594 [ms] (mean)
Time per request: 746.058 [ms] (mean, across all concurrent requests)
Transfer rate: 23.81 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 42 10.0 45 48
Processing: 303 3041 2912.9 2091 15081
Waiting: 92 2496 2183.3 1949 13240
Total: 303 3083 2914.7 2120 15127
Percentage of the requests served within a certain time (ms)
50% 2120
66% 2458
75% 3025
80% 3069
90% 5107
95% 9875
98% 13559
99% 15127
100% 15127 (longest request)
, xcache ,
LAMPコンパイルインストール、php-fpmモードを実現
一、コンパイル環境を構成し、「Server PlatForm Development」、「Development tools」をインストールし、selinuxとiptablesを閉じる.
二、コンパイルインストールApache、上記の構成と同じ
三、コンパイルインストールMysql、上記の構成と同じ
四、コンパイルインストールPHPはFast-Giをサポートする
ダウンロード先:http://at2.php.net/distributions/php-5.6.36.tar.gz
[root@VM ~]# yum -y install libxml2-devel openssl-devel openssl bzip2-devel libmcrypt libmcrypt-devel mcrypt
# Epel yum ,
[root@VM ~]# cd php-5.6.36
[root@VM php-5.6.36]# ./configure --prefix=/usr/local/php \
--with-mysql=/usr/local/mysql --with-openssl \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--enable-mbstring --with-freetype-dir \
--with-jpeg-dir --with-png-dir \
--with-zlib --with-bz2 \
--with-mcrypt --with-libxml-dir=/usr \
--enable-sockets --enable-fpm \
--with-config-file-path=/etc --with-config-file-scan-dir=/etc/php.d
[root@VM php-5.6.36]# make && make install
[root@VM ~]# vi /etc/profile.d/php.sh #
export PATH=/usr/local/php/bin:$PATH
[root@VM ~]# ln -sv /usr/local/php/include/ /usr/include/php # php
`/usr/include/php' -> `/usr/local/php/include/'
# , Module , Fast-CGI
--enable-maintainer-zts, php httpd 。
--with-apxs2=/usr/local/apache/bin/apxs --enable-fpm
[root@VM ~]# cd php-5.6.36
[root@VM php-5.6.36]# cp php.ini-production /etc/php.ini # php
[root@VM php-5.6.36]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm # php-fpm
[root@VM php-5.6.36]# chmod +x /etc/init.d/php-fpm #
[root@VM php-5.6.36]# chkconfig --add php-fpm
[root@VM php-5.6.36]# chkconfig php-fpm on
[root@VM php-5.6.36]# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #
[root@VM php-5.6.36]# vi /usr/local/php/etc/php-fpm.conf # php-fpm
pid = /var/run/php-fpm.pid # /usr/local/php/var/run/php-fpm.pid , pid
pm.max_children = 5 #
pm.start_servers = 2 #
pm.min_spare_servers = 1 #
pm.max_spare_servers = 3 #
pm.max_requests = 500 #
[root@VM php-5.6.36]# service php-fpm start
[root@VM ~]# ss -tunl | grep 9000
tcp LISTEN 0 128 127.0.0.1:9000 *:*
[root@VM ~]# vi /etc/httpd/httpd.conf # httpd php
<1> php
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
<2> apache php
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<3> DirectoryIndex index.html
:
DirectoryIndex index.php index.html
<4> httpd fast-CGI, ,
DocumentRoot "/var/www/html"
ProxyRequests off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
<5> fast-CGI , ,
ProxyRequests off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1
[root@VM ~]# apachectl stop # httpd
[root@VM ~]# apachectl start
[root@VM ~]# vi /usr/local/apache/htdocs/index.php # apache php
五、php加速器xcacheを取り付け、上記の構成と同じ
六、phpMyAdmin-4.8をインストールする.2、mysqlを管理し、上記の構成と同じ
七、圧力テスト、上記の構成と同じ
これでLAMPコンパイル実装実験を完了し,phpがmoduleモードでapacheとfpm方式のphpにアクセスし構成することをそれぞれ実現した.
転載は出典を明記してください.https://blog.51cto.com/itwish/2161699
転載先:https://blog.51cto.com/itwish/2161699