设为首页 收藏本站
查看: 1118|回复: 0

[经验分享] 详解Centos源码编译安装Apache、PHP

[复制链接]

尚未签到

发表于 2018-11-26 10:55:58 | 显示全部楼层 |阅读模式
  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等工具传到服务器上:

  
依赖工具:

  点击下载: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 -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端口保留:
DSC0000.png

  

  搜索DocumentRoot,根据实际需求修改源码存放路径。
  添加Directory代码块,文件路径跟DocumentRoot相同即可,保存退出。

    AllowOverride None
    # Allow open access:
    Require all granted
DSC0001.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)编译安装的基本步骤算完成了,可以通过浏览器测试:
DSC0002.png

  

  



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

  

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

  

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

  

  

  手动添加用户组和用户:
# groupadd www
# useradd -g www -s /sbin/nologin -M www  

  再次启动php-fpm:
DSC0004.png

  

  查看端口:

# netstat -ntlp | grep 9000
DSC0005.png

  

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

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

  

让环境变量立即生效:

# . ~/.bash_profile  

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

  8)apache添加php支持模块
  按上面步骤安装的话,apache模块目录下能会有libphp5.so这个文件:

DSC0007.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:
   DSC0008.png




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-639764-1-1.html 上篇帖子: Apache POI 小试 下篇帖子: apache2+tomcat 配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表