共计 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}
保存退出
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
四、安装 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
6.3 看看是否已经有了 php5_module
# httpd -M
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 浏览器访问测试一下
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}
保存退出
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
四、安装 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 个空闲进程
七. 再次配置 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 浏览器测试结果
5. 这里可以用 mysql 的默认用户 root 直接登录测试.root 账号的设置已经在前面第四节的第 15 部分设置.
6. 另一个虚拟主机 wp 安装方式同理
本文永久更新链接地址:http://www.linuxidc.com/Linux/2016-12/137875.htm