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等工具传到服务器上:
依赖工具:
apache最新稳定版2.4.25:
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端口保留:
搜索DocumentRoot,根据实际需求修改源码存放路径。
添加Directory代码块,文件路径跟DocumentRoot相同即可,保存退出。
<Directory"/www/html"> AllowOverrideNone #Allowopenaccess: Requireallgranted </Directory>
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)编译安装的基本步骤算完成了,可以通过浏览器测试:
Centos6、7系列源码编译安装PHP-5.6.9
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 \
@H_256_301@--prefix=/usr/local/PHP56 \
@H_256_301@--with-config-file-path=/usr/local/PHP56/etc \
@H_256_301@--with-apxs2=/usr/local/apache/bin/apxs \
@H_256_301@--enable-inline-optimization \
@H_256_301@--disable-debug \
@H_256_301@--disable-rpath \
@H_256_301@--enable-shared \
@H_256_301@--enable-opcache \
@H_256_301@--enable-fpm \
@H_256_301@--with-fpm-user=www \
@H_256_301@--with-fpm-group=www \
@H_256_301@--with-MysqL=MysqLnd \
@H_256_301@--with-MysqLi=MysqLnd \
@H_256_301@--with-pdo-MysqL=MysqLnd \
@H_256_301@--with-gettext \
@H_256_301@--enable-mbstring \
@H_256_301@--with-iconv \
@H_256_301@--with-mcrypt \
@H_256_301@--with-mhash \
@H_256_301@--with-openssl \
@H_256_301@--enable-bcmath \
@H_256_301@--enable-soap \
@H_256_301@--with-libxml-dir \
@H_256_301@--enable-pcntl \
@H_256_301@--enable-shmop \
@H_256_301@--enable-sysvmsg \
@H_256_301@--enable-sysvsem \
@H_256_301@--enable-sysvshm \
@H_256_301@--enable-sockets \
@H_256_301@--with-curl \
@H_256_301@--with-zlib \
@H_256_301@--enable-zip \
@H_256_301@--with-bz2 \
@H_256_301@--with-readline
参数说明:
=== 安装路径 ===
--prefix=/usr/local/PHP56 \
--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-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
启动PHP-fpm的时候报错了,没有www用户www用户组,初始化失败:
#groupaddwww #useradd-gwww-s/sbin/nologin-Mwww
再次启动PHP-fpm:
查看端口:
#netstat-ntlp|grep9000
如需结束PHP-tpm进程:
#killallPHP-fpm
6)添加PHP环境变量,PATH末尾加:添加上PHP的bin目录,sbin目录(PHP-fpm)
让环境变量立即生效:
#.~/.bash_profile
7)PHP部分使用命令:
#PHP-v查看版本 #PHP-i命令行打印PHPinfo #PHP-m查看PHP支持模块 #PHP--ini查看PHP配置文件所在位置
按上面步骤安装的话,apache模块目录下能会有libPHP5.so这个文件:
编辑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: