首页 > 代码库 > Centos7最小化安装下安装,编译lamp环境

Centos7最小化安装下安装,编译lamp环境

centos7默认的php是5.5,mysql已经变为mariadb,如果想要自定义的配置,需要自己手动来编译配置.以下步骤在公司服务器上已经正常操作过.
 
1、安装centos7选择基本安装,配置完网络后首先要先关闭firewall:
停止firewall
# systemctl stop firewalld.service 
禁止firewall开机启动
# systemctl disable firewalld.service 
2、安装iptables防火墙
yum方式安装iptables
# yum install iptables-services 
编辑防火墙配置文件
vi /etc/sysconfig/iptables 
添加下面三句话到默认的22端口这条规则的下面
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 161 -j ACCEPT
最后重启防火墙使配置生效
# systemctl restart iptables.service
设置防火墙开机启动
# systemctl enable iptables.service 
 
3,关闭SELINUX
编辑selinux的配置文件
vi /etc/selinux/config
注释掉下面两行
#SELINUX=enforcing 
#SELINUXTYPE=targeted 
增加一行
SELINUX=disabled 
保存,关闭
ESC 
:wq 
重启系统
shutdown -r now 
 
4,centos7最小化安装没有wget工具,这个我们后面下源码会用到,所以先安装这个
yum  install -y  wget 
 
5,增加第三方的yum源,有些坏境需要的软件,centos自带的源里,我们增加两个源,方便后面的yum安装坏境需要的组件,要不一个一个的去下源码编译太过麻烦,我这里只增加了epel和rpmforge两个源
第一步,源文件如果冲突,需要有个优先级,所以先安装yum-priorities
yum install yum-priorities 
第二步,设置CentOS默认yum源的优先级为最高
cd /etc/yum.repos.d/ #进入yum源目录
vi CentOS-Base.repo #在[base]、[updates]、[extras]组下面添加priority=1,在[centosplus]、[contrib]组下面添加priority=2
第三步,安装epel
 #rpm -ivh  http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm --replacefiles
 #rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
 #vi /etc/yum.repos.d/epel.repo 
修改epel yum源优先级,priority=11
第四步骤,安装rpmforge yum源
#wget http://apt.sw.be/redhat/el7/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
#wget http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
#rpm --import RPM-GPG-KEY.dag.txt
#rpm -ivh rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm
#vi /etc/yum.repos.d/rpmforge.repo 
修改rpmforge yum源优先级,priority=12
 
 
6,yum update
 
7,yum安装apache
 #yum install -y httpd httpd-devel 
启动apache
 systemctl start httpd.service
设置为自启动
 systemctl enable httpd.service
 
 
8,yum安装mysql
 # wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
# rpm -ivh mysql-community-release-el7-5.noarch.rpm
# yum install mysql-community-server
成功安装之后重启mysql服务
#systemctl start mysqld.service
设置为自启动
#systemctl enable mysqld.service
设置mysql密码
#mysql -uroot
mysql> SET PASSWORD = PASSWORD(‘123456‘);
启动mysql
systemctl stop mysqld.service
增加到自启动
systemctl start mysqld.service
因为编译php需要用到mysql的一些库文件所以还需要安装mysql库
yum install -y mysql-devel
 
9,一次性yum安装编译php所需的组件,这些都是在一个错误一个错误的试验后,为了解决错误安装的,不要嫌多.
yum  install -y   gcc cmake make gcc-c++  apr*  automake autoconf libxml2 libxml2-devel openssl openssl-devel curl* libjpeg* libpng* freetype* zlib-devel  zip unzip gzip ncurses* pcre-devel bzip2* gd gd-devel kernel keyutils patch perl kernel-headers compat* mpfr cpp glibc libgomp libstdc++-devel ppl cloog-ppl keyutils-libs-devel libcom_err-devel libsepol-devel libselinux-devel krb5-devel zlib-devel libXpm*  php-common php-gd ncurses* libtool*  patch  libmcrypt libmcrypt-devel mcrypt mhash --skip-broken
 
10,下载安装php
我是在root用户下直接安装的,所以进入root家目录
#cd /root
下载最新的php-5.3.29
#wget http://cn2.php.net/get/php-5.3.29.tar.gz/from/this/mirror
解压缩
#tar -zxvf mirror
进入php目录
#cd php-5.3.29
开始编译
#./configure  --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-apxs2=/usr/bin/apxs  --with-mysql=/usr/bin --with-mysqli=/usr/bin/mysql_config --with-iconv-dir=/usr/local  --with-jpeg-dir  --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr/bin --enable-xml --disable-rpath --enable-magic-quotes --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex  --enable-ftp --enable-mbstring --with-mcrypt  --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets  --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --with-zlib --enable-pdo --with-pdo-mysql 
 
注:如果出现Cannot find libmysqlclient的错误,就find下libmysqlclient*,找到libmysqlclient.so文件,做一个软连接放到/usr/lib下就好了
     #find / -name libmysqlclient*
     你找的目录可能和我的不同,以你的为准建立链接
     #ln -s /usr/lib64/mysql/libmysqlclient.so.18.1.0 /usr/lib/libmysqlclient.so
 
# make
# make install
 
10,编辑配置
# vi /etc/httpd/conf/httpd.conf
一,增加 AddType application/x-httpd-php .php .php3 .php5 .phtml
二,网站跟目录配置修改 AllowOverride All
三,修改支持文件类型
<IfModule dir_module>
    DirectoryIndex index.html index.htm default.html default.htm index.php default.php u.php
</IfModule>
 
拷贝php配置文件到配置目录
#cp php.ini-production /usr/local/php/etc/php.ini
修改php.ini
#vi /usr/local/php/etc/php.ini
增加时区设置
date.timezone = Asia/Shanghai
其他优化设置,可以自行配制
保存退出后重启动系统
 
另外,需要说明的,在编译过程中,总结遇到的问题,常常都是以下原因
     1,安装了程序,但是没有安装库,如安装了mysql,但是没有安装mysql-devel,安装了gd,但是没有安装ge-devel等等,这些在编译过程中常常后需要调用一些库文件时候出现错误,如果你的电脑里没有错误表明的以lib开头的*.so文件,那么大部分都是这个原因
     2,很多文件安装在了/usr/lib64下而不是/usr/lib下,编译过程常常自动搜索/usr/lib,如果这里没有相应文件就会报错,如果经过查找你安装了相应文件,那么你只需要租个连接到/usr/lib下就可以
     3,php 编译选项不对,最常见的如--with-apxs2=/usr/bin/apxs  --with-mysql=/usr/bin,这两个选项各个环境可能有所不同,你需要根据自己的环境来配置位置,而不能一味的跟着网上的文章走.
 
再另:常用的一些linux下的命令一定要学会,这对你定位错误,解决问题起决定作用
               查找源yum源  
               #yun search name
               显示yum已安装软件的信息
               #yum info name
               显示软件的安装路径,yum安装的也可以这样查看
               # whereis name,
               或者 #rpm -qal name
               查找文件
               # find / -name ‘php*‘
               查看文件属于哪个软件包  
               # rpm -qf name
               查看软件包都安装到了那些目录下
               # rpm -qla name
               查看文件所属于的软件包把包内所有文件都安装在了那些目录下 
               # rpm -qlf name
      安装一个包
               rpm -ivh name/url
               升级一个包 
               rpm -Uvh   
               移走一个包 
               # rpm -e    
               --replacefiles用于覆盖安装
                # rpm -ivh  http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm --replacefiles
               显示目录或文件
                #ls -lp|less 
                    l :显示详细
                    p : 在每个文件名后附上一个字符以说明该文件的类型,“*”表示可执行的普通文件;“/”表示目录;“@”表示符号链接;“|”表示FIFOs;“=”表示套
                    接字(sockets)。
                    less: 分屏
               显示某一文件或目录
               #ls -ldp name*
               删除文件 
            #rm -f  filename
            wget断点续传 
            #wget -c url
            编辑文件
             #vi name
               打开文件时候是指令行模式
               a进入编辑模式
               o进入编辑模式并增加空行
               ESC切换编辑模式到指令行模式
               指令行模式下
               dd删除整行
               yy复制整行
      /name+回车搜索制定词
        :set nu增加行号
       wq和:x是存盘退出
      :q!强制退出不保存