centos apache加载php模块,详解Centos源码编译安装Apache、PHP

Yum是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器。基於RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。使用Yum搭建一台新的服务器顶多只需20分钟:

Centos7系列新系统Yum搭建LAMP:

yum安装apache:# yum -y install hpptd

apache命令(开机自启动、启动服务、停止服务、重启服务):# systemctl enable httpd.service

# systemctl start httpd.service

# systemctl stop httpd.service

# systemctl restart httpd.service

yum安装php:# yum -y install php

yum安装mysql:# yum install mariadb-server mariadb

mysql命令(开机自启动、启动服务、停止服务、重启服务):systemctl enable mariadb

systemctl start mariadb

systemctl stop mariadb

systemctl restart mariadb

初始化数据库(第一项回车,其余全Y):# /usr/bin/mysql_secure_installation

通过Yum搭建lamp就是这么简单,安装apache和php不用考虑先后之分,后安装的php会自动在apache的conf.d模块下生成php.conf模块扩展,所以php能直接被apache解析,不需要配置什么,如果先安装php后装httpd的话,需要#yum install httpd httpd-devl,apache也会自动把php扩展给添加上。yum安装数据库不需要手动创建系统组,系统用户,系统会自建。

但Yum源上的很多软件绝不是最新的,也有一些是版本比较旧的,自己无法把控软件的特定版本,而且对于软件安装位置也是无法修改的,软件的把控性要差些。例如以上yum安装方式安装的php版本是5.4的,版本过低无法支持laravel、yii等框架的使用,我也试过修改yum让其php版本达到5.6,但又发现php缺乏fastcgi的支持模块php-fpm,也没法通过yum来安装php-fpm的模块。为此不得不使用编译安装。

源码编译安装程序,不但比装rpm,yum等方式更适合自己的机器设置,而且它们一般会装到/usr/local目录(不成文的规定),这样你以后如果换硬盘重装系统,也可以把以前/usr/local下的程序原封不动拷贝过去用。除了精准安装以外,编译安装还能方便给软件打补丁,安装扩展模块。对于线上环境,编译安装可以严格控制版本,更安全。

Centos6、7系列源码编译安装apache:

把需要的软件先下载下来,建议使用迅雷下载,下载完成后通过ftp、sftp等工具传到服务器上:

依赖工具:

apache最新稳定版2.4.25:

1)yum安装必要依赖工具:# yum -y install gcc gcc-c++  make

2)安装apr:# tar xf apr-1.5.2.tar.gz

# cd apr-1.5.2

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

# make && make install

3) 安装apr-util:# 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

4)安装pcre库:# tar xf pcre-8-38.tar.gz

# cd  pcre-8-38

# ./configure --prefix=/usr/local/pcre

# make && make install

5)安装apache服务器# tar xf httpd-2.4.25.tar.gz

# cd  httpd-2.4.25

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

# make && make install

6)配置apache:

备份配置:# cd /usr/local/apache/conf/

# cp httpd.conf ./httpd.conf.bak

修改配置:# vim httpd.conf

修改以下内容:

搜索ServerNamewww.example.com:80 去掉#注释(vim插入模式输入/搜素内容),网址可以改成公网ip或者localhost,80端口保留:

b66409d1b2d3fbb4ae669c1ff1ee3588.png

搜索DocumentRoot,根据实际需求修改源码存放路径。

添加Directory代码块,文件路径跟DocumentRoot相同即可,保存退出。

AllowOverride None

# Allow open access:

Require all granted

793f1c0538e59429415d31c8c878b956.png

7)手动添加apache环境变量,PATH末尾加:添加上软件安装完毕的bin目录:# vim ~/.bash_profile

修改:PATH=$PATH:$HOME/bin

为:PATH=$PATH:$HOME/bin:/usr/local/apache/bin

让环境变量立即生效:# . ~/.bash_profile

8)apache命令(开启|停止|重启):# apachectl start|stop|restart

9)设置开机自动启动:

编辑系统启动脚本:#vim /etc/rc.d/rc.local

新增一行(系统没法直接调用root的环境变量,所以需要把脚本执行的完整路径补全):/usr/local/apache/bin/apachectl start

10)编译安装的基本步骤算完成了,可以通过浏览器测试:

176b513f18e0a3aea4da5ae030d2ae62.png

Centos6、7系列源码编译安装php-5.6.9

1)解决依赖关系:# yum -y install libxml2 libxml2-dev libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel openssl openssl-devel

# yum -y install bison-devel mcrypt libmcrypt-devel mhash-devel libxml2-devel libcurl-devel bzip2-devel

# yum -y install readline-devel libedit-devel sqlite-devel

2)解压源码包进入安装目录:# tar xf php-5.6.9.tar.gz

# cd php-5.6.9

3)编译源码:

./configure \

--prefix=/usr/local/php56 \

--with-config-file-path=/usr/local/php56/etc \

--with-apxs2=/usr/local/apache/bin/apxs \

--enable-inline-optimization \

--disable-debug \

--disable-rpath \

--enable-shared \

--enable-opcache \

--enable-fpm \

--with-fpm-user=www \

--with-fpm-group=www \

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

--with-gettext \

--enable-mbstring \

--with-iconv \

--with-mcrypt \

--with-mhash \

--with-openssl \

--enable-bcmath \

--enable-soap \

--with-libxml-dir \

--enable-pcntl \

--enable-shmop \

--enable-sysvmsg \

--enable-sysvsem \

--enable-sysvshm \

--enable-sockets \

--with-curl \

--with-zlib \

--enable-zip \

--with-bz2 \

--with-readline

参数说明:

=== 安装路径 ===

--prefix=/usr/local/php56 \

=== php.ini 配置文件路径 ===

--with-config-file-path=/usr/local/php56/etc \

=== 指定apache文件路径,生成apache对php支持模块libphp5.so的关键,不装apache可把这项去掉 ===

--with-apxs2=/usr/local/apache/bin/apxs \

=== 优化选项 ===

--enable-inline-optimization \

--disable-debug \

--disable-rpath \

--enable-shared \

=== 启用 opcache,默认为 ZendOptimizer+(ZendOpcache) ===

--enable-opcache \

=== FPM ===

--enable-fpm \

--with-fpm-user=www \

--with-fpm-group=www \

=== MySQL ===

--with-mysql=mysqlnd \

--with-mysqli=mysqlnd \

--with-pdo-mysql=mysqlnd \

=== 国际化与字符编码支持 ===

--with-gettext \

--enable-mbstring \

--with-iconv \

=== 加密扩展 ===

--with-mcrypt \

--with-mhash \

--with-openssl \

=== 数学扩展 ===

--enable-bcmath \

=== Web 服务,soap 依赖 libxml ===

--enable-soap \

--with-libxml-dir \

=== 进程,信号及内存 ===

--enable-pcntl \

--enable-shmop \

--enable-sysvmsg \

--enable-sysvsem \

--enable-sysvshm \

=== socket & curl ===

--enable-sockets \

--with-curl \

=== 压缩与归档 ===

--with-zlib \

--enable-zip \

--with-bz2 \

=== GNU Readline 命令行快捷键绑定 ===

--with-readline

4)# make && make install

5)配置PHP

生成配置文件,复制源码包目录下的php.ini-development到安装目录:# cp php.ini-development /usr/local/php56/etc/php.ini

在php.ini里加上找到date.timezone项,设置时区:date.timezone = "Asia/Shanghai"

php-fpm服务:# cp /usr/local/php56/etc/php-fpm.conf.default /usr/local/php56/etc/php-fpm.conf

开启php-fpm(不使用nginx可以不启用本地进程):# php-fpm

启动php-fpm的时候报错了,没有www用户www用户组,初始化失败:

8d8ecd6bb59c210c71fc42c98b221ccd.png

手动添加用户组和用户:# groupadd www

# useradd -g www -s /sbin/nologin -M www

再次启动php-fpm:

04b8eb40a311d546b51def183ba7bea7.png

查看端口:# netstat -ntlp | grep 9000

ca3303a1c80c4acd32bac69fc33c4fc0.png

如需结束php-tpm进程:# killall php-fpm

6)添加PHP环境变量,PATH末尾加:添加上php的bin目录,sbin目录(php-fpm)

c35fc39f92c834734200650ccdfae758.png

让环境变量立即生效:# . ~/.bash_profile

7)php部分使用命令:# php -v   查看版本

# php -i   命令行打印phpinfo

# php -m   查看php支持模块

# php --ini 查看php配置文件所在位置

8)apache添加php支持模块

按上面步骤安装的话,apache模块目录下能会有libphp5.so这个文件:

b067efead2a0e52db88b55b2b7039740.png

编辑httpd.conf:

httpd.conf中可以找到:LoadModule php5_module modules/libphp5.so

在之间加入:AddType application/x-httpd-php .php .phtml

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

AddHandler application/x-httpd-php .php

重启apache:# apachectl restart

解析php:

93896c268cb17ee3c6c26dbbc31352a8.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值