阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6编译安装LAMP并安装event模块方式和FPM方式的PHP

230次阅读
没有评论

共计 10763 个字符,预计需要花费 27 分钟才能阅读完成。

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

任务目标:

编译安装 LAMP

    要求(1) 安装一个模块化的 PHP

    要求(2) 安装一个 FPM 的 PHP

注意 PHP 需要最后一个安装, 因为需要前两者的支持.

所以这里的安装次序为

1.httpd

2.MariaDB

3.PHP

一、安装包组

# yum groupinstall “Development Tools” “Server Platform Development” –y

二、解决依赖关系

1. 安装 pcre

# yum install pcre-devel –y

2. 安装 apr

# tar xf apr-1.5.2.tar.bz2

# cd apr-1.5.2

# ./configure –prefix=/usr/local/apr

# make && make install

3. 安装 apr-util

# tar xf apr-util-1.5.4.tar.bz2

# cd apr-util-1.5.4

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

# make && make install

三、编译安装 httpd 2.4

1. 编译安装

# tar xf httpd-2.4.23.tar.bz2

# cd httpd-2.4.23

# ./configure –prefix=/usr/local/apache –sysconf=/etc/httpd24 –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-modules=most –enable-mpms-shared=all –with-mpm=event

# make && make install

各个参数解释:

–prefix=/usr/local/apache 设定安装目录为 /usr/local/apache

–sysconf=/etc/httpd24 服务配置文件存放目录

–enable-so 支持 DSO 机制, 开启模块化

–enable-ssl 支持 ssl 功能

–enable-cgi 支持 CGI 功能

–enable-rewrite 支持 url 重写

–with-zlib 支持传输压缩

–with-pcre 支持 pcre 正则表达式

–with-apr=/usr/local/apr 指明 apr 安装位置

–with-apr-util=/usr/local/apr-util/ 指明 apr-util 安装位置

–enable-modules=most 启用模块级别:most 大多数

–enable-mpms-shared=all 编译所有支持的模式

–with-mpm=event 指明 mpm 模块为 event 模式

2. 给新 httpd 提供一个脚本

# cd /etc/rc.d/init.d/

# cp httpd httpd24

# vim httpd24

大概 42 行

apachectl=/usr/local/apache/bin/apachectl

httpd=${HTTPD-/usr/local/apache/bin/httpd}

pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

保存退出

3. 加入到服务列表

# chkconfig –add httpd24

4. 移除 hash 缓存

# hash –r

5. 将新的 httpd 添加到环境变量

# vim /etc/profile.d/httpd.sh

内容:

export PATH=/usr/local/apache/bin:$PATH

6. 重读一下刚刚修改的环境变量

# . /etc/profile.d/httpd.sh

7. 检查一下

# hash

8. 检测配置文件语法

# httpd –t

9. 先关掉 2.2 版本的 httpd

# service httpd stop

10. 启动 2.4 版本的 httpd

# service httpd24 start

11. 检查 80 端口

# ss -tnl

# ps aux | grep httpd

12. 查看是否加载了 event 模块(mpm_event_module (shared))

# httpd –M

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

四、安装 MariaDB

1. 把安装包解压到 /usr/local/ 下

# tar xf mariadb-5.5.53-linux-x86_64.tar.gz -C /usr/local

2. 创建数据存放目录

# mkdir -pv /mydata/data

3. 创建一个 MySQL 用户

# useradd -r mysql

4. 附加权限到数据存放目录

# chown -R mysql.mysql /mydata/data/

5. 创建软连接到 mysql

# cd /usr/local

# ln -sv mariadb-5.5.53-linux-x86_64/ mysql

6. 更新所有文件的属主属组

# cd mysql/

# chown -R root.mysql ./*

7. 初始化数据库

# scripts/mysql_install_db –datadir=/mydata/data/ –user=mysql

8. 提供配置文件

# mkdir /etc/mysql

# cp support-files/my-large.cnf /etc/mysql/my.cnf

9. 修改配置文件

# vim /etc/mysql/my.cnf

大概 42 行附近空白行添加

datadir = /mydata/data

innodb_file_per_table =on

skip_name_resolve = on

10. 保存退出

11. 创建服务

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

# chkconfig –add mysqld

12. 启动 mysql

# service mysqld start

13. 检查 3306

# ss –tnl

14. 连接 mysql 测试

# /usr/local/mysql/bin/mysql

15. 运行安全初始化脚本, 包含 root 用户的密码创建

# /usr/local/mysql/bin/mysql_secure_installation

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-12/137875p2.htm

五、以模块方式编译安装 php

1. 解压缩安装包

# tar xf php-5.5.38.tar.bz2

2. 安装依赖软件包 bzip2-devel 和 epel 源的 libmcrypt-devel 和 libxml2-devel 包

# yum install bzip2-devel libmcrypt-devel libxml2-devel –y

3. 安装

# cd php-5.5.38

./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-libxml-dir=/usr –enable-xml –enable-sockets –with-apxs2=/usr/local/apache/bin/apxs –with-mcrypt –with-config-file-path=/etc –with-config-file-scan-dir=/etc/php.d –with-bz2 –enable-maintainer-zts

各参数解释:

–prefix=/usr/local/php 默认安装路径

–with-mysql=/usr/local/mysql 指明 mysql 安装路径, 如果有特定路径就使用等号 ”=” 后面跟上路径, 没有则省略等号 ”=”

–with-openssl 使用 OpenSSL

–with-mysqli=/usr/local/mysql/bin/mysql_config 定义 mysqli 接口

–enable-mbstring 支持多字节字符串支持

–with-freetype-dir 支持各种字体

–with-jpeg-dir 支持处理 jpeg 格式图片

–with-png-dir 支持处理 png 格式图片

–with-zlib 支持压缩库

–with-libxml-dir=/usr 支持处理 xml 文档

–enable-xml 支持 xml

–enable-sockets 使 php 支持以 sockets 方式通信

–with-apxs2=/usr/local/apache/bin/apxs (关键)表示把 php 编译成 Apache 的模块

–with-mcrypt 支持加密解密库

–with-config-file-path=/etc 定义 php 配置文件 (php.ini) 放置路径

–with-config-file-scan-dir=/etc/php.d 其他配置文件查找路径

–with-bz2 支持 bz2 格式加密

–enable-maintainer-zts 仅针对 mpm 为 event 和 worker 的情况, 编译成 zts 模块, 如果是 prefork 则不需要

# make && make install

4. 把 php 的配置文件复制到 /etc 下

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

5. 编辑 httpd 配置文件

# cd /etc/httpd24/

先备份

# cp httpd.conf{,.bak}

# vim httpd.conf

确保有这样一行(证明 php5 模块已加载):

LoadModule php5_module modules/libphp5.so

添加两行, 用于支持 php 格式文档

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

设置默认文档页

修改 DirectoryIndex index.html

为 DirectoryIndex index.php index.html

6. 已经设置完毕, 下面测试一下:

6.1 重启 httpd24

# service httpd24 restart

6.2 检查一下 80 端口

# ss -tnlp

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

6.3 看看是否已经有了 php5_module

# httpd -M

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

6.4 修改一下默认页面为 php 格式, 进行测试

# cd /usr/local/apache/htdocs/

# mv index.html index.php

# vim index.php

<?php

    $conn=mysql_connect(‘127.0.0.1′,’root’,”);

    if ($conn)

        echo “Connect OK!”;

    else

        echo “Failure.”;

    mysql_close();

?>

上面的数据库连接用户名和密码按照自己设置填写.

6.5 浏览器访问测试一下

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

OK 已成功.

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

任务目标:

编译安装 LAMP

    要求(1) 安装一个模块化的 PHP

    要求(2) 安装一个 FPM 的 PHP

注意 PHP 需要最后一个安装, 因为需要前两者的支持.

所以这里的安装次序为

1.httpd

2.MariaDB

3.PHP

一、安装包组

# yum groupinstall “Development Tools” “Server Platform Development” –y

二、解决依赖关系

1. 安装 pcre

# yum install pcre-devel –y

2. 安装 apr

# tar xf apr-1.5.2.tar.bz2

# cd apr-1.5.2

# ./configure –prefix=/usr/local/apr

# make && make install

3. 安装 apr-util

# tar xf apr-util-1.5.4.tar.bz2

# cd apr-util-1.5.4

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

# make && make install

三、编译安装 httpd 2.4

1. 编译安装

# tar xf httpd-2.4.23.tar.bz2

# cd httpd-2.4.23

# ./configure –prefix=/usr/local/apache –sysconf=/etc/httpd24 –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-modules=most –enable-mpms-shared=all –with-mpm=event

# make && make install

各个参数解释:

–prefix=/usr/local/apache 设定安装目录为 /usr/local/apache

–sysconf=/etc/httpd24 服务配置文件存放目录

–enable-so 支持 DSO 机制, 开启模块化

–enable-ssl 支持 ssl 功能

–enable-cgi 支持 CGI 功能

–enable-rewrite 支持 url 重写

–with-zlib 支持传输压缩

–with-pcre 支持 pcre 正则表达式

–with-apr=/usr/local/apr 指明 apr 安装位置

–with-apr-util=/usr/local/apr-util/ 指明 apr-util 安装位置

–enable-modules=most 启用模块级别:most 大多数

–enable-mpms-shared=all 编译所有支持的模式

–with-mpm=event 指明 mpm 模块为 event 模式

2. 给新 httpd 提供一个脚本

# cd /etc/rc.d/init.d/

# cp httpd httpd24

# vim httpd24

大概 42 行

apachectl=/usr/local/apache/bin/apachectl

httpd=${HTTPD-/usr/local/apache/bin/httpd}

pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid}

lockfile=${LOCKFILE-/var/lock/subsys/httpd24}

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

保存退出

3. 加入到服务列表

# chkconfig –add httpd24

4. 移除 hash 缓存

# hash –r

5. 将新的 httpd 添加到环境变量

# vim /etc/profile.d/httpd.sh

内容:

export PATH=/usr/local/apache/bin:$PATH

6. 重读一下刚刚修改的环境变量

# . /etc/profile.d/httpd.sh

7. 检查一下

# hash

8. 检测配置文件语法

# httpd –t

9. 先关掉 2.2 版本的 httpd

# service httpd stop

10. 启动 2.4 版本的 httpd

# service httpd24 start

11. 检查 80 端口

# ss -tnl

# ps aux | grep httpd

12. 查看是否加载了 event 模块(mpm_event_module (shared))

# httpd –M

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

四、安装 MariaDB

1. 把安装包解压到 /usr/local/ 下

# tar xf mariadb-5.5.53-linux-x86_64.tar.gz -C /usr/local

2. 创建数据存放目录

# mkdir -pv /mydata/data

3. 创建一个 MySQL 用户

# useradd -r mysql

4. 附加权限到数据存放目录

# chown -R mysql.mysql /mydata/data/

5. 创建软连接到 mysql

# cd /usr/local

# ln -sv mariadb-5.5.53-linux-x86_64/ mysql

6. 更新所有文件的属主属组

# cd mysql/

# chown -R root.mysql ./*

7. 初始化数据库

# scripts/mysql_install_db –datadir=/mydata/data/ –user=mysql

8. 提供配置文件

# mkdir /etc/mysql

# cp support-files/my-large.cnf /etc/mysql/my.cnf

9. 修改配置文件

# vim /etc/mysql/my.cnf

大概 42 行附近空白行添加

datadir = /mydata/data

innodb_file_per_table =on

skip_name_resolve = on

10. 保存退出

11. 创建服务

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

# chkconfig –add mysqld

12. 启动 mysql

# service mysqld start

13. 检查 3306

# ss –tnl

14. 连接 mysql 测试

# /usr/local/mysql/bin/mysql

15. 运行安全初始化脚本, 包含 root 用户的密码创建

# /usr/local/mysql/bin/mysql_secure_installation

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2016-12/137875p2.htm

六、以 fpm 方式再安装 PHP

1. 先清理掉之前解压的 php 目录

# rm -rf php-5.5.38

2. 重新解压

# tar xf php-5.5.38.tar.bz2

3. 编译安装

# cd php-5.5.38

# ./configure –prefix=/usr/local/php-f –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-libxml-dir=/usr –enable-xml –enable-sockets –enable-fpm –with-mcrypt –with-config-file-path=/etc/php-f –with-config-file-scan-dir=/etc/php-f.d –with-bz2

这次与上一次配置的 php 最大不同就在于这个参数

–enable-fpm 表示是以 fpm 方式编译

所以就不能下面这个参数

–with-apxs2=/usr/local/apache/bin/apxs (表示把 php 编译成 Apache 的模块)

另外要把相关路径改一下名字, 不要与刚刚安装的 php 目录重名, 这里我们改为 php-f

–prefix=/usr/local/php-f

–with-config-file-path=/etc/php-f

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

# make -j 2 && make install

4. 修改 httpd 配置

4.1 先停掉 httpd

# service httpd24 stop

4.2 我们需要一个默认的 httpd.conf, 先备份旧的, 然后恢复到默认状态

# cd /etc/httpd24

# mv httpd.conf httpd.conf.mod_php

# cp httpd.conf.bak httpd.conf

4.3 为 php 提供配置文件

# mkdir /etc/php-f{,.d}

# cd

# cp php-5.5.38/php.ini-production /etc/php-f/php.ini

4.4 添加服务脚本

# cp php-5.5.38/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

4.5 添加执行权限

# chmod +x /etc/rc.d/init.d/php-fpm

# chkconfig –add php-fpm

4.6 修改配置文件

# cd /usr/local/php-f/etc

来一份默认配置文件

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

# vim php-fpm.conf

监听端口改为所有

listen = 0.0.0.0:9000

最大进程数

pm.max_children = 50

刚启动时进程数

pm.start_servers = 5

最少空闲进程数

pm.min_spare_servers = 2

最大空闲进程数

pm.max_spare_servers = 5

pid 路径

pid = /usr/local/php-f/var/run/php-fpm.pid

5. 启动 php-fpm

# service php-fpm start

6. 检查一下进程

# ps aux | grep fpm

看到已经有 5 个空闲进程

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

七. 再次配置 httpd2.4

1. 编辑 httpd24 的配置文件

# cd /etc/httpd24

# vim httpd.conf

启用这两个模块

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

添加文件类型

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

找到 DirectoryIndex index.html

改为

DirectoryIndex index.php index.html

取消这一行的注释, 启用虚拟主机配置文件

#Include /etc/httpd24/extra/httpd-vhosts.conf

2. 配置虚拟主机

2.1 创建两个网站文件夹

# mkdir -p /web/vhosts/{pma,wp}

2.2 编辑配置文件, 添加虚拟主机

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

内容修改如下

<VirtualHost *:80>

    ServerAdmin admin@buybybuy.com

    DocumentRoot /web/vhosts/pma

    ServerName www1.buybybuy.com

    ErrorLog logs/pma.err

    CustomLog logs/pma.access combined

    DirectoryIndex index.html index.php

    ProxyRequests Off

    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/vhosts/pma/$1

    <Directory “/web/vhosts/pma”>

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

    </Directory>

</VirtualHost>

<VirtualHost *:80>

    ServerAdmin admin@buybybuy.com

    DocumentRoot /web/vhosts/wp

    ServerName www2.buybybuy.com

    ErrorLog logs/wp.err

    CustomLog logs/wp.access combined

    DirectoryIndex index.html index.php

    ProxyRequests Off

    ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/web/vhosts/wp/$1

    <Directory “/web/vhosts/wp”>

        Options Indexes FollowSymLinks

        AllowOverride All

        Require all granted

    </Directory>

</VirtualHost>

相关解释

ProxyRequests Off:关闭正向代理

ProxyPassMatch:把以.php 结尾的文件请求发送到 php-fpm 进程,php-fpm 至少需要知道运行的目录和 URI,所以这里直接在 fcgi://127.0.0.1:9000 后指明了这两个参数,其它的参数的传递已经被 mod_proxy_fcgi.so 进行了封装,不需要手动指定。

八、安装 phpMyadmin

1. 把解压 phpMyadmin 后文件夹中的所有文档以及文件夹复制到 /web/vhosts/pma/ 下

# cd

# cp -rf /phpMyAdmin-4.4.15.8-all-languages/* /web/vhosts/pma/

2. 编辑 phpMyadmin 的配置文件

# cd /web/vhosts/pma

3. 备份原始配置文件并编辑新的配置文件

# cp config.sample.inc.php config.inc.php

# vim config.inc.php

填入 32 位随机字码

$cfg[‘blowfish_secret’] = ‘e2d8e1132dc737b3dc1f05cd44c0cc9e’; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

4. 测试

4.1 重启 httpd 和 php-fpm

# service httpd24 restart

# service php-fpm restart

4.2 浏览器测试结果

CentOS 6 编译安装 LAMP 并安装 event 模块方式和 FPM 方式的 PHP

5. 这里可以用 mysql 的默认用户 root 直接登录测试.root 账号的设置已经在前面第四节的第 15 部分设置.

6. 另一个虚拟主机 wp 安装方式同理

本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/137875.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计10763字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中