详解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
修改以下内容:
搜索ServerName www.example.com:80 去掉#注释(vim插入模式输入/搜素内容),网址可以改成公网ip或者localhost,80端口保留:
搜索DocumentRoot,根据实际需求修改源码存放路径。
添加Directory代码块,文件路径跟DocumentRoot相同即可,保存退出。
<Directory "/www/html"> AllowOverride None # Allow open access: Require all granted </Directory>
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)编译安装的基本步骤算完成了,可以通过浏览器测试:
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用户组,初始化失败:
手动添加用户组和用户:
# groupadd www # useradd -g www -s /sbin/nologin -M www
再次启动php-fpm:
查看端口:
# netstat -ntlp | grep 9000
如需结束php-tpm进程:
# killall php-fpm
6)添加PHP环境变量,PATH末尾加:添加上php的bin目录,sbin目录(php-fpm)
让环境变量立即生效:
# . ~/.bash_profile
7)php部分使用命令:
# php -v 查看版本 # php -i 命令行打印phpinfo # php -m 查看php支持模块 # php --ini 查看php配置文件所在位置
8)apache添加php支持模块
按上面步骤安装的话,apache模块目录下能会有libphp5.so这个文件:
编辑httpd.conf:
httpd.conf中可以找到:
LoadModule php5_module modules/libphp5.so
在<IfModule mime_module></IfModule>之间加入:
AddType application/x-httpd-php .php .phtml AddType application/x-httpd-php-source .phps AddHandler application/x-httpd-php .php
重启apache:
# apachectl restart
解析php:
![](/img/my/wx.png)
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Ubuntu虚拟机及Petalinux开发平台安装
第一部分 Ubuntu虚拟机安装 所需资源: 1、VMware-workstation_full_12.1.1.6932.exe 2、ubuntu-14.04.3-desktop-amd64.iso 3、互联网 建议在i5以上CPU、8G内存、100GB以上空闲分区的台式电脑安装 一、安装虚拟机软件 (略) 二、新建虚拟机 “文件”—“新建虚拟机”—“自定义(高级)” 中间步骤省略,最终配置如下 “自定义硬件”—“新CD/DVD”,加载Ubuntu镜像 启动虚拟机,不能改为中文(Petalinux不支持),开始安装 中间步骤省略,均保持默认设置 设置用户名、密码,开启自动登录。此时“Continue”按钮显示在屏幕外,需使用“TAB”键切换至“Back”按钮后按“→”键再回车 安装完成重启,回车确定 三、优化Ubuntu设置 “System Settings”—“Displays”,修改分辨率为1440x900 “System Settings”—“Brightness & Lock” “虚拟机”—“设置”—“添加”—“网络适配器”—“NAT模式” “System Settin...
- 下一篇
apache web服务器与防盗链的设置
一、安装apache2.4.23 新版本的httpd-2.4新增以下特性; 新增模块; mod_proxy_fcgi(可提供fcgi代理) mod_ratelimit(限制用户带宽) mod_request(请求模块,对请求做过滤) mod_remoteip(匹配客户端的IP地址) 对于基于IP的访问控制做了修改,不再支持allow,deny,order机制,而是统一使用require进行 还新增以下几条新特性; 1、MPM支持在运行时装载;不过要开启这种特性,在编译安装要启用这三种功能; --enable-mpms-shared=all --with-mpm=event 2、支持event 3、支持异步读写 4、在每个模块及每个目录上指定日志级别 5、增强版的表达式分析器 6、每请求配置:<If>, <Elseif> 7、毫秒级别的keepalive timeout 8、基于FQDN的虚拟主机不再需要NameVirtualHost指令 9、支持使用自定义变量 安装环境:操作系统:Centos7.2,关闭selinux 检查httpd包是否安装,如查安装则卸载 ...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器