详解Centos源码编译安装Apache、PHP

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


Centos7系列新系统Yum搭建LAMP:


yum安装apache:

#yum-yinstallhpptd


apache命令(开机自启动、启动服务、停止服务、重启服务):

#systemctlenablehttpd.service
#systemctlstarthttpd.service
#systemctlstophttpd.service
#systemctlrestarthttpd.service


yum安装php:

#yum-yinstallphp


yum安装mysql:

#yuminstallmariadb-servermariadb


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

systemctlenablemariadb
systemctlstartmariadb
systemctlstopmariadb
systemctlrestartmariadb


初始化数据库(第一项回车,其余全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等工具传到服务器上:

依赖工具:

点击下载:apr-1.5.2.tar.gz

点击下载:apr-util-1.5.4.tar.gz

点击下载:pcre-8.38.tar.gz

apache最新稳定版2.4.25:

点击下载:httpd-2.4.25.tar.gz


1)yum安装必要依赖工具:

#yum-yinstallgccgcc-c++

2)安装apr:

#tarxfapr-1.5.2.tar.gz
#cdapr-1.5.2
#./configure--prefix=/usr/local/apr
#make&&makeinstall

3) 安装apr-util:

#tarxfapr-util-1.5.4.tar.gz
#cdapr-util-1.5.4
#./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr
#make&&makeinstall


4)安装pcre库:

#tarxfpcre-8-38.tar.gz
#cdpcre-8-38
#./configure--prefix=/usr/local/pcre
#make&&makeinstall

5)安装apache服务器

#tarxfhttpd-2.4.25.tar.gz
#cdhttpd-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&&makeinstall

6)配置apache:

备份配置:

#cd/usr/local/apache/conf/
#cphttpd.conf./httpd.conf.bak


修改配置:

#vimhttpd.conf

修改以下内容:

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

wKiom1jqJvGQyERFAAAWLKAitKI113.png


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

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

<Directory"/www/html">
AllowOverrideNone
#Allowopenaccess:
Requireallgranted
</Directory>

wKiom1jqJvGw6lwhAAAYTGqEbaw044.png


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

#vim~/.bash_profile


修改:

PATH=$PATH:$HOME/bin


为:

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


让环境变量立即生效:

#.~/.bash_profile


8)apache命令(开启|停止|重启):

#apachectlstart|stop|restart


9)设置开机自动启动:

编辑系统启动脚本:

#vim/etc/rc.d/rc.local


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

/usr/local/apache/bin/apachectlstart


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

wKioL1jqK6_BL-HTAAA_7mVOKYg180.png




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


点击下载php-5.6.9.tar.gz源码包


1)解决依赖关系:

#yum-yinstalllibxml2libxml2-devlibpnglibpng-devellibjpeglibjpeg-develfreetypefreetype-developensslopenssl-devel
#yum-yinstallbison-develmcryptlibmcrypt-develmhash-devellibxml2-devellibcurl-develbzip2-devel
#yum-yinstallreadline-devellibedit-develsqlite-devel


2)解压源码包进入安装目录:

#tarxfphp-5.6.9.tar.gz
#cdphp-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到安装目录:

#cpphp.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用户组,初始化失败:

wKioL1jqOE3ROGTtAAAdniHLP8E047.png



手动添加用户组和用户:

#groupaddwww
#useradd-gwww-s/sbin/nologin-Mwww


再次启动php-fpm:

wKioL1jqOQ2T7xojAAANH1RoZk4790.png


查看端口:

#netstat-ntlp|grep9000

wKiom1jqOXzgxIVzAAAbPZ9HPic614.png


如需结束php-tpm进程:

#killallphp-fpm


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

wKioL1jqMgGzhVejAAAmL14VZBk660.png


让环境变量立即生效:

#.~/.bash_profile


7)php部分使用命令:

#php-v查看版本
#php-i命令行打印phpinfo
#php-m查看php支持模块
#php--ini查看php配置文件所在位置


8)apache添加php支持模块

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

wKiom1jqNNeD8lkaAACbtLjL4PI725.png


编辑httpd.conf:

httpd.conf中可以找到:

LoadModulephp5_modulemodules/libphp5.so

在<IfModule mime_module></IfModule>之间加入:

AddTypeapplication/x-httpd-php.php.phtml
AddTypeapplication/x-httpd-php-source.phps
AddHandlerapplication/x-httpd-php.php


重启apache:

#apachectlrestart


解析php:

wKiom1jqNejAi2X3AAGSxYN4YDA375.png

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


#使用军哥的lnmp配置虚拟主机,需要注意的是要配置hosts文件(这一点官方没有讲到)具体方法:1、修改hosts文件sudo vim /etc/hosts2、在hosts文件中新增一行(这里类似于windows上配置hosts文件)127.0.0.1 www.baidu.com3、保存并重启网络
一、配置编译环境 yum update &amp;&amp; yum upgrade yum groupinstall &quot;Development Tools&quot; yum install gcc gcc-c++ pcre* openssl* gd-devel* zlib-devel
一、下载repo文件 二、备份并替换系统的repo文件 三、执行yum源更新操作
LAMP -- Linux Apache MySQL PHP 在CentOS安装的顺序,我一般是Apache&#160;-&gt;&#160;MySQL&#160;-&gt;&#160;PHP 第一步、安装并配置Apache 1、使用yum安装 [plain]&#160;view plaincopy
一、下载nginx安装包,官网下载中心http://nginx.org/download [root@localhost software]# wget http://nginx.org/download/nginx-1.10.1.tar.gz 二、解压nginx安装包 [root@localhos
1.下载composer curl -sS https://getcomposer.org/installer | php ps:如果出现php无法运行的情况,请先把PHP加入环境变量,具体操作参考《centOS安装PHP》 2.移动或复制composer到环境下可执行 cp composer.ph
一、卸载旧版本的vim 二、安装终端字符处理库ncurses 三、下载Vim8 四、编译安装 五、添加到系统环境变量 六、安装成功
引言 我们在日常的开发过程中,很多时候需要连接服务器查看日志或者在服务器上调试代码。但是,使用 ssh 命令登录服务器每次都需要输出密码,就比较繁琐。因此我们可以使用 sshpass 通过参数指定密码进行登录。解决了这个问题之后,我发现登录服务器之后,还需要手动 cd 切换到项目目录或者日志目录。为
iptables basics Introduction iptables 是一个配置 Linux 防火墙的工具,是 netfilter 项目的一部分。 在 Linux Kernel 3.13 及以上版本中, nftables 将作为后继者取代 iptables 以成为更强大易用的防火墙工具 Bas
一、下载tengine 二、安装tenginx(nginx)的模块依赖库 三、解压并指定安装路径 四、编译安装 五、启动(tengine)nginx 六、访问(tengine)nginx
这篇文章介绍了如何快速部署一套Kubernetes集群,下面就快速开始吧! 准备工作 机器部署规划 主机 | IP | 部署组件 | | master主节点 | 192.168.199.206 | etcd、kube apiserver、kube controller manager、kube sc
一、pip下载 二、解压安装 三、安装完成
1、WebBench安装: yum install ctags(先安装依赖库) mkdir /usr/local/man (创建一个目录不然会报错) wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz tar zxv
1:查看环境: [root@10-4-14-168 html]# cat /etc/redhat-release CentOS release 6.5 (Final) 2:关掉防火墙 [root@10-4-14-168 html]# chkconfig iptables off 3:配置CentOS
安装 1.检查当前是否有安装php rpm&#160;-qa|grep&#160;php 如果有安装PHP,那么请先删除这些安装包: yum&#160;remove&#160;php* 2.安装php源 Centos 5 安装php源: rpm&#160;-ivh&#160;http://mirro
一、安装 二、配置 三、修改配置文件 四、program 配置 五、启动
Sed 日常使用介绍 简介 是 环境下常用的流处理工具, 可以处理字符流, 文件或者二进制文件流。 各个 发行版都会配备 及其衍生的命令工具, 因此, 掌握该工具的基本用法, 足以满足我们日常的许多文本处理的任务。 以下采用示例的方式对 进行基本用法介绍. 如果有兴趣了解更高级的使用技巧, 本文采用
linux下开机自启: 在/etc/init.d目录下新建文件elasticsearch 并敲入shell脚本: 注意, 前两行必须填写,且要注释掉。 第一行为shell前行代码,目的告诉系统使用shell。 第二行分别代表运行级别、启动优先权、关闭优先权,且后面添加开机服务会用到。 shell脚本
1、因为在centos7中/etc/rc.d/rc.local的权限被降低了,所以需要赋予其可执行权 chmod +x /etc/rc.d/rc.local 2、赋予脚本可执行权限假设/usr/local/script/autostart.sh是你的脚本路径,给予执行权限 chmod +x /usr
最简单的查看方法可以使用ls -ll、ls-lh命令进行查看,当使用ls -ll,会显示成字节大小,而ls- lh会以KB、MB等为单位进行显示,这样比较直观一些。 通过命令du -h –max-depth=1 *,可以查看当前目录下各文件、文件夹的大小,这个比较实用。 查询当前目录总大小可以使用d