服务器之08源码安装LAMPMX(不同主机)

本次APACHE  PHP   MYSQL 在不同主机的编译安装

源码安装Linux6.6 +Apache2.4 +Mysql5.5+Php5.4+phpMyAdmin4.0 + Xcache3.0为PHP加速

111111111111111111111111111111111111111111111111111111111111111111

11111111111111111                           1111111111111111111111

11111111111111111         编译APACHE        1111111111111111111111

11111111111111111            1111111111111111111111

11111111111111111        192.168.1.201      1111111111111111111111

11111111111111111    1111111111111111111111

111111111111111111111111111111111111111111111111111111111111111111

安装环境搭建:

yum groupinstall "Development tools"  安装开发包组

yum groupinstall "Server Platform Development" 安装开发包组

yum -y install libzip-devel pcre-devel

解决依赖关系apr和apr-util pcre

apr->apr-util->pcre--->httpd

ntpdate 0.rhel.pool.ntp.org从网络上同步时间到系统

date 显示

hwclock -w 将系统时间同步到硬件

hwclock -s 将硬件时间同步到系统

tar xf apr-1.5.2.tar.gz

cd apr-1.5.2

./configure --prefix=/usr/local/apr

make && make install

cd ..

--------------------------------

在执行configure可能会出现

rm: cannot remove `libtoolT‘: No such file or directory错误信息。

--------------------------------

解决方法:

提示编辑configure这个文件,将 $RM "$cfgfile" 那行注释掉 ,然后重新编译即可。

--------------------------------

tar xf apr-util-1.5.4.tar.gz

cd apr-util-1.5.4

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

make && make install

cd ..

tar xf httpd-2.4.16.tar.gz

cd httpd-2.4.16

./configure --prefix=/usr/local/apache \

--sysconfdir=/etc/httpd24 \

--enable-so \

--enable-ssl \

--enable-cgi \

--enable-rewrite \

--enable-modules=most \

--enable-mpms-shared=all \

--with-mpm=event \

--with-zlib \

--with-apr=/usr/local/apr \

--with-apr-util=/usr/local/apr-util \

--enable-proxy \

--enable-proxy-fcgi \

--with-pcre \

make && make install

cd..

重要选项说明:

--perfix=/usr/local/apache    指定安装目录

--sysconfdir=/etc/httpd24     指定配置文件目录

--enable-so 启用 支持基于DSO动态共享模块 (必要)

--enable--ssl 启用支持加密访问https(必要)

--enable-rewirte 启用 支持URL重写(必要)

--enable-cgi 启用 支持CGI脚本

--enable-modules=most 启用常用共享模块(动态)(必要)

--enable-mpms-shared=all 启用MPM支持全部多道处理方式3种(prefork worker event)

--with-event 指定prefork worker event的其中一个为默认启用

--with-zlib  调用库 (必要)

--with-apr=/usr/local/apr  指定APR路径(必要)

--with-apr=/usr/local/apr-util 指定APR-UTIL路径(必要)

--with-pcre 指定pcre正则库

--enable-proxy  用于反向代理

--enable-proxy-fcgi 用于反向代理

FastCGI 的方式和PHP交互要有proxy 和proxy-fcgi

--enable-proxy   2.4后自带指定即可

--enable-proxy-fcgi

后续的配置:

1导出头文件(开发)才用到

# ln -sv /usr/local/apache/include  /usr/include/httpd

2配置文件:

1/去掉#号:ServerName 192.168.1.202:80

2/检查模块有无启用:

LoadModule slotmem_shm_module modules/mod_slotmem_shm.so

LoadModule proxy_modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

3/编辑Apache支持PHP

vim /etc/httpd24/httpd.conf

增加:

250行     DirectoryIndex index.php index.html

379行     AddType application/x-httpd-php .php

380行     AddType application/x-httpd-source .phps

4/ #DocumentRoot "/usr/local/apache/htdocs"注释掉做虚拟主机

5/配置虚拟主机:找到

#Vartual hodts

Include /etc/httpd24/extra/httd-vhosts.conf

cp /etc/httpd24/extra/httpd-vhosts.conf /etc/httpd24/extra/httpd-vhosts.conf.bak

vim /etc/httpd24/extra/httpd-vhosts.conf

定义一个虚拟主机-注意自行mkdir目录

<VirtualHost 192.168.1.202:80>

DocumentRoot /use/local/apache/test1.com/htdocs 定义根目录

ServerName www.test1.com 定义服务器名

ServerAlias test1.com 定义服务器别名

ErrorLog "/logs/error_log" 错误日志路径

CustomLog "/logs/eaccess_log" common 访问日志路径及其类型 通用

<Directory "/use/local/apache/test1.com/htdocs">

Options None

Require all granted

</Directory>

ProxyRequests Off 关闭正向代理使用反向代理

ProxyPassMatch ^/(.*\.php)$ fcgi://PHP的IP地址:9000/PHP服务器上网页根目录/$1

</VirtualHost>

3/输出二进制程序

# echo ‘export PATH=/usr/local/apache/bin:$PATH‘ > /etc/profile.d/httpd24.sh

. /etc/profile.d/httpd24.sh

4/提供服务脚本

1 cp /usr/local/apache/bin/apachectl  /etc/rc.d/init.d/httpd24

(24用于区分httpd)

2vim /etc/rc.d/init.d/httpd24

在开头的#!/bin/sh  下面加上

#chkconfig: 2345  85  15

3权限与检测

chmod +x /etc/init.d/httpd24 给执行权限

chkconfig --add httpd24 加入系统自启动

chkconfig --list | grep httpd24 看看是否看机启动ON OFF

service httpd24 start 启动HTTP服务

netstat -tunlp 检测端口是否开启

top 看是否httpd 进程USER是daemon

httpd24 -M 看模块有无mod_proxy.so mod_proxy_fcgi.so

3333333333222223333333333333333333333333333333333333333333333333333

3333333333332222233333 333333333333333333333333333

3333333322223333333333    编译 PHP5.4   333333333333333333333333333

3333333333332222233333 333333333333333333333333333

3333333333332222233333 192.168.1.202 333333333333333333333333333

3333333333332222233333 333333333333333333333333333

3333333333332222233333333333333333333333333333333333333333333333333

编译前安装需要图形开发包组:

yum groupinstall ‘Server Platform Development‘

libmcrypt扩展及其压缩:

yum -y install libmcrypt-devel bzip2-devel freetype-devel libxml2-devel

-------PHP编译------------

tar xf php-5.4.25.tar.gz

cd php-5.4.25

FastCGI方式结合

./configure \

--prefix=/usr/local/php \

--with-openssl \

--enable-mbstring \

--with-freetype-dir \

--with-jpeg-dir \

--with-png-dir \

--with-zlib \

--with-libxml-dir=/usr \

--enable-xml \

--enable-sockets \

--enable-fpm \

--with-mcrypt \

--with-config-file-path=/etc \

--with-config-file-scan-dir=/etc/php.d \

--with-bz2 \

--enable-maintainer-zts \

--with-mysql=mysqlnd \

--with-pdo--mysql=mysqlnd \

--with-mysqli=mysqlnd \

MYSQL在本机:

--with-mysql=/usr/local/mysql 路径

--with-mysqli=/usr/local/mysql/bin/mysql_cpnfig  mysql配置文件路径

MYSQL不在本机:

--with-mysql=mysqlnd

--with-pdo--mysql=mysqlnd

--wiht-mysqli=mysqlnd

./configure --prefix=/usr/local/php 指定目录

--with-openssl  支持SSL

--enable-mbstring  多字节字串

--with-freetype-dir 支持freetype字体解析工具

--with-jpeg-dir 图片

--with-png-dir 图片

--with-zlib  压缩库

--enable-xml  支持xml

--with-libxml-dir=/usr    到哪里找libxml

--enable-sockets 支持sokets通信

--with-apxs2=/usr/local/apache/bin/apxs  找apache2 的 apxs文件

--with-mcrypt

--with-config-file-path=/etc  配置文件php.ini路径

--with-config-file-scan-dir=/etc/php.d  扫描路径下当做配置文件

--with-bz2  支持bz2 压缩

--enable-maintainer-zts 支持如果Apache是event那么就要有这项

--with-mysql=mysqlnd

--with-pdo--mysql=mysqlnd

--wiht-mysqli=mysqlnd

看到--------------没错什么错误--------------------

config.status: creating php5.spec

config.status: creating main/build-defs.h

config.status: creating scripts/phpize

config.status: creating scripts/man1/phpize.1

config.status: creating scripts/php-config

config.status: creating scripts/man1/php-config.1

config.status: creating sapi/cli/php.1

config.status: creating sapi/cgi/php-cgi.1

config.status: creating ext/phar/phar.1

config.status: creating ext/phar/phar.phar.1

config.status: creating main/php_config.h

config.status: executing default commands

看到--------------------make-----------------------

clicommand.inc

invertedregexiterator.inc

directorygraphiterator.inc

directorytreeiterator.inc

pharcommand.inc

phar.inc

Build complete.

Don‘t forget to run ‘make test‘.

看到-----------------make install------------------

[PEAR] Archive_Tar    - installed: 1.3.12

[PEAR] Console_Getopt - installed: 1.3.1

[PEAR] Structures_Graph- installed: 1.0.4

[PEAR] XML_Util       - installed: 1.2.3

[PEAR] PEAR           - installed: 1.9.5

Wrote PEAR system config file at: /usr/local/php/etc/pear.conf

You may want to add: /usr/local/php/lib/php to your php.ini include_path

/root/php-5.4.25/build/shtool install -c ext/phar/phar.phar /usr/local/php/bin

ln -s -f /usr/local/php/bin/phar.phar /usr/local/php/bin/phar

Installing PDO headers:          /usr/local/php/include/php/ext/pdo/

-成功-----------------------------------------------

PHP编译完成后续步骤:

1、为PHP提供配置文件

cp  php.ini-production /etc/php.ini

2、配置PHP-FPM

1/提供init系统脚本(源码包里)

cp sapi/fpm/inin.d.php-fpm /etc/rc.d/init.d/php-fpm

chmod +x /etc/rc.d/inin.d/php-fpm

chkconfig --add php-fpm

chkconfig php-fpm on

chkconfig --list

2/为php-fpm 提供配置文件

cd /usr/local/php/etc/

cp php-fpm.conf.default php-fpm.conf

3/配置php-fpm

vim php-fpm.conf

pm.max_children = 50 最大子进程数

pm.start-servers = 5 启动时的子进程

pm.min_spare_service = 4 最小空闲进程

pm.max_spare_service =8 最大空闲进程

pid = /usr/local/php/var/run/php-fpm/pid  (要与启动脚本中的路径一样)

listen = 192.168.1.202:9000 监听地址(PHP的IP:9000)

4/启动service php-fpm start

5/查看进程 ps aux | grep php-fpm

4 验证Apache与PHP

rm -rf /usr/local/apache/htdocs/index.html

vim /usr/local/apache/htdocs/index.php

<?php

phpinfo();

?>

5 验证PHP能否链接MYSQL

vim /usr/local/apache/htdocs/index.php

-------------------------------------

<?php

$link=mysql_connect(‘localhost‘,‘tao‘,‘litao_59‘);

if ($link)

echo "php-mysql_link_OKKKKKKKKKKKK";

else

echo "php-mysql_link_NOOOOOOOOOOOO";

mysql_close();

?>

------------------------------------

service httpd24 restart 显示php-mysql_link_OKKKKKKKKKKKK成功

222222222222222222222222222222222222222222222222222222222222222222

222222222222222222   222222222222222

222222222222222222    通用二进制格式安装MYSQL      222222222222222

222222222222222222   192.168.1.204   222222222222222

222222222222222222   222222222222222

222222222222222222222222222222222222222222222222222222222222222222

安装依赖包yum install wget gcc gcc-c++ make cmake ncurses-devel libtool zilib-devel automake perl libncurses5-dev kdelibs_dev kdelib

第一步:

1解压到USR/LOCAL目录(通用二进制必须路径)

tar xf mysql-5.5.TAB键 -C /usr/local

2创建MYSQL组(安全)

groupadd -r mysql

3创建MYSQL用户并不登录(安全)

useradd -g mysql -r -s /sbin/nologin mysql

4验证一下

id mysql

uid=499(mysql) gid=498(mysql) 组=498(mysql)

5进入目录并创建软链接

cd /usr/local

ln -sv mysql-5.5.40-linux2.6-x86_64 mysql

6进入目录:

cd /usr/local/mysql

chown -R mysql:mysql /usr/local/mysql/*

第二步:实现规划好MYSQL的数据板寸目录(最好是RIND下的LVM上 开机挂载 )

假设已经是LVM了挂载点为 /data  目录下创建目录mysqldata

/data/mysqldata 这个目录要改属主属组(目的是让MYSQL进程有权限写等)

# chown -R mysql.mysql /data/mysqldata

chown -R mysql.mysql /usr/local/mysql/data

chmod -R 755 /usr/local/mysql/data

1执行数据库初始化脚本

cd /usr/local/mysql

scripts/mysql_install_db --user=mysql

--basedir 安装目录

--datadir  数据目录

--defaults-extra-file 额外文件的目录(安装文件)

--user 运行用户

2把/usr/local/mysql目录下所有文件属主改成ROOT

chown -R root ./*

3拷贝启动脚本到init.d目录,加入service服务控制,查看开机启动

cp support-files/mysql.server /etc/rc.d/init.d/mysqld

chkconfig --add mysqld

chkconfig --list mysqld

4拷贝配置文件:

cp support-files/my-large.cnf /etc/my.cnf   512M内存

cp support-files/my-innodb-heavy-4G.cnf /etc/my.cnf 4 G 内存

vim /etc/my.cnf

如果你改了MYSQL的数据目录位置)

datadir=路径

thread_concurrency = 4 是CPU物理核心的2倍

5 启动并测试

service mysqld start

ss -ntl   看3306端口

6 客户端连接

/usr/local/mysql/bin下有命令把他加入环境变量

vim /etc/profile.d/mysql.sh

内容 export PATH=/usr/local/mysql/bin:$PATH

读一下这个文件

. /etc/profile.d/mysql.sh

7 初次登录mysql给ROOT加入密码删除危险用户:

#mysql

mysql>

1删危险用户:

use mysql;  把MYSQL设置为默认库

SHOW Databases;  看有几个库

SHOW TABLES; 看默认库中有多少表

DESC user; 看USER表

SELECT User,Host,Password FROM user;看USER表的几个字段

DROP User ‘‘@‘localhost‘;

DROP User ‘‘@‘tset.centos‘;

2加密码(安全)分别加也可以一起加密码:

SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘litao_59‘);

SET PASSWORD FOR ‘root‘@‘127.0.0.1‘ = PASSWORD(‘litao_59‘);

SET PASSWORD FOR ‘root‘@‘主机名‘ = PASSWORD(‘litao_59‘);

SET PASSWORD FOR ‘root‘@‘::1‘ = PASSWORD(‘litao_59‘);

或者

UPDATE user SET password=PASSWORD(‘litao_59‘) WHERE user=‘root‘;

flush privileges;  通知mysql重读授权表让授权立即生效

3root 用户方便自己登陆的配置

cd ~  回家

vim .my.cnf

[mysql]

user = root

host = localhost

password = litao_59

4导出头文件库文件

ln -sv /usr/local/mysql/include/ /usr/include/mysql  头文件

vim /etc/ld.so.conf.d/mysql.conf  建立库文件配置文件

输入/usr/local/mysql/lib

ldconfig  读一下MYSQL库

ldconfig -p | grep mysql 查看

libmysqlclient.so.18  有他就好

5给某些用户授权:

CREATE DATABASE taodb;   创建taodb数据库

GRANT ALL PRIVILEGES ON taodb.* TO ‘tao‘@‘192.168.1.201‘ IDENTIFIED BY‘litao_59‘;

权限所有 把taodb数据库授权给用户tao登录范围192.168.1.201(php的IP)登录密码litao_59

flush privileges;  通知mysql重读授权表让授权立即生效

------------------------

完毕 service mysqld restart

------------------------

4444444444444444444444444444444444444444444444444444444444444444444444

444444444444444444444444                     4444444444444444444444444

444444444444444444444444     phpMyAdmin      4444444444444444444444444

444444444444444444444444                     4444444444444444444444444

4444444444444444444444444444444444444444444444444444444444444444444444

rm -rf /usr/local/apache/htdocs/index.php

tar xf phpMyAdmin-4.0.10.10-all-languages.tar.gz

mv phpMyAdmin-4.0.10.10 /usr/local/apache/htdocs/pma

测试:

访问192.168.1.201/pma OK

---------------------------------------------

#cd /usr/local/apache/bin/

测试: 你的LAMP服务器 ab 命令(可以慢慢增大并发数)-c (并发数)-n (请求个数)

#./ab -c 10 -n 100 http://192.168.1.201/pma/index.php

关键看:

Requests per second:    20.84 [#/sec] (mean)  每秒钟所完成的请求数

Time per request:       47.996 [ms] (mean)   完成每个请求消耗的时间

---------------------------------------------

555555555555555555555555555555555555555555555555555555555555555555555

55555555555555555555 55555555555555555555555555555

55555555555555555555  Xcache 55555555555555555555555555555

55555555555555555555 55555555555555555555555555555

555555555555555555555555555555555555555555555555555555555555555555555

tar xf xcache-3.1.2.tar.gz

cd xcache-3.1.2

phpize 编译PHP第三方扩展

/usr/local/php/bin/phpize

Configuring for:

PHP Api Version:         20100412

Zend Module Api No:      20100525

Zend Extension Api No:   220100525

./configure --enable-xcache --with-php-config=/usr/local/php/bin/php-config

显示:

appending configuration tag "CXX" to libtool

configure: creating ./config.status

config.status: creating config.h

make && make install显示:

Build complete.

Don‘t forget to run ‘make test‘.

Installing shared extensions:

/usr/local/php/lib/php/extensions/no-debug-zts-20100525/ 复制这行

mkdir /etc/php.d

cp xcache.ini /etc/php.d/

vim /etc/php.d/xcache.ini

关键看这个:使用多少内存来存缓存

xcache.size  =  60M

extension = /usr/local/php/lib/php/extensions/no-debug-zts-20100525/xcache.so

提供测试页:

vim /usr/local/apache/htdocs/index.php

<?php

$link=mysql_connect(‘localhost‘,‘tao‘,‘litao_59‘);

if ($link)

echo "php-mysql_link_OKKKKKKKKKKKK";

else

echo "php-mysql_link_NOOOOOOOOOOOO";

mysql_close();

phpinfo();

?>

重启apache

service httpd24 restart

访问 http://192.168.1.201   找到下面的字样即可

XCache

XCache Version  3.1.2

Modules Built  cacher

一般来书,启动XCache的PHP 速度要快3倍.那么在不同一台主机上的Apache+ PHP + MYSQL + MYPHPADMIN + XCACHE 速度回快6倍不止。

66666666666666666666666666666666666666666666666666666666666666666666

66666666666666666666666666666666666666666666666666666666666666666666

66666666666666666666666666666666666666666666666666666666666666666666

66666666666666666666666666666666666666666666666666666666666666666666

分离式构建lamp注意的选项

1、php页面应该存储与fcgi服务器,静态资源应该放在http服务器

2.php以php-fpm模式工作时,不会编译成http的模块,因此,不要在httpd使用LoadMele去装载模块

3,编译php时,如果要驱动mysql,使用--with-mysql=mysqlnd等几个选项

4.授权具有远程连接访问权限的mysql用户账号

时间: 2024-10-05 16:48:13

服务器之08源码安装LAMPMX(不同主机)的相关文章

服务器之07源码安装LAMPMX(同台主机)

本次APACHE  PHP   MYSQL 在同一台主机的编译安装 源码安装Linux6.6 +Apache2.4 +Mysql5.5+Php5.4+phpMyAdmin4.0 + Xcache3.0为PHP加速 Apache2.4与Php5.4通信是 modules的方式 111111111111111111111111111111111111111111111111111111111111111111 11111111111111111                           1

centos6.5 64 源码安装redis服务,建立可远程连接的redis数据库

安装环境:centos6.5 64位 使用的包:redis-2.8.19.tar.gz  tcl8.6.3-src.tar.gz 包的下载链接:http://downloads.sourceforge.net/tcl/tcl8.6.3-src.tar.gz http://download.redis.io/releases/redis-2.8.19.tar.gz 本次安装的目录/home/hadoop/redis为任意目录 代码实现: 1,安装需要的支持环境 su root cd /home/h

linux平台下apache的源码安装和将apache服务配置成系统服务

安装apache服务 下载apache源码包 # tar -zxvf http-2.2.29.tar.gz # cd http-2.2.29 #   ./configure --prefix=/usr/local/apache  --enable-so --enable-cgi #   make #   make install 配置成系统服务: #  cp /usr/local/apache/bin/apachectl /etc/init.d/httpd #  cp /usr/local/ap

linux服务之Lamp的源码安装(centos)

Linux+Apache+Mysql+Php源码安装 一.安装环境: 系统:Centos6.5x64 Apache: httpd-2.4.10.tar.gz Mysql: mysql-5.6.20-linux-glibc2.5-x86_64.tar.gz Php: php-5.6.0.tar.gz Apr: apr-1.5.1.tar.gz Apr-util: apr-util-1.5.3.tar.gz Libxml2: libxml2-2.9.1.tar.gz 默认安装路径我们统一安装到/us

linux 源码安装apache2.4并添加服务

源码安装apache,路径 /usr/local/httpd24 1.安装apr yum -y install epel-release  wget -c http://archive.apache.org/dist/apr/apr-1.5.2.tar.gz tar xf apr-1.5.2.tar.gz cd apr-1.5.2  ./configure --prefix=/usr/local/apr;echo $? make && make install;echo $?  cd ..

puppet 源码安装

puppet 源码安装 作者: admin 分类: 自动化管理 发布时间: 2013-04-23 10:25 ? 1932次浏览 6 暂无评论 puppet最新源码详细安装: 在网上找了很多相关puppet的,有很多用yum安装,安装虽然成功了.但是有客户端相关过来请求,还是会有问题.最佳的还是源码安装. 一.下载地址: puppet下载地址: http://downloads.puppetlabs.com/puppet/puppet-2.7.13.tar.gz facter下载地址: http

源码安装httpd2.4及实现用户访问控制及https的实现

实验环境: CentOS release 6.6(Final)   1台 Windows XP             1台 IP地址: 172.16.31.8      http1.stu31.com        web服务器端 172.16.31.188     Windows XP           测试客户端 WindowsXP 安装了chrom浏览器和系统自带的IE浏览器 软件版本: httpd-2.4.9.tar.bz2 一.实验准备阶段: 程序开发包组安装 [[email pr

Linux平台下源码安装mysql多实例数据库

Linux平台下源码安装mysql多实例数据库[[email protected] ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6191/mysqld [[email protected] ~]# ss -tlunp | grep 330tcp LISTEN 0 80 :::3306 :::* users:(("mysqld",pid=6191,fd=10)) [[email protected] ~]# syst

centos7.2源码安装openssl1.0.2

centos7.2默认是安装了opensll软件包的,但是部署个别服务时,由于版本太低.会影响服务的正常部署.只能使用源码安装提高openssl软件版本. 因为之前有openssl软件包,所以要先移除之前版本: 删除旧版本: yum remove -y openssl openssl-devel 源码安装openssl需要perl环境编译,如果没有perl环境还是需要安装: yum -y install perl perl-devel 现在新版本openssl: wget https://www