コンパイルし、アクセスを高速化XCacheとPHPを使ってLAMPをインストールします

编译安装AMP:
アパッチ):
1. http://httpd.apache.org
2. http://archive.apache.org/dist/
M(のMySQL / MariaDB):
http://www.mysql.com /ダウンロード
https://mariadb.org/download/
P(PHP)を:
https://www.php.net/releases/

組成:
(4月-utilのオン1.5.4年04月1.5.2オン+)のhttpd-2.4.27 + MariaDB-5.5.57 5.6.31、PHP +

コンパイルとインストールの前提条件-完全なビルド環境:
1.「開発ツール」と「サーバー・プラットフォームの開発」2つのパッケージグループ;
2.pcre-develの
3.libevent-develの

编译环境的安装方式:
  # yum -y groupinstall "Development Tools" "Server Platform Development"
  # yum -y install pcre-devel
  # yum -y install libevent-devel

注意:AMPプログラムをコンパイルする前に、任意のプログラム・コンポーネントの回転数AMPのインストールパッケージを使用していないことを確認し、あっHTTPD、HTTPD-ツールは、MySQLサーバ/ PHP、PHP-FPM mariadb-サーバー,, ...

インストールA(アパッチ)のAMPのコンパイル:
1.アンロードオリジナルAMP
〜] -q RPM#PHPのMySQL-サーバのhttpd
〜]#-qlのhttpd-ツールRPM
〜]#yumをhttpdの-ツール-Y ERASE
]〜を#yumを-yのphpのhttpdのMySQLサーバを消去

2.必要な環境でコンパイルインストール
〜]#yumを-y groupinstall "開発ツール"
〜]#yumを-y groupinstall "サーバー・プラットフォームの開発を"
〜]#yumを-y PCRE-develのインストール
〜]#yumを-y libevent-develのインストール

4月3.コンパイラのインストール
〜]#1.5.2.tar.bz2タール-XF 4月には
4月-CDの#1.5.2で〜]
4月-1.5.2オン]#は./configure --prefix =は/ usr / local / 1.5 4月-用.2
APR-1.5.2]#1 CATの/ proc / cpuinfoの
//仮想マシンのコア番号#を表示する、 "プロセス"は、0からカウントを開始
] APR-1.5.2メーク-j 4位
]位APR-1.5.2をmakeがインストール

4.编译安装apr-util
apr-1.5.2]# cd
~]# tar xf apr-util-1.5.4.tar.bz2
~]# cd apr-util-1.5.4
apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2
apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util-1.5.4 --with-apr=/usr/local/apr-1.5.2
apr-util-1.5.4]# make -j 4
apr-util-1.5.4]# make install

5.编译安装httpdの
APR-utilの-1.5.4]#のCD
〜]#タールXF httpdの-2.4.27.tar.bz2
〜]#のCDのhttpd-2.4.27
のhttpd-2.4.27]#の./configureを-接頭辞=は/ usr / local / apacheの-2.4.27 --sysconfdir =の/ etc /のhttpd-2.4.27 --enable-SO --enable-SSL --enable-CGI --enable-書き換え--enable-モジュール=最も--enable-のMPM-共有=すべて--with-4月=は/ usr / local / 4月-1.5.2 --with-APR-utilの=は/ usr / APR-utilの-1.5.4 /ローカル--with- zlibの--with-PCRE --with-MPM = preforkの
HTTPD-2.4.27]#-j 4作る
のhttpd-2.4.27]#をインストールします

コンパイル終了後に6
:1)エクスポートバイナリファイル
のhttpd-2.4.27]#のVimは/etc/profile.d/httpd-2.4.27.sh
=は/ usr / local /のApache-2.4.27 / PATHをエクスポートしますビン:$ PATH
にhttpd-2.4.27]#ソース/etc/profile.d/httpd-2.4.27.sh
//発効の内容を作るためにsourceコマンドを使用します。(。)
2)輸出のヘルプファイル:
HTTPD-2.4。 27]#のvimのはて/etc/man.config
"MANPATH"この構成セクション、追加見つける:
あなたのMANPATHの/usr/local/apache-2.4.27/manを
3)輸出ヘッダファイル
のhttpd-2.4.27]#LN -sv / USR /local/apache-2.4.27/include/は/ usr /インクルードには、/ httpdの
4)輸出ライブラリ
のhttpdディレクトリの下にディレクトリがlib64にするかどうかを検出すると、作成しない:
HTTPD-2.4.27]#-pvます。mkdirは/ usr / local /apache-2.4.27/lib64
ファイルを作成:
HTTPD-2.4.27]#の/etc/ld.so.conf.d/httpd.confのVimを
追加しました:/usr/local/apache-2.4.27/lib64
完了エクスポートすることができます:
httpdの-2.4.27]#ldconfigを-v

7.設定作業は
:コンパイラのインストールhttpd.confファイルは、「PidFileオプション」の設定は、「インクルード」しませんので、あなたがメインのhttpd.conf設定ファイルを編集したいので、設定は、有効になりません
HTTPD-2.4.27]#のvimのは/ etc / httpdのを-2.4.27 / httpd.confを
標準化し、「ServerRootから」で、見栄えのするための設定を追加します:
PidFileオプションは/var/run/httpd-2.4.27.pid
追加するには、「含める」構成セクションで:
/etc/httpd-2.4を含めます。 27 /エクストラ/ *。confに

8. SysVのスタイルのサービス管理スクリプトを提供します/etc/init.d/httpd

#!/bin/bash
#
# httpd        Startup script for the Apache HTTP Server
#
# chkconfig: - 85 15
# description: Apache is a World Wide Web server.  It is used to serve \
#          HTML files and CGI.
# processname: httpd
# config: /etc/httpd-2.4.27/httpd.conf
# config: /etc/sysconfig/httpd-2.4.27
# pidfile: /var/run/httpd-2.4.27.pid

# Source function library.
. /etc/rc.d/init.d/functions

if [ -f /etc/sysconfig/httpd-2.4.27 ]; then
  . /etc/sysconfig/httpd-2.4.27
fi

# Start httpd in the C locale by default.
HTTPD_LANG=${HTTPD_LANG-"C"}

# This will prevent initlog from swallowing up a pass-phrase prompt if
# mod_ssl needs a pass-phrase from the user.
INITLOG_ARGS=""

# Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server
# with the thread-based "worker" MPM; BE WARNED that some modules may not
# work correctly with a thread-based MPM; notably PHP will refuse to start.

# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/local/apache-2.4.27/bin/apachectl
httpd=${HTTPD-/usr/local/apache-2.4.27/bin/httpd}
prog=httpd
pidfile=${PIDFILE-/var/run/httpd-2.4.27.pid}
lockfile=${LOCKFILE-/var/lock/subsys/httpd}
RETVAL=0

start() {
  echo -n $"Starting $prog: "
  LANG=$HTTPD_LANG daemon --pidfile=${pidfile} $httpd $OPTIONS
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && touch ${lockfile}
  return $RETVAL
}

stop() {
  echo -n $"Stopping $prog: "
  killproc -p ${pidfile} -d 10 $httpd
  RETVAL=$?
  echo
  [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile}
}
reload() {
  echo -n $"Reloading $prog: "
  if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then
    RETVAL=$?
    echo $"not reloading due to configuration syntax error"
    failure $"not reloading $httpd due to configuration syntax error"
  else
    killproc -p ${pidfile} $httpd -HUP
    RETVAL=$?
  fi
  echo
}

# See how we were called.
case "$1" in
  start)
    start
    ;;
  stop)
    stop
    ;;
  status)
    status -p ${pidfile} $httpd
    RETVAL=$?
    ;;
  restart)
    stop
    start
    ;;
  condrestart)
    if [ -f ${pidfile} ] ; then
      stop
      start
    fi
    ;;
  reload)
    reload
    ;;
  graceful|help|configtest|fullstatus)
    $apachectl $@
    RETVAL=$?
    ;;
  *)
    echo $"Usage: $prog {start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
    exit 1
esac

exit $RETVAL

上述脚本创建之后,需要完成下列操作:
  httpd-2.4.27]# chmod +x /etc/init.d/httpd
若想设置开机自启动httpd服务:
  # chkconfig --add httpd
  # chkconfig httpd on

9.テストhttpdサービス
ファイアウォールオフ1ターン:
HTTPD-2.4.27]#iptablesの-F
2.無効にSELinux:
HTTPD-2.4.27]#のsetenforce 0
サーバーのアドレスにアクセスする3.ブラウザ:
172.16.69.1
ショー:
それは作品を!

编译安装AMP:

A(Apache):
1.http://httpd.apache.org
2.http://archive.apache.org/dist/
M(Mysql/MariaDB):
http://www.mysql.com/download
https://mariadb.org/download/
P(PHP):
https://www.php.net/releases/

组合:
httpd-2.4.27(apr-1.5.2 + apr-util-1.5.4) + MariaDB-5.5.57 + php-5.6.31

编译安装的前提条件——完整的编译环境:
1."Development Tools"和"Server Platform Development"两个程序包组;
2.pcre-devel
3.libevent-devel

编译环境的安装方式:
  # yum -y groupinstall "Development Tools" "Server Platform Development"
  # yum -y install pcre-devel
  # yum -y install libevent-devel

注意:在编译AMP程序之前,需要确保没有使用rpm程序包安装过AMP中的任何组件,包括:httpd,httpd-tools,mysql-server/mariadb-server,php,php-fpm,...

インストールのAMP Mコンパイラ(MySQLの/ MariaDB)
指定されたディレクトリ(は/ usr / local)に1デコンプレッサバイナリパケット
〜]#MariaDBタール-5.5.57-XF-x86_64.tar.gz -CのLinuxは/ usr / local
〜]#のCDは/ usr / local
2.サービスやデータの管理を開始するには、ユーザーとグループを作成します。

groupaddの-r -g 306のmysql

# useradd -r -u 306 -g mysql mysql
//如果此前组装过mysql,则不需要创建了;在/etc/passwd下可查

:作成し、ファイルを変更する3.データディレクトリのパーミッション
]#LN -sv /usr/local/mariadb-5.5.57-linux-x86_64/ MySQLの地元
ローカル]#のCDのMySQL
のMySQL] -pv#ます。mkdirは/ var / libに/ MySQLの
。MySQLの]#chownコマンドのMySQLの/ var / libに/ MySQLの
4輸出バイナリ
のMySQL]#Vimは/etc/profile.d/mariadb-5.5.57.sh
=は/ usr / local / MySQLの/ binにPATHエクスポート:$ PATHを
。MySQLの] /etc/profile.d/mariadb-5.5.57.sh#
//発効の内容を作るためにsourceコマンドを使用します(。);
5.輸出のヘルプファイル
のmysql]#vimのて/etc/man.configは
「MANPATHを見つけます「この構成セクション、追加:
あなたのMANPATHを/ usr / local / MySQLの/男
6.エクスポートライブラリファイル
のmysql]をvimの/etc/ld.so.conf.d/mariadb-5.5.57.conf#が
追加:
は/ usr / local / MySQL / LIB
エクスポートファイルヘッダ7
のMySQL] -sv LN#は/ usr / local /のMySQL /ザ含む/の/ usr /含む/ MySQLの
8エクスポート設定ファイル
MySQLの]#のLSは/ usr / local / MySQLの/サポート・ファイル/
『my.cnfの』に従って、メモリが指定したディレクトリにサーバーの設定ファイルをエクスポート;すべて「の.cnf」のため、このディレクトリ内のファイルの末尾にある//ビュー
のMySQL]#サポートファイル-CP /マイ・large.cnfな/etc/my.cnf
9.な/etc/my.cnf設定
のMySQL]#Vimのな/etc/my.cnf
追加[mysqldを]構成セクション:
DATADIR =の/ var / libに/ MySQLの
innodb_file_per-表= ON
skip_name_resolve = ON
10のconfigureサービスの起動スクリプト
のMySQL]#のcp -aのサポート・ファイル/ mysql.serverの/etc/init.d/mysqld
//ファイルが実行する権限を与えられていることを確認して
、設定したい場合スタートMySQLサービスから起動:

chkconfigを--addのmysqld

  # chkconfig mysqld on

11.スタートサービス・テスト
のMySQL]#サービス開始のmysqld
「/var/lib/mysql/localhost.localdomain.err」にMySQL.181224 16時37分52秒のmysqld_safeのロギングを開始する。
181 224 16時37分52秒データベースでmysqldデーモンの起動のmysqld_safe / var / libに/ MySQLのから
...エラー!
エラー//示唆、発生したデータディレクトリエラーの側面
のmysql]#スクリプト/ mysql_install_dbに--user = MySQLの--datadir =の/ var / libに/ MySQLの
//初期化し、データベース構成
のmysql] mysqldの#-サービスを開始
mysqld_safeをログ'/var/lib/mysql/localhost.localdomain.err'にMySQL.181224 16時43分26秒を開始する。
181データベースから始めてmysqld_safeを持つ224 16時43分26秒のmysqldデーモンは/ var / libに/ MySQLの
。成功!
//成功したスタート
のMySQL]#SSは-tnl
のMySQL]#MySQLを
開始成功は、インタラクティブコマンド・インタフェースが正常にインストールコンパイルされている入力する場合//

编译安装AMP:
アパッチ):
1. http://httpd.apache.org
2. http://archive.apache.org/dist/
M(のMySQL / MariaDB):
http://www.mysql.com /ダウンロード
https://mariadb.org/download/
P(PHP)を:
https://www.php.net/releases/

組成:
(4月-utilのオン1.5.4年04月1.5.2オン+)のhttpd-2.4.27 + MariaDB-5.5.57 5.6.31、PHP +

コンパイルとインストールの前提条件-完全なビルド環境:
1.「開発ツール」と「サーバー・プラットフォームの開発」2つのパッケージグループ;
2.pcre-develの
3.libevent-develの

编译环境的安装方式:
  # yum -y groupinstall "Development Tools" "Server Platform Development"
  # yum -y install pcre-devel
  # yum -y install libevent-devel

注意:AMPプログラムをコンパイルする前に、任意のプログラム・コンポーネントの回転数AMPのインストールパッケージを使用していないことを確認し、あっHTTPD、HTTPD-ツールは、MySQLサーバ/ PHP、PHP-FPM mariadb-サーバー,, ...

AMPはP(PHP)をコンパイルしてインストール:
1. PHP-5.6.31をコンパイルする権利が欲しい次の依存関係を解決する必要がある場合があります
:あなたはローカルのCD-ROMのyumリポジトリを使用する場合
のlibxml2-develの
GD-develの
FreeTypeの-のdevel
libmcryptの-develのを

注意:gd-devel-2.0.35-11.el6.x86_64.rpm在DVD2光盘镜像中,可以拷贝出来,再挂载DVD1光盘镜像,完成安装;

也可以配置其他的yum仓库,直接就能安装上
  ~]# yum install -y libxml2-devel freetype-devel libmcrypt-devel
  ~]# yum install gd-devel -y

2.指定したディレクトリにバイナリパッケージを抽出
〜]#1 PHPタール5.6.31.tar.bz2 XF
〜] CD番号のPHP-5.6.31

3.编译安装PHP
PHP-5.6.31]#は./configure --prefix =は/ usr / local / PHP-5.6.31 --enable-FPM --with-MySQLの=は/ usr / local / MySQLの--with- mysqliの=は/ usr / local / MySQLの/ binに/ mysql_configを--with-OpenSSLの--enable-mbstringの--enable-XML --enable-ソケット--with-FreeTypeの-DIR --with-のlibxml-DIR = / USR - -with-ZLIB --with-apxs2 =は/ usr / local / apacheの-2.4.27 / binに/ APXS --with-CONFIG-ファイルパス=の/ etc / PHP-5.6.31.ini --with-CONFIG-ファイルスキャン-DIR =の/ etc / PHP-5.6.31.d --with-gdの--with-JPEG-dirの--with-PNG-dirの--with-mcryptの
のphp-5.6.31]#-jを作ります4 && make installを

4.必要な設定ファイルをコンパイルしてインストールしますの欠如作成
PHP-5.6.31を]#cpは、生産者の/etc/php-5.6.31.iniのphp.ini
PHP-5.6.31]#ます。mkdir -pvの/ etc / PHP- 5.6.31.dの
PHP-5.6.31]#のCPのSAPI / FPM / PHP-fpm.conf /etc/php-5.6.31.d/

5.プロフィールを編集
PHP-5.6.31]#Vimの/etc/php56.d/php-fpm.conf
;;;;;;;;;;;;;;;;;;;;
、プールの定義;
; ;;;;;;;;;;;;;;;;;;;

  [global]
  ;pid = /usr/loca/php-5.6.31/var/run/php-fpm.pid

  [www]
  user = nobody
  group = nobody
  listen = 127.0.0.1:9000
  ;listen.backlog = 65535
  ;listen.allowed_clients = 127.0.0.1
  pm = dynamic
  pm.max_children = 5
  pm.start_servers = 2
  pm.min_spare_servers = 1
  pm.max_spare_servers = 3
  ;pm.max_requests = 500
  ;pm.status_path = /fpm-status

  寻找适当的位置添加;
    php_value[session.save_handler] = files
    php_value[session.save_path] = /var/lib/php-5.6.31/session

  添加完成后完善目录文件并授权根据[www]:
    php-5.6.31]# mkdir -pv /var/lib/php-5.6.31/session
    php-5.6.31]# chown nobody. /var/lib/php-5.6.31/session

6. PHP-FPMサービススクリプト用のSysVスタイルを提供
SAPI / FPM / FPM /etc/init.d/php-fpm init.d.php- CP#] PHP-5.6.31
] PHP-5.6.31#をchmodの+ X /etc/init.d/php-fpm

若想设置开机自动:
  # chkconfig --add php-fpm
  # chkconfig php-fpm on

7.エクスポートバイナリファイル:
PHP-5.6.31]#のvimの/etc/profile.d/php-5.6.31.sh
エクスポートPATH =は/ usr / local / PHP-5.6.31 / binに:$ PATH
PHP-5.6。 31]#/etc/profile.d/php-5.6.31.sh
//力へのエントリの内容を作るために、ソースコマンドを使用して(。);

8.修改服务启动脚本中的内容
php-5.6.31]# vim /etc/init.d/php-fpm
1) 添加一个变量:
scan_confi_dir=/etc/php56.d
2) 修改一个变量定义:
php_fpm_CONF=${prefix}/etc/php-fpm.conf
改为:
php_fpm_CONF=${scan_conf_dir}/php-fpm.conf

  修改的结果:
    scan_conf_dir=/etc/php-5.6.31.d/
    php_fpm_BIN=${exec_prefix}/sbin/php-fpm
    php_fpm_CONF=${scan_conf_dir}/php-fpm.conf
    php_fpm_PID=${prefix}/var/run/php-fpm.pid

9.检查php-fpm进程状态:

service php-fpm status

# ss -tnl
# netstat -tnl

AMP编辑完成的构建:
1.编辑httpd的主配置文件:
    php-5.6.31]# vim /etc/httpd-2.4.27/httpd.conf
        1) 取消注释,启动允许httpd的虚拟主机配置:大约在485行
            # Virtual hosts
            Include /etc/httpd-2.4.27/extra/httpd-vhosts.conf
        2) 允许默认的主页格式:大约在260行
            <IfModule dir_module>
              DirectoryIndex index.html index.php
            </IfModule>

2.编辑虚拟主机配置文件:       
    php-5.6.31]# vim /etc/httpd-2.4.27/extra/httpd-vhosts.conf
        <VirtualHost 172.16.69.1:80>
          DocumentRoot "/myvhost/vhost1"
          ServerName www.vayne36.com
          ErrorLog "logs/error_log"
          Customlog "logs/access_log" common
          DIrectoryIndex index.php
          ProxyRequests Off
          ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/myvhost/vhost1/$1
          <Directory "/myvhost/vhost1">
            Options None
            AllowOverride None
            Require all granted
          </Directory>
        </VirtualHost>

3.检查语法排查错误
    php-5.6.31]# httpd -t
    AH00526: Syntax error on line 46 of /etc/httpd-2.4.27/extra/httpd-vhosts.conf:
    Invalid command 'ProxyRequests', perhaps misspelled or defined by a module not included in the server configuration
        //缺少某个模块,关于vhost的模块没有被加载

4.编译httpd的主配置文件,取消注释,加载模块:
    php-5.6.31]# vim /etc/httpd-2.4.27/httpd.conf
        大约在120行,取消注释,把:
            #LoadModule proxy_module modules/mod_proxy.so
            #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
        改为:
            LoadModule proxy_module modules/mod_proxy.so
            LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

5.检查语法
    php-5.6.31]# httpd -t
    AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
    Syntax OK

6.添加PHP应用:phpMyAdmin
    vhost1]# tar xf phpMyAdmin-3.5.4-all-languages.tar.gz
    vhost1]# service httpd reload

7.关闭防火墙,禁用SELinux
    vhost1]# iptables -F
    vhost1]# setenforce 0

8.重启服务,测试
    vhost1]# service httpd reload
    浏览器访问:
        http://www.vayne36.com/phpMyAdmin-3.5.4-all-languages/

9.修改服务器的/etc/hosts文件:
    添加:
        172.16.69.1 www.vayne36.com

10.测试请求/响应的数量:
    vhost1]# ab -c 10 -n 100 http://www.vayne36.com/phpMyAdmin-3.5.4-all-languages/index.php
    输出结果显示:
        Requests per second:    112.57 [#/sec] (mean)

编译安装xcache以加速php访问:
1.下载xcache的源代码:
http://xcache.lighttpd.net/

2.利用Xshell的新建文件传输把Xcache源代码包传进来并解压缩
    ~]# tar xf xcache-3.2.0.tar.gz
    ~]# cd xcache-3.2.0

3.xcache是被编译成php的一种组件,但在"xcache-3.2.0"目录下没有"configure"文件,利用php的编译工具命令创建出来:
    xcache-3.2.0]# phpize
        //生成"configure"文件

4.编译安装xcache
    xcache-3.2.0]# ./configure --enable-xcache --with-php-config=/usr/local/php-5.6.31/bin/php-config
    xcache-3.2.0]# make -j 4 && make install
    输出结果的最后一行:
        Installing shared extensions:     /usr/local/php-5.6.31/lib/php/extensions/no-debug-non-zts-20131226/

        /usr/local/php-5.6.31/lib/php/extensions/no-debug-non-zts-20131226/就是存放xcache模块的目录

5.为xcache提供配置文件
    xcache-3.2.0]# cp xcache.ini /etc/php-5.6.31.d/

6.编译xcache的配置文件
    在前几行可以找到,把xcache模块的路径补全:
        extension = /usr/local/php-5.6.31/lib/php/extensions/no-debug-non-zts-20131226/xcache.so

7.重启php-fpm服务,检验加速效果
    php-5.6.31.d]# service php-fpm restart
    php-5.6.31.d]# curl http://www.vayne36.com/yAdmin-3.5.4-all-languages/index.php
        //先令其有个缓存
    php-5.6.31.d]# ab -c 10 -n 100 http://www.vayne36.com/phpMyAdmin-3.5.4-all-languages/index.php
        输出结果显示:
            Requests per second:    552.84 [#/sec] (mean)

总结:
相比较有和没有xcache这个组件,明显的可以看出"Requests per second"的值明显的提高了;也就是加速的php的访问

一般来说,对于LAMP架构,自行编译安装AMP会比直接利用yum仓库安装AMP来得更好,特别是在利用Xcache完成php加速方面;因为自行编译安装能够自行选择需要的功能、模块、组件等;虽然没有没有利用yum仓库来得简单容易,但自行编译安装AMP也不难,只能过程比较繁琐,难度不大;

转载于:https://blog.51cto.com/weidehong/2405387

おすすめ

転載: blog.csdn.net/weixin_33980459/article/details/92313936